web-dev-qa-db-ja.com

ユーザーがコンピューターで作業しているかどうかをリモートで確認します

ユーザーがコンピューターで作業しているかどうかをリモートで確認する方法はありますか? (「psloggedon」は、ユーザーがログオンしていることを通知するだけで、他には何も通知しません)

3
John

それは、コンピュータでの「作業」の定義によって異なります。

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などを使用して、コンピューターで何が起こっているかを判断する場合は注意が必要です。そのようなことにはプライバシーと(あなたがどこにいるかに応じて)法的な懸念があります。

8
Adam Thompson

1つの方法は、そのマシンにVNCサーバーをセットアップし、リモートでログインして、画面のアクティビティを観察することです。私は ltraVNC を似たようなものに使用します。

1
Will M