Windows Serverにログインしているユーザーを特定するのは、必ずしも簡単ではありません。特に、リモートアクセスやローカルセッションを監視したり、不審なアクティビティのトラブルシューティングをしたりする場合はなおさらです。内蔵ツールでは情報が一元化されていないこともあり、正直なところ、分かりやすい地図もないまま手がかりを探しているような気分になるかもしれません。しかし、ご安心ください。ネイティブツールと無料ツールの両方があり、現在アクティブなセッションを持つユーザーを特定できる確実な方法がいくつかあります。その目的は、ユーザー、そのオリジンIP、またはセッションステータスのスナップショットを、あまり手間をかけずに簡単に取得することです。
これらのアプローチは、リモートセッション、ローカルログイン、不正アクセスの特定など、あらゆる場面で有効です。ここでの目標は、信頼できる情報を迅速に取得し、永続的なゴーストセッションの排除やセキュリティ強化など、必要なアクションを判断できるようにすることです。そして、面白いのは?ある設定では1回目の試行で完璧に機能する一方で、別の設定では…そうでもなく、試行錯誤が必要になることです。とはいえ、これらの方法は多くのシステム管理者にとって実証済みの方法です。
Windows Server に誰がログインしているかを確認する方法
PowerShellでリモートセッションを確認する
誰かがサーバーにリモートアクセスしている疑いがある場合、これは非常に便利です。このコマンドは、net session
IPアドレスやユーザー情報を含む、現在のリモート接続のリストを表示します。つまり、誰がどこからアクセスしているのかを素早く教えてくれるのです。
- PowerShellを管理者として開きます( PowerShellを右クリック>管理者として実行)。Windowsターミナル経由でも実行できます(Windowsターミナルから実行できます)。
- 次のコマンドを入力します:
net session
- Enterキーを押して出力を確認してください。リモートコンピューターからのセッション、ユーザー名、IPアドレス、セッション時間が表示されます。
このコマンドは非常に便利です。特に共有リソースを監視している場合や、不正なリモートアクセスが疑われる場合は便利です。複数のユーザーがログインしている場合、情報が多少乱れることがありますが、アクティブなリモートログインを素早く特定できる便利な方法です。
PsLoggedOn を使用してローカル ログインを一覧表示する
MicrosoftのSysinternalsツールキットには、PsLoggedOnという便利なユーティリティが含まれています。GUIを操作せずに、ローカルマシンやリモートサーバーに誰がログインしているかを確認するのに最適です。
- SysinternalsからPsToolsをダウンロードしてください(そう、Microsoftの正規のものです)。ZIPファイルをお好きな場所に解凍してください。私はよく
C:\pstools
. - 管理者としてコマンド プロンプトを開きます( を押してWin + Rと入力し
cmd
、管理者として実行)。 - 次のフォルダに移動します:
cd C:\pstools
- 次のコマンドを実行します。
psloggedon
これにより、現在ログインしているローカルユーザーのリストと、サーバーリソースへのアクセス情報が表示されます。また、リモートサーバーを覗き見したい場合は、サーバー名を追加してください: psloggedon \ServerName
。特定のユーザーがネットワーク上のどこかにログインしているかどうかを確認するには、 を試してください: psloggedon username
。
注:サーバーに複数のセッションがある場合や、権限が適切でない場合には、PsLoggedOn が少し不安定になることがあります。しかし、ほとんどの場合は問題なく動作します。私の経験では、一部のマシンでは正常に動作させるのに再起動や数回の試行が必要になる場合があるので、すぐに諦めないでください。
タスク マネージャーを使用してセッションを確認する (RDS またはローカル ログインの場合)
もう一つの簡単な方法は、タスクマネージャーです。誰かが直接またはリモートデスクトップ経由でログインすると、ここにセッションが表示されます。一見分かりやすいかもしれませんが、アクティブユーザーをちょっと確認したいだけなら、頼りになります。
- Ctrl + Shift + Esc キーを押してタスク マネージャーを開きます。
- [ユーザー]タブに切り替えます。
- これで、現在のユーザー、セッションの種類、リソースアクティビティが表示されます。RDS経由でリモートログインしている場合、またはコンソールに直接ログインしている場合は、ここにポップアップ表示されます。
あまり凝った機能ではありませんが、高速です。特にタスクマネージャーで他のトラブルシューティングを行っている場合はなおさらです。RDSの詳細を詳しく調べない限り、切断されたセッションは表示されない点にご注意ください。しかし、すぐに情報を得るには十分です。
ログインしているユーザーをなぜ気にする必要があるのでしょうか?
サーバーに誰がアクセスしているかを追跡することで、予期せぬ事態を未然に防ぐことができます。時には、招かれざる客を盗み見する人物を捕まえたり、ログオフしないセッションを特定したりする必要があるかもしれません。共有ファイルのトラブルシューティングや、リソースの浪費(不正ユーザーがセッションを開いたままにして帯域幅を浪費するなど)への対処にも役立ちます。そしてもちろん、セキュリティ監査やコンプライアンスにも不可欠です。アクセスポイントのアクセス元を把握することは、特にサーバーが予期せずアクセス過多になった場合や不審なアクティビティが見られた場合に、非常に役立ちます。
まとめ
Windows Serverにログインしているユーザーを把握するのは、必ずしも難解な作業ではありません。PowerShell、PsLoggedOn、あるいは昔ながらのタスクマネージャーなど、どんなツールを使うにしても、あらゆるシナリオに適したツールがあります。より高速な方法もあれば、より詳細な情報を提供する方法もありますが、重要なのは、手間をかけずにアクティブなセッションをある程度把握できることです。こうした方法は時間を節約し、サーバーの安全性を維持するのに役立ちます。もちろん、Windowsは必要以上に困難にしなければならない場合もあるからです。
よくある質問
最も簡単な方法は、net session
管理者権限のPowerShellウィンドウで実行することです。アクティブなリモートセッションとIPアドレスが表示されます。誰も接続していない場合は時々奇妙なことに無音になることがあります。しかし、ほとんどの場合は問題なく動作します。
間違いなくPsLoggedOnです。軽量で高速、そして面倒な設定を必要とせず、ローカルユーザーとリモートユーザーの両方で動作します。
はい、 Ctrl + Shift + Escで開いて「ユーザー」タブに移動してください。アクティブなユーザーを確認できます。トラブルシューティングの際に簡単に確認できます。
はい、可能ですが、イベントビューアーの「セキュリティログ」を確認する必要があります。Windowsは、監査のために、成功・失敗を問わずすべてのログインを記録します。すぐには反映されませんが、必要に応じて詳細な監査を行うのに役立ちます。
まさにその通りです。これはMicrosoft Sysinternalsファミリーの公式ツールで、世界中のシステム管理者から信頼されています。怪しいソースからの実行を避ければ、問題はないでしょう。
これで、誰かが頭を悩ませることなくサーバーセッションをより適切に監視できるようになることを願っています。幸運を祈ります!