「社内のサーバーに、知らないうちに誰かがリモートデスクトップで入っていないか」「退職した人のアカウントで接続されていないか」を確かめたいとき、手がかりになるのは接続される側(サーバーやPC)のイベントログです。リモートデスクトップの接続は、1つのログではなく3つのログに分かれて記録されます。この記事では、どのログの何を見ればよいかを、確認する順に説明します。
見るべきログは3つ
| ログ | イベントID | 分かること |
|---|---|---|
| TerminalServices-RemoteConnectionManager / Operational | 1149 | 接続の受け付け(ユーザー名・接続元のIPアドレス) |
| セキュリティ | 4624 / 4625 | ログオンの成功・失敗。ログオンの種類10がリモートデスクトップ |
| TerminalServices-LocalSessionManager / Operational | 21・23・24・25 | セッションの開始・ログオフ・切断・再接続(いつまで使っていたか) |
まず1149で「誰がどこから来たか」を拾い、4624で実際にログオンできたか、21〜25で何時から何時まで使ったかを確かめる、という順に見ると迷いません。
イベントビューアーで確認する
- 接続される側のPC・サーバーで Windowsキー + R → 「eventvwr.msc」を開きます
- アプリケーションとサービス ログ → Microsoft → Windows → TerminalServices-RemoteConnectionManager → Operationalを開きます
- 右側の「現在のログをフィルター」で、イベントIDに
1149を入れます - 各イベントの「ユーザー」「ドメイン」「ソース ネットワーク アドレス」(接続元のIPアドレス)を確認します
続けて、Windows ログ → セキュリティでイベントID 4624 を絞り込み、詳細の「ログオン タイプ」が 10 のものを探します。同じ時刻・同じユーザーの1149と4624がそろっていれば、その接続でログオンまで完了しています。ログオンの種類ごとの意味はWindowsのログイン履歴を確認する方法で一覧にしています。
ログオン タイプ 10 だけでは足りない場合
PowerShellで一覧にする
台数が多い、期間が長いといった場合は、PowerShellで一覧にしたほうが早く済みます。管理者として実行してください。
接続の受け付け(1149)を一覧にする
Get-WinEvent -LogName 'Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational' -FilterXPath '*[System[EventID=1149]]' | ForEach-Object { [pscustomobject]@{ 日時=$_.TimeCreated; ユーザー=$_.Properties[0].Value; ドメイン=$_.Properties[1].Value; 接続元=$_.Properties[2].Value } }リモートデスクトップのログオン(4624・タイプ10)を一覧にする
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4624; StartTime=(Get-Date).AddDays(-30)} | Where-Object { $_.Properties[8].Value -eq 10 } | ForEach-Object { [pscustomobject]@{ 日時=$_.TimeCreated; ユーザー=$_.Properties[5].Value; 接続元=$_.Properties[18].Value } }AddDays(-30) の数字を変えると、さかのぼる日数を変えられます。末尾に | Export-Csv rdp.csv -Encoding UTF8 -NoTypeInformation を付けてファイルに書き出せば、Excelで並べ替えて確認できます。
失敗した接続を確認する
パスワードを総当たりで試されている場合、記録に残るのは失敗のほうです。セキュリティログのイベントID 4625(ログオンの失敗)を、接続元ごとに数えます。
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625; StartTime=(Get-Date).AddDays(-7)} | ForEach-Object { [pscustomobject]@{ 日時=$_.TimeCreated; ユーザー=$_.Properties[5].Value; タイプ=$_.Properties[10].Value; 接続元=$_.Properties[19].Value } } | Group-Object 接続元 | Sort-Object Count -Descending次のような場合は、詳しく調べる必要があります。
- 社外のIPアドレスから大量の失敗がある — リモートデスクトップの入口がインターネットから見えている可能性
- 「administrator」「admin」など、社内で使っていない名前での失敗が並んでいる — 名前を変えながら試されている
- 失敗が続いたあとに、同じ接続元からの成功(4624)がある — パスワードが当てられた可能性
同じ人のアカウントがロックされ続ける場合の原因の絞り込みは、アカウントロックアウトの原因を特定する手順で扱っています。
いつまで使っていたかを確認する
アプリケーションとサービス ログ → Microsoft → Windows → TerminalServices-LocalSessionManager → Operationalには、セッションの出入りが残ります。
- 21:セッションのログオン成功(接続元のアドレスも記録されます)
- 23:セッションのログオフ
- 24:セッションの切断(ウィンドウを閉じただけの状態)
- 25:セッションへの再接続
ウィンドウを×で閉じただけでは、ログオフにならず切断(24)になります。セッションはサーバー上に残り続けるため、「21と24はあるのに23が無い」状態は珍しくありません。何時から何時まで使っていたかを見るときは、21(または25)から次の23または24までを1回の利用と数えます。
接続した側のPCに残る履歴
反対に、「このPCからどのサーバーに接続したか」を知りたい場合は、接続した側のPCを見ます。リモートデスクトップ接続(mstsc)の接続先は、ユーザーごとにレジストリの次の場所に残ります。
reg query "HKCU\Software\Microsoft\Terminal Server Client\Servers"ここに残るのは接続先の名前だけで、日時は分かりません。また、利用者が自分で消せます。いつ接続したかは、接続された側のログで確認してください。
履歴が残っていないときは
- セキュリティログに4624・4625が出ていない — ログオンの監査が無効になっている可能性があります。グループポリシーの「監査ポリシーの詳細な構成 → ログオン/ログオフ → ログオンの監査」で成功と失敗を有効にします。
- 古い記録が消えている — ログは期間ではなくサイズの上限で消えます。上限の確認と変更はイベントビューアーのログ保存期間を確認・変更する手順で扱っています。
- ログを消された形跡がある — セキュリティログを消去すると、イベントID 1102が残ります。消した覚えがなければ、侵入の痕跡を消された可能性も含めて調べてください。
履歴で分からないこと
イベントログに残るのは、「どのアカウントで」「どのIPアドレスから」接続したかです。次の場合、実際に誰が操作したかまでは分かりません。
- サーバーの管理者アカウントを複数人で共有している
- パスワードを口頭やメモで渡している(知っている人なら誰でも同じ記録になる)
- 接続元が社内の共用PCやVPNの出口で、IPアドレスから人を特定できない
「記録はあるのに、誰がやったか分からない」状態は、ログの設定ではなくアカウントの使い方で起きています。そもそも誰が接続できるのかを絞る手順はリモートデスクトップで接続できるユーザーを制限する手順、共用IDをやめる進め方は共有アカウントの廃止で扱っています。
リモートデスクトップのログインに本人のスマホでのワンタッチ承認を加え、誰が入ったかを記録に残したい場合は、PCとWindows Serverの両方に対応したアプリップリキーという選択肢もあります。製品サイトを見る(アプリップリキー)よくある質問
リモートデスクトップの接続履歴はどこで確認できますか
接続された側のイベントビューアーで確認します。TerminalServices-RemoteConnectionManagerのOperationalログのイベントID 1149に、ユーザー名と接続元のIPアドレスが残ります。ログオンの成否はセキュリティログのイベントID 4624(成功)・4625(失敗)で、ログオンの種類10がリモートデスクトップです。
接続元のIPアドレスはどこに出ますか
イベントID 1149、セキュリティログのイベントID 4624、LocalSessionManagerのイベントID 21に、接続元のアドレス(ソース ネットワーク アドレス)として記録されます。
どのくらい前までさかのぼれますか
ログの保存は期間ではなくサイズの上限で決まり、上限に達すると古いものから上書きされます。利用の多いサーバーでは数日分しか残らないこともあるため、必要な期間に合わせて上限を見直してください。
いまの運用を棚卸ししてみる
接続履歴を見て「誰が入ったか分からない」記録が出てきた場合、原因の多くはアカウントの共有や、接続できる人の管理にあります。applippliの無料棚卸しでは、10問・約3分で、リモート接続を含むPCログインまわりの対応状況を「解決済み/一部解決/人手で対応/未解決」に仕分けた一覧にできます。個人情報の入力は不要で、会員登録もありません。
参考・出典
- Microsoft Learn「4624(S): アカウントが正常にログオンしました」
- Microsoft Learn「4625(F): アカウントがログオンに失敗しました」
- Microsoft Learn「ログオン イベントの監査」
※ 本記事は2026年10月時点の一般的な解説です。ログの名称やイベントの項目の並びは、Windowsのバージョンによって異なる場合があります。PowerShellの例で使っている項目の番号(Properties[n])が環境によって合わない場合は、イベントの詳細(XML表示)で位置を確認してください。
