手がかりは接続される側(サーバーやPC)のイベントログです。リモートデスクトップの接続は3つのログに分かれて記録されます。
接続履歴を確かめる順番
- 1
1149で誰がどこから来たか
ユーザー名・接続元IP
- 2
4624でログオンできたか
ログオン タイプ 10
- 3
21〜25で利用時間
開始・切断・ログオフ
- 4
4625で失敗を数える
総当たりの痕跡
見るべきログは3つ
| ログ | イベントID | 分かること |
|---|---|---|
| TerminalServices-RemoteConnectionManager / Operational | 1149 | 接続の受け付け(ユーザー名・接続元のIPアドレス) |
| セキュリティ | 4624 / 4625 | ログオンの成功・失敗。ログオンの種類10がリモートデスクトップ |
| TerminalServices-LocalSessionManager / Operational | 21・23・24・25 | セッションの開始・ログオフ・切断・再接続(いつまで使っていたか) |
PC版 月1,800円/台(初期費用0円)・サーバー版 月20,000円/台。初月無料ではじめられます(税別・目安)
イベントビューアーで確認する
イベントビューアーでの確認手順(接続される側で実行)
- 1
eventvwr.msc を開く
Windowsキー + R
- 2
RemoteConnectionManager を開く
アプリケーションとサービス ログ → Microsoft → Windows → TerminalServices-RemoteConnectionManager → Operational
- 3
イベントID 1149 で絞り込む
「現在のログをフィルター」
- 4
ユーザー・接続元を確認
「ソース ネットワーク アドレス」が接続元IP
続けてWindows ログ → セキュリティで 4624 を絞り込み、「ログオン タイプ」が 10 のものを探します。同じ時刻・同じユーザーの1149と4624がそろえば、ログオンまで完了しています。種類ごとの意味はWindowsのログイン履歴を確認する方法で一覧にしています。
ログオン タイプ 10 だけでは足りない場合
Windowsのログインは、パスワードを知っていれば誰でも本人として入れます
RDPの接続履歴に残るのは、どのアカウントで入ったかです。パスワードを知っている別の人が接続しても、履歴の上では本人の接続と見分けがつきません。
パスワードだけのログイン
漏れた・推測された・メモを見られたパスワードで、そのまま本人として入れます。記録の上でも本人と区別できません。
2要素認証のログイン
パスワードに加えて、本人だけが持つもの(スマホなど)が必要です。パスワードを知っているだけでは入れません。
- VPNや社内Wi-Fiから社内に入られたあと、被害がPC・サーバーへ広がるかどうかは、このログインの部分で決まります。
- 顔・指紋・PIN(Windows Hello)は、ログインを簡単にする仕組みで、2要素認証ではありません。
- 2要素認証というと手間が増えそうですが、本人のスマホを鍵にしたワンタッチログインなら、初回の設定のあとはPINもWindowsのパスワードも打たずに、スマホのワンタッチで入れます。長いパスワードを覚えて打つ手間は、むしろなくなります。
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で確認できます。
失敗した接続を確認する
総当たりの痕跡は失敗のほうに残ります。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から大量の失敗 | RDPの入口がインターネットから見えている |
| administrator・adminなど社内で使わない名前の失敗 | 名前を変えながら試されている |
| 失敗の連続のあと、同じ接続元から成功(4624) | パスワードが当てられた可能性 |
社外のIPアドレスから失敗が並んでいたら、リモートデスクトップの入口がインターネットに出ています。ルーターのポート転送やUPnPで開いていないかを、RDPがインターネットに公開されていないか確認する方法で確かめてください。
同じ人がロックされ続ける場合はアカウントロックアウトの原因を特定する手順を参照してください。
いつまで使っていたかを確認する
アプリケーションとサービス ログ → Microsoft → Windows → TerminalServices-LocalSessionManager → Operationalにセッションの出入りが残ります。
| イベントID | 意味 |
|---|---|
| 21 | ログオン成功(接続元アドレスも記録) |
| 23 | ログオフ |
| 24 | 切断(ウィンドウを閉じただけ) |
| 25 | 再接続 |
×で閉じただけではログオフにならず切断(24)です。「21と24はあるのに23が無い」のは珍しくありません。21(または25)から次の23か24までを1回の利用と数えます。
接続した側のPCに残る履歴
「このPCからどこへ接続したか」は、接続した側(mstsc)のレジストリに残ります。
reg query "HKCU\Software\Microsoft\Terminal Server Client\Servers"残るのは接続先の名前だけで日時はなく、利用者が消せます。日時は接続された側のログで確認します。
履歴が残っていないときは
| 症状 | 原因と対処 |
|---|---|
| 4624・4625が出ない | ログオンの監査が無効。「監査ポリシーの詳細な構成 → ログオン/ログオフ → ログオンの監査」で成功・失敗を有効にする |
| 古い記録が消えている | ログはサイズ上限で上書きされる。イベントビューアーのログ保存期間を確認・変更する手順で上限を見直す |
| イベントID 1102 がある | セキュリティログが消去された。覚えがなければ痕跡を消された可能性も含めて調べる |
見覚えのない接続元IPアドレスや、深夜の接続が見つかった場合は、不正アクセスされたか調べる方法で、ほかの入口も含めて確認してください。
履歴で分からないこと
イベントログで分かること・分からないこと
分からない(次の場合)
- 管理者アカウントを複数人で共有している
- パスワードを口頭やメモで渡している
- 接続元が共用PCやVPNの出口で、IPから人を特定できない
分かること
- どのアカウントで接続したか
- どのIPアドレスから接続したか
- いつからいつまで使ったか
「記録はあるのに誰か分からない」のは、ログの設定ではなくアカウントの使い方の問題です。そもそも誰が接続できるのかを絞る手順はリモートデスクトップで接続できるユーザーを制限する手順、共用IDをやめる進め方は共有アカウントの廃止で扱っています。
普段の管理が楽になると何が変わるか
履歴を1台ずつ開いて調べたり、上書きで消えた記録に困ったりする手間は、全PC・サーバーのログイン記録を1か所に集めておくとなくなります。接続元のPC名・IPアドレス・使ったスマホまで絞り込め、記録は10年間残ります(アプリップリキー)。保守業者が作業に入った日時を確かめたいときも、上司や取引先に「誰がいつ接続したか」を聞かれたときも、画面やCSVをそのまま見せれば済みます。
さらに、ログインを本人のスマホを鍵にしたワンタッチログインにすると、記録に残るアカウントを本人が使ったことがはっきりし、説明しやすくなります(PC版・サーバー版)。毎回の操作はスマホでワンタッチなので、使う人の手間はほとんど増えません。
全PC・サーバーを1か所で管理して1台ずつ見て回る手間をなくす方法はADなしで社内のPC・サーバーをまとめて管理する方法にまとめています。さらに、社内のPC・サーバーのログインを2要素認証にする方法はOSログイン・PCログインの二要素認証、Active Directoryがない会社が1台から始める手順はADなしでPCログインに2要素認証を入れる方法にまとめています。
よくある質問
リモートデスクトップの接続履歴はどこで確認できますか
接続された側のイベントビューアーで確認します。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表示)で位置を確認してください。
会社全体の不正アクセス対策をどこから進めるかは、不正アクセス対策とは 侵入経路別の優先順位で、2026年の統計と事例をもとに整理しています。
