リモートデスクトップに接続できない時の切り分け — エラー別の原因と確認手順
「昨日までつながっていたリモートデスクトップが、今日はつながらない」。原因は、相手のPCの状態・ネットワーク・ポート・RDPの設定・権限・認証のどこかにあります。闇雲に設定を変える前に、外側から順に確認するのが近道です。この記事では、確認の順番、エラーメッセージ別の原因、確認コマンド、そしてイベントログでの調べ方をまとめます。
まずはこの順番で確認する
手前(ネットワーク)から奥(認証)へ向かって確認します。どこで止まったかが分かれば、原因はほぼ絞れます。
| 順番 | 確認すること | 確認方法 |
|---|---|---|
| 1 | 相手のPCが起動しているか。スリープ・休止状態になっていないか | 現地で確認。スリープ中は接続できない |
| 2 | 名前またはIPアドレスで相手に届くか | ping 相手。ただしWindowsは既定でpingに応答しないことがあるので、応答なし=到達不可とは限らない |
| 3 | RDPのポート(既定は3389)が開いているか | Test-NetConnection -ComputerName 相手 -Port 3389 の TcpTestSucceeded が True か |
| 4 | 相手側でリモートデスクトップが有効か。エディションは Pro 以上か | 設定 → システム → リモート デスクトップ。Home エディションは接続される側になれない |
| 5 | 相手側のファイアウォールでRDPが許可されているか | 「リモート デスクトップ」の受信規則が有効か(下のコマンド参照) |
| 6 | 接続するユーザーに権限があるか | Administrators か Remote Desktop Users のメンバーか |
| 7 | 認証が通るか | ユーザー名の書き方、パスワード、NLA・CredSSP(下のエラー表参照) |
手順3で TcpTestSucceeded : False なら、問題は手順1〜5のどこか(届いていない、待ち受けていない、ファイアウォールで止まっている)です。True なのにつながらないなら、手順6〜7(権限・認証)を疑います。
エラーメッセージ別の原因
| 表示されるエラー(要旨) | 主な原因 | 対処 |
|---|---|---|
| リモート コンピューターに接続できません(リモートアクセスが無効/電源オフ/ネットワーク上で使用できない) | 相手が起動していない・スリープ、RDPが無効、ファイアウォール、ポート番号の違い、名前解決の失敗 | 上の手順1〜5を順に確認。ポートを変えている場合は mstsc /v:相手:ポート番号 で接続 |
| 資格情報が機能しませんでした | ユーザー名・パスワードの誤り、ユーザー名の書き方、PINでしかサインインしていない | ローカルアカウントは PC名\ユーザー名、ドメインは ドメイン\ユーザー名 で入力。PINではなくパスワードを入れる。Microsoftアカウントで「Windows Hello サインインのみを許可する」がオンだと失敗することがある |
| このユーザー アカウントは、リモート ログインを許可されていない | ユーザーが Remote Desktop Users に入っていない、またはGPOのユーザー権利で拒否されている | 相手側でグループに追加。GPOで「リモート デスクトップ サービスを使ったログオンを許可」が上書きされていないか確認 |
| 認証エラーが発生しました。要求された関数はサポートされていません(CredSSP) | 接続する側とされる側で、CredSSPの更新プログラムの適用状況が違う | 両方のPCに最新の更新プログラムを適用する。設定を緩めて回避するのは一時的な手段にとどめる |
| 別のユーザーが接続しているため切断された | Windows 10/11 は同時に1セッションだけ。別の人(または別の端末)が接続した | だれが接続しているか確認する(quser)。同時に複数人で使うなら Windows Server の RDS が必要 |
| ライセンス サーバーが利用できないため切断された | Windows Server のリモートデスクトップ セッション ホストで、RD ライセンスの猶予期間が切れた、またはライセンス サーバーに届かない | RD ライセンス サーバーの指定と、CAL の状態を確認する |
確認コマンド早見(接続される側で実行)
接続される側のPCで、PowerShellを管理者として開いて実行します。
# RDP が有効か(0 = 有効、1 = 無効)
(Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server').fDenyTSConnections
# 待ち受けポート番号(既定は 3389)と NLA(1 = 有効)
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' |
Select-Object PortNumber, UserAuthentication
# ファイアウォールの受信規則が有効か
Get-NetFirewallRule -DisplayGroup "リモート デスクトップ" |
Select-Object DisplayName, Enabled, Profile
# Remote Desktop Users のメンバー(SID で指定すると言語に依存しない)
Get-LocalGroupMember -SID S-1-5-32-555
# いま接続しているユーザー
quser
接続する側からは、ポートが開いているかを確認します。
Test-NetConnection -ComputerName PC01 -Port 3389
ポート番号を変えている場合は、-Port と接続先(mstsc /v:PC01:ポート番号)の両方をその番号にします。ポート番号の基本は ポート番号とは で解説しています。
イベントログで「何が起きたか」を調べる
「突然切れた」「だれかが接続しようとしている気がする」というときは、接続される側のイベントログを見ます。イベントビューアーの「アプリケーションとサービス ログ → Microsoft → Windows」の下にあります。
| ログ | イベントID | 分かること |
|---|---|---|
| TerminalServices-RemoteConnectionManager / Operational | 1149 | ユーザー認証に成功した接続(接続元のIPアドレスつき) |
| TerminalServices-RemoteConnectionManager / Operational | 261 | RDPのポートが接続を受け付けた(成功・失敗にかかわらず記録される) |
| TerminalServices-LocalSessionManager / Operational | 21・24・25 | ログオン成功・切断・再接続(接続元のIPアドレスつき) |
| TerminalServices-LocalSessionManager / Operational | 40 | 切断の理由コード。5 は「別の接続に置き換えられた」 |
| RemoteDesktopServices-RdpCoreTS / Operational | 140 | ユーザー名またはパスワードが違うため失敗した接続(接続元のIPアドレスつき) |
たとえば、失敗した接続の接続元を数えるには次のようにします。
Get-WinEvent -FilterHashtable @{ LogName = 'Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational'; Id = 140 } |
ForEach-Object { if ($_.Message -match '(\d{1,3}(\.\d{1,3}){3})') { $Matches[1] } } |
Group-Object | Sort-Object Count -Descending | Select-Object Name, Count
ここに社内や自宅のネットワークではない、見覚えのないIPアドレスが大量に並んでいたら、インターネットからパスワードの総当たりを受けています。すぐに次の対策をしてください。
インターネットに直接公開しない
リモートデスクトップのポートをルーターで開けて、インターネットから直接つながるようにするのは危険です。インターネット上では、すべてのポートが常に自動でスキャンされていて、RDPを見つけるとユーザー名とパスワードの総当たりが始まります。ポート番号を3389から変えても、スキャンで見つかるので防げません。
| 対策 | 内容 |
|---|---|
| ポートを公開しない | ルーターのポート転送を削除する。UPnPで勝手に開いていないかも確認する |
| 外からはVPN経由にする | VPNでいったん社内・自宅のネットワークに入ってから接続する。企業ならリモートデスクトップゲートウェイも選択肢 |
| NLAを有効にする | 設定 → システム → リモート デスクトップ の「接続にネットワーク レベル認証を要求する」をオン。認証が済むまで画面(セッション)を作らないので、総当たりの影響を受けにくくなる |
| ロックアウトとパスワード | アカウント ロックアウトのしきい値を設定し、推測されにくい長いパスワードを使う |
境界の守り方(ファイアウォール・DMZ・VPN)の全体像は ネットワークセキュリティの基礎 を参照してください。
よくある質問
Q. リモートデスクトップのポート番号を変えれば安全?
A. 安全にはなりません。全ポートが自動でスキャンされているため、番号を変えても見つかります。インターネットに直接公開しないことが基本です。
Q. Windows Home エディションに接続できないのはなぜ?
A. Home は接続する側にはなれますが、接続される側にはなれません。接続される側には Pro 以上が必要です。
Q. Windows 10/11 に同時に2人で接続できる?
A. できません。同時に使えるのは1セッションで、後から接続すると先に接続していた人は切断されます。Windows Server では、管理用に同時2セッションまで使えます。それ以上はリモートデスクトップ サービス(RDS)とライセンスが必要です。
Q. 接続できるのに、しばらくすると切れるのは?
A. ネットワークの不安定さのほか、GPOで設定したアイドル時間や切断時間の制限、別の端末からの接続が考えられます。LocalSessionManager のイベント40の理由コードで、どの理由で切れたかを確認します。
🔗 関連:グループポリシーが適用されない時の切り分け / Windowsサービスアカウントと権限 / Windowsのプロキシ3系統 / グローバルIP確認 / 記事一覧