Windowsマシン(特にサーバー)を再起動するときなどに、接続しているユーザーが他にいないかや、開かれている共有フォルダーがないかを確認したいときがあります。
そんなときに利用するコマンドを紹介します。
なお、下記で紹介するコマンドは「コマンドプロンプト」を管理者権限で起動し実行します。
目次
サインインしているユーザーを確認
現在サインインしているユーザーを調べるには「query user」コマンドを実行します。
> query user
ユーザー名 セッション名 ID 状態 アイドル時間 ログオン時間
user1 console 1 Active none 2017/08/07 12:15
user2 rdp-tcp#17 2 Active . 2017/08/06 13:00
ドメイン環境などでは「query user /server:コンピューター名」と実行することで、リモートのWindowsマシンにサインインしているユーザーを調べることもできます。
なお、サインインしている特定のユーザーを強制的にサインアウトさせたいときは、以下のようにコマンドを実行します。
> logoff セッションID /VM
たとえば、セッションIDが2のユーザーをサインアウトさせたいときは、以下のようにコマンドを実行します。
>logoff 2 /vm
user2 (セッション 2) をコンピューター からログオフしようとしています。
続行しますか (n=いいえ)?
なお、強制的にユーザーをサインアウトさせると、そのユーザーが何か編集している最中で未保存のデータがあった場合、そのデータは失われるので注意が必要です。
共有フォルダーを開いているコンピューターを確認
共有フォルダーを開いているリモートのコンピューターを確認したいときは「net session」コマンドを実行します。
> net session
コンピューター ユーザー名 クライアント オープン アイドル時間
-------------------------------------------------------
\\192.168.1.50 user3 7 00:00:00
コマンドは正常に終了しました。
なお「net session /delete」を実行すれば、接続しているすべてのコンピュータとの接続を切断できます。また、特定のセッションだけを切断したい場合は「net session \\コンピューター名 /delete」を実行します。
なお、強制的にコンピューターとの接続を切断すると、共有フォルダーを開いて何か編集している最中で未保存のデータがあった場合、そのデータは失われるので注意が必要です。
開かれている共有フォルダーを確認
現在開かれている共有フォルダーや共有ファイルを確認したいときは「net file」コマンドを実行します。
> net file
ID パス ユーザー名 ロック数
-----------------------------------------------------------
1342177298 D:\prj\TEST\movie user2 0
1342177326 D:\prj\...\movie(1).mp4 user2 0
1342177345 D:\prj\...\testmovie\sample user2 0
1342177380 D:\prj\Test user2 0
1275068527 D:\prj\Test\111 user2 0
1342177445 D:\prj\Test\222 user3 0
1342177492 D:\prj\...\testmovie\sample user3 0
1342177702 D:\prj\...\movie(1).mp4 user3 0
1342177751 D:\prj\Test\333 user3 0
1342177829 D:\prj\...\testmovie\sample user3 0
1140851312 D:\prj\Test\444 user3 0
1342177918 D:\prj\ user3 0
コマンドは正常に終了しました。
なお、開かれている共有フォルダーや共有ファイルを強制的に閉じるときは「net file ID
なお、強制的に共有フォルダーや共有ファイルとの接続を切断すると、共有フォルダーを開いて何か編集している最中で未保存のデータがあった場合、そのデータは失われるので注意が必要です。
あとがき
複数のユーザーが利用するWindowsマシンを再起動したりシャットダウンするときは、ここで紹介したコマンドで事前確認すれば安心です。なお、接続を強制的に切断する際は十分ご注意ください。