Windows Serverで誰がログインしているか確認する方法

サーバー管理では「今誰がログインしているか」を把握することは単なる好奇心ではなく、リソース消費の原因調査、不正アクセス検出、複数セッションの確認といった重要な運用課題に直結します。Windows Server には一つの明確なボタンはありませんが、OS標準のコマンドや無償ツールで確実に確認できます。本記事では現場で使える手順、道具の比較、よくある失敗例と対処、運用向けチェックリストまで解説します。
目次
- Windows Serverでログイン中ユーザーを確認する理由
- 手順 1: PowerShellでリモートセッションを確認する
- 手順 2: PsLoggedOnでローカルログインを一覧にする
- 手順 3: タスクマネージャーで直接/RDSセッションを確認する
- 追加の確認手段(Event Viewer、quser、query user など)
- いつこれらの方法が失敗するか(例外ケース)
- 管理者向けチェックリストとプレイブック
- セキュリティとプライバシーに関する注意点
- まとめ
- FAQs
Windows Serverでログイン中ユーザーを確認する理由
確認する主な目的:
- 不正アクセスの早期検出と対応。
- ファイルロックやリソース消費の原因特定。
- アイドルやゴーストセッションの特定と切断。
- 監査・コンプライアンス対応の一次情報取得。
重要: 「ログインしているユーザー」には対話型ログオン、リモート接続(SMB/ファイル共有経由の接続含む)、サービスやシステムアカウント経由のアクセスなど複数の種類があるため、目的に応じて確認手段を使い分けます。
手順 1: PowerShellでリモートセッションを確認する
この方法は、ファイル共有やリモートセッションでサーバーにアクセスしているクライアントを素早く把握するのに向きます。
手順:
- 管理者として PowerShell を起動(PowerShell アイコンを右クリック → 管理者として実行)。
- 次のコマンドを入力して Enter を押す:
net session
出力には、現在リモートから接続しているクライアントのセッション情報と IP アドレス(ホスト名)が表示されます。ファイル共有を通じた接続や匿名接続の有無を確認するのに便利です。
注意点:
net session
はリモート接続(SMB 等)を対象にしており、ローカルでのコンソールログオンや一部のサービスアカウントの活動は表示されません。- 権限が不足すると情報が得られないため、必ず昇格した権限で実行してください。
手順 2: PsLoggedOnでローカルログインを一覧にする
PsLoggedOn(Sysinternals)を使うと、ローカルでログオンしているユーザーや、リモートからリソースへ接続しているユーザーを簡単に列挙できます。
手順:
- Microsoft の Sysinternals ページから PsTools をダウンロードし、ZIP を展開します。
psloggedon.exe
を任意のフォルダにコピー(例:C:\pstools
)。- 管理者としてコマンドプロンプトを開きます。
- PsTools フォルダへ移動:
cd C:\pstools
- ツールを実行:
psloggedon
出力例: ローカルでログオンしているユーザー、またはサーバー上のリソースにアクセスしているユーザーを一覧できます。
リモートサーバーを調べる場合:
psloggedon \\ServerName
特定ユーザーをネットワーク上で検索する場合:
psloggedon username
安全性: PsLoggedOn は Microsoft の公式 Sysinternals ツールであり、管理者が使う分には信頼できます。ただし企業ポリシーに沿って配布・実行してください。
手順 3: タスクマネージャーで直接/Remote Desktop Servicesセッションを確認する
RDS 環境やコンソールアクセスしている場合、GUI で最も手早く確認できるのがタスクマネージャーです。
手順:
- サーバーに直接ログイン、またはリモートデスクトップで接続します。
- Ctrl + Shift + Esc を押してタスクマネージャーを開きます。
- [ユーザー] タブに切り替えます。
ここでは現在ログオンしているアカウント、セッションの状態(アクティブ/切断)、各セッションのCPU/メモリ使用率が確認できます。RDSセッションの強制切断やログオフ操作もここから可能です。
制限: タスクマネージャーはあくまでそのサーバー上でGUIが動作している環境に限られ、サービス経由のアクセスや細かい接続元のIPは表示されないことがあります。
追加の確認手段
現場で役立つ補助的なコマンドとツール:
quser / query user / query session
- RDS 環境でセッション一覧を取得。セッションIDや状態が分かる。
Event Viewer(イベント ビューアー) > Windows ログ > セキュリティ
- ログオン/ログオフのイベント(ID 4624 / 4634 等)を確認することで、誰がいつログインしたかの詳細な履歴を取得可能。
PowerShell: Get-WinEvent / Get-EventLog
- セキュリティログをフィルターしてログイン履歴を抽出する自動化に向く。
ネットワーク監査: ネットワーク機器やSIEMでの接続元ログ集約
- 高度な追跡や長期監査には SIEM にログを送るのが有効。
これらの方法が失敗する/有効でないケース
- 権限不足: 管理者権限がないと
net session
や PsLoggedOn の情報が制限されます。 - サービスやシステムアカウントのアクセス: 一部のサービスはインタラクティブとは異なる方法でリソースにアクセスするため、一覧に出ないことがあります。
- セッション情報の遅延: 切断されたセッションが残る(ステールセッション)ことがあり、実際は切断済みのユーザーが残って見える場合があります。
- ネットワーク分断: クライアントとサーバー間のネットワーク断があると、クライアント側の状態とサーバー側の記録が不整合になる場合があります。
管理者向けチェックリスト(ロール別)
共通: 管理者は実行前に昇格した権限で操作すること。
システム管理者:
- net session を実行して現在のリモート接続を確認する。
- PsLoggedOn でローカルログインを一覧化する。
- quser / query user でRDSセッションを確認する。
セキュリティ担当:
- イベントビューアーでログオン/ログオフのIDを確認し、疑わしい時刻やアカウントを突き合わせる。
- SIEM にログを送って相関分析する。
監査/コンプライアンス:
- ログの保存ポリシー(保持期間)を確認する。
- 重要なログインには監査証跡を保持し、必要時にエクスポートできるようにする。
プレイブック(簡易 SOP):
- 初動: 疑わしい接続を発見したら
net session
とpsloggedon
を実行して接続元とユーザーを確認。 - 分離: 必要ならセッションを切断し、該当ホストのネットワークアクセスを一時遮断。
- 証拠保全: イベントログをエクスポートし、SIEM にエビデンスを送る。
- 分析: 該当ユーザーのアクティビティ、IP、タイムスタンプを確認。
- 改善: パスワードリセット、2要素認証適用、RDS ポリシー見直し等を計画して実施。
セキュリティ強化とプライバシーに関する注意点
- セッション管理: セッションのタイムアウト、切断ポリシー、最小権限の適用を検討してください。
- 認証強化: 管理者アカウントには多要素認証(MFA)を導入しましょう。
- ログの取り扱い: ログに個人情報が含まれる場合、社内ポリシーや法規(例: GDPRに相当する規制)に従って適切に保護し、アクセスを制限してください。
- ツール配布: PsTools のような実行バイナリは企業の配布ポリシーに沿って管理し、不必要な配布を避けてください。
便利なコマンド・チートシート
- net session
- psloggedon
- psloggedon \ServerName
- psloggedon username
- quser
- query user
- Get-WinEvent -FilterHashtable @{LogName=’Security’; Id=4624} | Format-Table -Auto
これらを管理用スクリプトにまとめて定期実行(ログ収集)すると、調査が早くなります。
まとめ
Windows Server で誰がログインしているかを把握するには目的に応じて複数の手段を使い分けるのが肝心です。即時の確認には net session
、ローカルログイン確認には PsLoggedOn、GUIでのチェックにはタスクマネージャーが便利です。長期監査やインシデント対応ではイベントログや SIEM の活用、プレイブックの整備が重要になります。
重要:
- 必ず昇格した権限で実行する
- ログと証拠は適切に保全する
- セキュリティ対策(MFA、セッション制御)を併用する
FAQs
Windows Server でリモートから誰がログインしているかを遠隔で確認するには?
管理者権限で PowerShell またはコマンドプロンプトを開き、net session
を実行するとリモート接続の一覧(接続元IPやホスト)が確認できます。さらに詳細が必要な場合はイベントビューアーや SIEM を使います。
ローカルログインを表示するツールは何がある?
Microsoft の Sysinternals にある PsLoggedOn が代表的で、ローカルログオンとリソースアクセスのユーザーを一覧表示できます。
タスクマネージャーでログイン確認は可能か?
はい。サーバーに直接アクセスできる場合、Ctrl + Shift + Esc でタスクマネージャーを開き [ユーザー] タブで現在のセッションとリソース使用状況を確認できます。
Windows Server はすべてのログイン試行を記録するか?
はい。既定ではセキュリティログにログオン/ログオフイベントが記録されます。ただし詳細情報や保持期間は監査ポリシーに依存します。イベントビューアーの「セキュリティ」ログをチェックしてください。
PsLoggedOn は安全か?
はい。PsLoggedOn は Microsoft の Sysinternals ツールで、管理者により広く使用されています。ただし実行権限や社内配布のポリシーに従ってください。