Windows はすべてのリモート デスクトップ セッションの記録を保持しますが、1 か所にまとまっているわけではありません。詳細は 3 つの異なるイベント ビューアーのログに分散されており、どれも既定の Windows ログのパスにはないため、そこで単純に検索してもたいていは何も見つかりません。
どのイベントがどのログに記録されるかが分かれば、当てずっぽうで 1 時間費やす代わりに、数分で完全なセッション履歴を取得できます。
このガイドでは、Windows が受信 RDP ログをどこに保存するか、そしてイベント ビューアーと PowerShell でそれらを読み取る方法を説明します。また、特に重要なイベント ID と、セッションのクライアント側を確認する必要がある場合に送信接続のログをどこで探せばよいかについても取り上げます。
Windows が RDP ログを保存する場所
対象マシンのRDPログは、Windows イベント ビューアー内の3つの別々の場所にあります:
• Applications and Services Logs > Microsoft > Windows > TerminalServices-LocalSessionManager > Operational は、セッションの接続、切断、ログオフのイベント(イベント ID 21、23、24、25、39、40)を記録します。
• Applications and Services Logs > Microsoft > Windows > TerminalServices-RemoteConnectionManager > Operational は、ネットワーク レベルの接続イベント(イベント ID 1149)を記録します。
• Windows Logs > Security は、ログオンの成功、失敗、セッション監査イベント(イベント ID 4624、4625、4778、4779)を記録します。
これら3つのログはいずれも、接続先である対象マシン上のアクティビティを記録します。ユーザーがどのマシンへ外部接続したかを確認するには、この記事の末尾付近にあるレジストリおよびRDPClientのセクションを参照してください。
主要な RDP イベント ID の解説
これらは、リモート デスクトップのアクティビティを調査する際に、ほとんどの管理者が使用するイベント ID です。
| イベント ID | ログ | 意味 |
| 1149 | TerminalServices-RemoteConnectionManager | ネットワーク レベルの RDP 接続が確立されました(資格情報が検証されました) |
| 4624 | セキュリティ | ログオンに成功 |
| 4625 | セキュリティ | 失敗したログオン試行 |
| 21 | TerminalServices-LocalSessionManager | リモート セッションが正常に作成されました |
| 24 | TerminalServices-LocalSessionManager | セッションが切断されました |
| 25 | TerminalServices-LocalSessionManager | セッションが再接続されました |
| 23 | TerminalServices-LocalSessionManager | セッションがログオフされました |
| 39 | TerminalServices-LocalSessionManager | ユーザーがスタート メニューから切断した、または別のセッションによって切断されました |
| 40 | TerminalServices-LocalSessionManager | 切断理由コード付きでセッションが終了(または再接続)しました |
| 4778 | セキュリティ | セッションがウィンドウ ステーションに再接続されました |
| 4779 | セキュリティ | セッションがウィンドウ ステーションから切断されました |
イベント ID 1149 を理解する
イベント ID 1149 は、ほとんどの RDP イベントよりも多くの混乱を招きます。部分的には、そのラベル: “User authentication succeeded.” のためです。
現在の Windows のバージョンでは、クライアントの資格情報がネットワーク経由で検証されると、完全な対話型サインインやセッションの作成が行われる前に、このイベントが発生します。これは Windows 7 および Server 2012 以前のバージョンでの従来の動作とは異なり、当時は資格情報が有効かどうかに関わらず、あらゆる接続試行に対して 1149 が記録されることがありました。
したがって 1149 は資格情報の検証が通ったことを意味しますが、ユーザーが最終的に正常に機能するセッションを得られたことを意味するわけではありません。セッション制限、RDP の権限制限、またはライセンスの問題によって、その後のログオンが依然としてブロックされる可能性があります。実際に誰かが入れたことを確認するには、セキュリティ ログのイベント ID 4624、または LocalSessionManager ログのイベント ID 21 と相関させて確認してください。
イベント ビューアーで RDP ログを確認する方法
イベント ビューアーは、Windows 10、Windows 11、Windows Server 2016、2019、2022 でリモート デスクトップ接続のログを表示するための標準ツールです。
Win + R を押して、次を入力してイベント ビューアーを開きます:
eventvwr.msc
そして Enter を押します。
TerminalServices-LocalSessionManager (セッション イベント)
セッションのログオン、切断、再接続、ログオフが記録されるため、これは通常、最初に確認すべきログです。
次の場所に移動:
Applications and Services Logs > Microsoft > Windows > TerminalServices-LocalSessionManager
Operational を選択します。Filter Current Log をクリックします。次の Event ID を入力します:
21,23,24,25,39,40
OK をクリックします。
各レコードには、ユーザー名、セッション ID、タイムスタンプ、Source Network Address が含まれます。
Source Network Address にリモート IP アドレスが含まれている場合は、Windows は受信 RDP セッションを記録しています。LOCAL と表示されている場合、そのイベントはリモート デスクトップではなくローカル コンソール ログオンを表します。
たとえば、管理者が営業時間外に誰かが Windows Server にアクセスしたと疑う場合、Event ID 21 でフィルターすると、各成功した RDP セッションがそのタイムスタンプと送信元アドレスとともに表示されます。
TerminalServices-RemoteConnectionManager (接続試行)
このログは、Windows が対話型サインインを完了してセッションを作成する前に、RDP クライアントの資格情報がネットワーク経由で検証されるポイントを記録します。
次の場所に移動:
Applications and Services Logs > Microsoft > Windows > TerminalServices-RemoteConnectionManager > Operational
次でフィルター:
1149
このログはサインインの問題をトラブルシューティングする際に有用です。権限やライセンスの制限によりその後セッションが完全に開かない場合であっても、クライアントの資格情報が受け入れられたことを確認できるためです。
資格情報の検証と完全なログオン完了は同じではないため、誰かが実際に稼働中のセッションに入ったと結論付ける前に、セキュリティ ログやイベント ID 21 と相関させて確認してください。
セキュリティログ (認証イベント)
セキュリティ ログには、認証の成功および失敗の試行が記録され、アクセスには管理者権限が必要です。
開く:
Windows ログ > セキュリティ
現在のログのフィルター を選択します。次を対象にフィルター:
4624,4625,4778,4779
4624 のイベントを開き、ログオンの種類フィールドを確認します。
従来のリモート デスクトップのサインインは、ログオンの種類 10 (RemoteInteractive) として表示されます。
最新のバージョンの Windows で既定で有効になっているネットワーク レベル認証 (NLA) を使用するシステムでは、ログオンの種類 10 の直前または並行して、ログオンの種類 3 (Network) が表示されることがよくあります。
ログオンの種類 3 だけでは RDP セッションを特定できません。Windows が多くの種類のネットワーク認証でこれを使用しているためです。リモート デスクトップからのアクティビティかどうかを判断するには、ソース ネットワーク アドレス、イベント ID 1149、またはイベント ID 21 と相関させて確認してください。
PowerShell で RDP ログを表示する方法
PowerShell は、イベント ビューアーを操作するよりも高速に RDP ログを検索でき、スクリプト化や監査データのエクスポートにも特に有用です.
セッションの作成が成功したイベントを取得するには:
Get-WinEvent -LogName ‘Microsoft-Windows-TerminalServices-LocalSessionManager/Operational’ |
Where-Object {$_.Id -eq 21} |
Select-Object TimeCreated, Message |
Format-List
本日記録された、リモート デスクトップの成功したログオンをセキュリティ ログから検索するには:
Get-WinEvent -FilterHashtable @{
LogName=’Security’
Id=4624
StartTime=(Get-Date).Date
} |
Where-Object {$_.Message -match ‘Logon Type:\s+10’}
セッション アクティビティをエクスポートするには:
Get-WinEvent -LogName ‘Microsoft-Windows-TerminalServices-LocalSessionManager/Operational’ |
Where-Object {$_.Id -in 21,23,24} |
Export-Csv C:\rdp-session-log.csv -NoTypeInformation
過去のログに依存する前に確認しておきたい点がもう一つあります。TerminalServices-LocalSessionManager ログは、最大サイズに達すると古いエントリを上書きします。稼働の激しいリモート デスクトップ セッション ホストでは、それが驚くほど早く発生することがあります。
ログの最大サイズを増やすには:
wevtutil sl Microsoft-Windows-TerminalServices-LocalSessionManager/Operational /ms:20971520
この例では、ログを 20 MB に増やします。保持したい履歴量に応じて調整してください。古いエントリが上書きされるまでの猶予は延びますが、別途保持ポリシーを設定しない限り、ログが恒久的になるわけではありません。
送信側のリモート デスクトップ接続ログの表示方法
これまでに扱った内容はすべて、接続先コンピューター上での受信 RDP 接続を記録します。
Windows ワークステーションからユーザーがどのコンピューターに接続したかを調査する必要がある場合、役立つデータソースが2つあります。
レジストリ (接続履歴)
レジストリエディタ(regedit)を開き、次の場所に移動します:
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default
MRU0-MRU9 の値には、リモート デスクトップ クライアントで使用された最新のホスト名または IP アドレスが 10 件含まれています。
これらのエントリは接続先の履歴を示しますが、タイムスタンプは含まれていません。
TerminalServices-RDPClient ログ
タイムスタンプが重要であれば、次を確認してください:
アプリケーションとサービス ログ > Microsoft > Windows > TerminalServices-ClientActiveXCore > Microsoft-Windows-TerminalServices-RDPClient > Operational
このログには、クライアント側の送信アクティビティが記録され、次の内容が含まれます:
• Event ID 1024 – RDP クライアントがサーバーへの接続を試みたこと。接続が開始された瞬間に記録されます
• Event ID 1102 – クライアントがセッションを確立する際の接続シーケンスの詳細が記録され、宛先 IP アドレスも含まれます
レジストリのエントリとこのログを併用することで、接続先の履歴とそれに対応するタイムスタンプの両方を取得できます。
HelpWireがセッション履歴を記録する方法
Windows イベント ビューアーは、この種の事後的なレビューのために作られていません。これは監査とトラブルシューティングのためのツールなので、1つの RDP セッションを再構成するには、通常、2~3種類の別々のログからデータを取り出し、タイムスタンプを手作業で突き合わせる必要があります。
HelpWireはこれを異なる方法で処理します:各リモートサポートセッション(有人・無人を問わず)は、単一の時系列の記録としてログされます:接続イベント、セッションの詳細、チャット履歴がひとまとめになっており、セッション終了後に相互参照は不要です。
HelpWireは、TLSによるトランスポートとAES-256のセッション暗号化を用いてリモートセッションを保護します。オンデマンドのセッションは開始前に明示的なユーザー承認が必要で、無人アクセスは事前にクライアントの同意を得て設定しなければなりません。その承認はセッション記録に直接反映され、後でイベントログから再構成する必要はありません。
HelpWireは、オペレーターとクライアントの双方でWindows、macOS、Linuxをサポートしているため、関与するオペレーティングシステムに関わらず、同じセッション履歴を利用できます。
よくある質問
受信 RDP のログは、イベント ビューアー内の 3 つの場所に分散されています。セッション アクティビティ用の TerminalServices-LocalSessionManager、ネットワーク レベルの接続用の TerminalServices-RemoteConnectionManager、そして認証イベント用のセキュリティ ログです。これら 3 つすべてを確認することで、全体像が把握できます。
TerminalServices-LocalSessionManager > Operational を開き、イベント ID 21 でフィルターし、結果を日付で並べ替えます。各イベントには、ユーザー名、セッション ID、送信元ネットワーク アドレスが含まれます。これらのイベントをセキュリティ ログのエントリと照合して、認証に関する追加の詳細を確認できます。
イベント ID 1149 は、リモート クライアントの資格情報がネットワーク経由で検証されると記録されます。接続がターゲット マシンに到達しない場合、その時点に至る前に資格情報が拒否された場合、または TerminalServices-RemoteConnectionManager ログが無効になっている場合は、このイベントは表示されません。1149 は資格情報の検証が行われたことを示すものであり、Windows へのログオンが完了したことを示すものではない点に注意してください。
Windows は、各イベント ログが構成された最大サイズに達するまで RDP ログを保持します。上限に達すると、ログの保持設定を変更しない限り、古いイベントは上書きされます。ログ サイズを増やすことで、より多くの履歴を保持できますが、ログが恒久的になるわけではありません。