ユーザーがコンピューターで作業しているかどうかをリモートで確認する方法はありますか? (「psloggedon」は、ユーザーがログオンしていることを通知するだけで、他には何も通知しません)
それは、コンピュータでの「作業」の定義によって異なります。
tasklist/Sコマンドを使用してリモートコンピューターに接続し、そのコンピューターで実行されているプロセスを確認できます。チェックするユーザーがわかっている場合は、これをユーザー名のフィルターと組み合わせることができます。 :
C:\ Documents and Settings\adam> tasklist/FI "USERNAME eq NTDOM\joe.bloggs"/S REMOTEPC Image Name PID Session Name Session#Mem Usage ========================= ======== ============== == =========== ============ rdpclip.exe 5808 RDP-Tcp#2 2 5,132 K Explorer.exe 656 RDP-Tcp#2 2 15,228 K AClntUsr.EXE 6804 RDP-Tcp#2 2 4,252 K cpqteam.exe 6244 RDP-Tcp#2 2 3,608 K ctfmon。 exe 4300 RDP-Tcp#2 2 3,448 K ctfmon.exe 3780 RDP-Tcp#2 2 2,764 K shstat.exe 6836 RDP-Tcp#2 2 788 K cmd .exe 4168 RDP-Tcp#2 2 2,352 K logon.scr 6360 RDP-Tcp#2 2 2,572 K
「joe」が実行しているプログラムを確認できます。そのうちの1つはlogon.scrなので、彼は現時点ではあまり何もしていないと思います。ただし、彼はcmd.exeを実行しているので、おそらくある時点でそこで何かをしていました。たとえば、winword.exe(MS Word)またはExcel.exe(MS Excel)の場合、logon.scrが実行されていても、彼のコンピューターをリモートで再起動したくありません。彼はすべての仕事を救ったわけではないかもしれません。
探しているユーザーがわからない場合は、フィルター「USERNAMEneSYSTEM」を使用できます。これをスクリプト化する場合は、wmic ComputerSystem Get UserNameの出力からユーザー名を取得できます。
ユーザーが物をクリックしてキーを押すのに忙しいかどうかを知りたいだけの場合は、quser.exeを使用できます。
C:\ scripts> quser ユーザー名セッション名ID状態アイドル時間ログオン時間 > adam.thompsonコンソール1アクティブなし2012/07/0311:42
ただし、セッションが「コンソール」であり、(/ consoleスイッチでターミナルサービスを使用したのではなく)コンピューターの前に物理的に座っているユーザーを参照している場合、quserのIDLETIMEビットがどれほど正確かはわかりません。
VNCなどを使用して、コンピューターで何が起こっているかを判断する場合は注意が必要です。そのようなことにはプライバシーと(あなたがどこにいるかに応じて)法的な懸念があります。
1つの方法は、そのマシンにVNCサーバーをセットアップし、リモートでログインして、画面のアクティビティを観察することです。私は ltraVNC を似たようなものに使用します。