私のWindows 7 PCから、最後に接続したユーザーではなく、ネットワーク上の別のWindows 7 PCに「アクティブ」にログオンしているユーザーを確認したいと思います。これはどのように行うことができますか?
1日中、数人のユーザーが共有コンピューターにリモートでログオンし、通常は接続が終了するとログオフします。これらのユーザーは、自分のPCとリモートにアクセスするユーザーの両方に対して管理者権限を持っていることに注意してください。他のユーザーがアクティブにログオンしているときにログオンすると、続行して自分を「アクティブ」ユーザーにするオプションが表示され、以前のアクティブなアカウントが切断された状態になります。この選択を行う前に、アクティブにログオンしているユーザーを確認できるようにしておくと便利です。
私はWebを検索して、最後の接続を誰が行ったかを知らせるさまざまな解決策を見つけました。これは、最後の接続、つまり現在「アクティブ」なユーザーに変換されません。
ちなみに、Windows 7では、現在アクティブなユーザーのIDが「後」に表示されるのは奇妙なようです。「はい」をクリックしてログインします。 Windows XPを使用していた場合、現在のアクティブユーザーのIDが、ログオンの継続を決定する「前」に表示されました。
どんな助けでもありがたいです。
これには、ターミナルサービスqueryコマンドを使用できます。
query session /server:remote_computer_name_here
リモートコンピュータで次のレジストリ値を設定する必要があることに注意してください。
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
Value Name: AllowRemoteRPC
Value: 1
Type: REG_DWORD
Queryコマンドをバッチファイルに入れると、ユーザーはそれをダブルクリックするだけで、そのコンピューターにログインしているユーザーを確認できます。
Windows Sysinternalsツール PSLoggedOn を使用できます。
使用方法:psloggedon [-] [-l] [-x] [\\ computername |ユーザー名]
-サポートされているオプションと出力値に使用される測定単位を表示します。
-lローカルとネットワークの両方のリソースログオンではなく、ローカルログオンのみを表示します。
-xログオン時間を表示しません。
\\ computernameログオン情報を一覧表示するコンピューターの名前を指定します。
usernameユーザー名を指定した場合、PsLoggedOnは、そのユーザーがログオンしているコンピューターをネットワークで検索します。これは、ユーザープロファイルの構成を変更しようとしているときに、特定のユーザーがログオンしないようにする場合に役立ちます。
Windows 7以降のコマンドラインからの別のオプション:
tasklist /s computername /fi "imagename eq Explorer.exe" /v
リモートマシンにクエリを実行すると、管理者レベルの認証情報を求められる場合があります。
これにより、Explorer.exeがマシンで実行されているかどうかが確認され、「/ v」がユーザー名を提供します。マシンがログインしていない場合、Explorer.exeプロセスは実行されません。誰かがログオンしている場合、Explorer.exeプロセスはそのユーザーのコンテキストで実行されます。
コマンドプロンプトのwmic
コマンドは、この情報を取得できます。ただし、クライアントが応答するには、ファイアウォールルールが最初に必要です。
「エラー-RPCサーバーが利用できません」というエラーを修正したように見えるMacKingToshのおかげで、community.spiceworks.comに投稿を見つけました。
このエラーを生成するクライアントで実行するコマンドは次のとおりです。
netsh firewall set service remoteadmin enable
これがファイアウォールポリシーに準拠していることを確認してください。
wmic
を使用する場合、渡すことができるパラメーターの内訳は次のとおりです。
/node
:-エイリアスが操作するサーバーyourpcname
-PCの名前computersystem
-情報を取得しようとしているのはコンピュータシステムですget
-情報を取得したいusername
-ログオンしているユーザーmodel
-コンピューターのモデルmanufacturer
-コンピューターを製造した会社の名前name
-PCの名前いくつかの例:
ユーザー名を取得:
wmic /node: 'yourpcname' computersystem get username
PCメーカーとモデルを取得:
wmic /node: 'yourpcname' computersystem get manufacturer, model
つすべてを取得:
wmic /node: 'yourpcname' computersystem get manufacturer, model, username
余分なフィールドを追加するには、コンマとスペースを使用します。
Model, manufacturer, username, name
上記の例はリモートのPCであり、クエリはネットワーク経由で実行されます。コマンドをローカルで実行する場合、構文は少し異なります。例えば:
wmic computersystem get manufacturer, model, username