Windows11/10でのリモートデスクトップ接続の問題とエラーを修正します

リモートデスクトッププロトコル(RDP)は、 (Remote Desktop Protocol (RDP))Microsoftが開発した独自のプロトコル  であり、ネットワーク接続を介して別のコンピューターに接続するためのグラフィカルインターフェイスをユーザーに提供します。ユーザーはこの目的でRDPクライアントソフトウェアを使用しますが、他のコンピューターはRDPサーバーソフトウェアを実行する必要があります。この投稿では、Windows11/10での一般的なリモートデスクトップ接続の問題をトラブルシューティングする方法について説明します。(troubleshoot general Remote Desktop connection issues)

リモートデスクトップ

リモートデスクトップ(Fix Remote Desktop)接続の問題を修正する

リモートデスクトップクライアントが(Remote Desktop client is not working)機能していないか、リモートデスクトップに接続できない(cannot connect to a remote desktop)が、原因の特定に役立つメッセージやその他の症状が表示されない場合は、以下に概説するトラブルシューティング手順を試してください。

1]ローカルコンピューターでRDPプロトコルのステータスを確認します(Check)

ローカルコンピューターのRDP(RDP)プロトコルのステータスを確認および変更するには、リモートデスクトップ(enable Remote Desktop)を有効にする必要があります。コマンドプロンプトまたはPowerShellを使用してリモートデスクトップを有効に(enable Remote Desktop using Command Prompt or PowerShell)することもできます。

2]リモートコンピューターでRDPプロトコルのステータスを確認します(Check)

リモートコンピューターでRDPプロトコルのステータスを確認する

リモートコンピューターのRDPプロトコルのステータスを確認および変更するには、ネットワークレジストリ接続を使用します。

これはレジストリ操作であるため、必要な予防措置として、レジストリをバックアップする(back up the registry) か 、システムの復元ポイントを作成する ことをお勧めします。完了したら、次のように進めることができます。

  • Windowsキー+Rを押して、[実行(Run)]ダイアログを呼び出します。
  • [ファイル名を指定して実行]ダイアログボックスで、regeditEnterキーを押して入力し、レジストリエディタを開き(open Registry Editor)ます。
  • レジストリエディタで、[ ファイル] 、[(File)ネットワークレジストリの接続](Connect Network Registry)の順に選択し ます。
  • [コンピューターの 選択](Select Computer)ダイアログボックスで、リモートコンピューターの名前を入力します。
  • [名前の確認]を(Check Names.)選択します。
  • [ OK]を選択します。
  • 次に、 以下のレジストリキーパスに移動またはジャンプします。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
  • その場所の右側のペインで、fDenyTSConnectionsキーをダブルクリックして、そのプロパティを編集します。
  • RDPを有効にするには、 fDenyTSConnectionsの(fDenyTSConnections)(Value)データを1 から 0に設定 し ます。

値0はRDPが有効であることを示し、値1はRDPが無効であることを示します。

関連(Related)リモートデスクトップオプションは(Remote Desktop option is greyed out)、Windows10ではグレー表示されています

3]グループポリシーオブジェクト(Group Policy Object)GPO )がローカルコンピューターでRDPをブロックしているかどうかを確認します(Check)

リモートデスクトップ接続の問題を修正する

ユーザーインターフェイス でRDPをオンにできない場合、または 変更後にfDenyTSConnectionsの値が1に 戻る 場合は、 GPOがコンピューターレベルの設定を上書きしている可能性があります。(GPO)

ローカルコンピューターでグループポリシーの構成を確認するには、次の手順を実行します。

  • Windows key + Rを押して、[実行]ダイアログを呼び出します。
  • [ファイル名を指定して実行]ダイアログボックスで、と入力し、 CTRL + SHIFT + ENTERcmdを押しopen Command Prompt in admin/elevated modeを開きます。
  • コマンドプロンプトウィンドウで、以下のコマンドを入力し、  Enterキー(Enter)を押します。
gpresult /H c:\gpresult.html
  • コマンドが実行されたら、gpresult.htmlを開きます。
  • Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Connectionsで、[ユーザーがリモートデスクトップサービス(Allow users to connect remotely by using Remote Desktop Services) ポリシーを使用してリモート接続できるようにする]を見つけます。

このポリシーの設定が 有効(Enabled)になっている場合、グループポリシーは(Group Policy)RDP接続をブロックしていません。このポリシーの設定が 無効(Disabled)に なっている場合は、[勝利のGPO](Winning GPO)をオンにします。これは、RDP接続をブロックしているGPOです。(GPO)

4] GPOがリモートコンピューターのRDPをブロックしているかどうかを確認します(Check)

リモートコンピューターでグループポリシー(Group Policy)の構成を確認するには、昇格したCMDプロンプトで次のコマンドを実行します。

gpresult /S <computer name> /H c:\gpresult-<computer name>.html

このコマンドが生成するファイル(gpresult-<computer name>.htmlgpresult.html )が使用するのと同じ情報形式を使用します。

5]ブロッキングGPOを変更します

ブロッキングGPOの変更

これらの設定は、グループポリシーオブジェクトエディター(Group Policy Object Editor)GPE)およびグループポリシー管理コンソール(GPMC)で変更できます。

ブロッキングポリシーを変更するには、次のいずれかの方法を使用します。

GPEを使用して、次の手順を実行します。

  • Windows key + Rを押して、[実行]ダイアログを呼び出します。
  • [ファイル名を指定して実行]ダイアログボックスgpedit.mscで、Enterキーを押して入力し、グループポリシーエディターを開き(open Group Policy Editor)ます。
  • ローカルグループポリシーエディター(Local Group Policy Editor)内で、左側のウィンドウを使用して以下のパスに移動します。
Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections
  • その場所の右側のウィンドウで、[ユーザーがリモートデスクトップサービスを使用してリモート接続できるようにする](Allow users to connect remotely by using Remote Desktop Services)をダブルクリックして、そのプロパティを編集します。
  • ポリシーを[ 有効](Enabled) または [未構成(Not configured)]に設定します。
  • [適用](Apply) >[ OK]をクリックして終了します。
  • 影響を受けるコンピューターで、管理者としてコマンドプロンプトウィンドウを開き、次のコマンドを実行します。
 gpupdate /force

GPMCを使用して、影響を受けるコンピューターにブロックポリシーが適用されている組織単位(OU)に移動し、OUからポリシーを削除します。

6] RDPサービスのステータスを確認します(Check)

RDPサービスのステータスを確認します

ローカル(クライアント)コンピューターとリモート(ターゲット)コンピューターの両方で、次のサービスが実行されている必要があります。

  • リモートデスクトップサービス(Remote Desktop Services)TermService
  • リモートデスクトップサービスUserModeポートリダイレク(Remote Desktop Services UserMode Port Redirector)ター(UmRdpService

どちらのコンピューターでも、一方または両方のサービスが実行されていない場合は、それらを開始します。

以下をせよ:

  • Windows key + Rを押して、[実行]ダイアログを呼び出します。
  • [実行]ダイアログボックスで、services.mscEnterキーを押して入力し、[サービス]を開きます(open Services)
  • [サービス](Services)ウィンドウで、前述の両方のサービスをスクロールして見つけます。
  • (Double-click)エントリをダブルクリックして、プロパティを編集します。
  • プロパティウィンドウで、[スタート(Start)]ボタンをクリックします。
  • [ OK]をクリックします。

PowerShellを使用して、サービスをローカルまたはリモートで管理することもできます(リモートコンピューターがリモートPowerShellコマンドレットを受け入れるように構成されている場合)。

7] RDPリスナーのステータスを確認します(Check)

RDPリスナーのステータスを確認する

同じコマンドレットがローカルとリモートの両方で機能するため、この手順ではPowerShellを使用します。(PowerShell)ローカルコンピューターの場合は、管理者権限を持つコマンドプロンプトを使用することもできます。

リモートコンピューターに接続するには、次の手順を実行します。

  • Windows key + Xを押して、パワーユーザーメニューを開きます(open Power User Menu)
  • キーボードのA(A)をタップして、 PowerShellを管理/昇格モードで起動します。
  • PowerShellコンソールで、以下のコマンドを入力し、Enterキー(Enter)を押します。
Enter-PSSession -ComputerName <computer name>
  • を入力し qwinstaます。

上の画像に示すように、リストに ステータスが Listenの(Listen)rdp-tcpが含まれている場合 、 RDPリスナーは機能しています。以下のトラブルシューティング手順10]に(Troubleshooting step 10])ジャンプ(Jump)します。それ以外の場合は、動作中のコンピューターから(Otherwise)RDPリスナー構成をエクスポートする必要があります。

以下をせよ:

  • 影響を受けるコンピューターと同じオペレーティングシステムバージョンのコンピューターにサインインし、そのコンピューターのレジストリにアクセスします。
  • (Navigate)次のレジストリエントリに移動またはジャンプします
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
  • エントリを.regファイルにエクスポートします(Export the entry to a .reg file)
  • エクスポートした.regファイルを影響を受けるコンピューターにコピーします。
  • RDPリスナー構成をインポートするには、影響を受けるコンピューターの管理者権限を持つPowerShellウィンドウを開きます(または、 (PowerShell)PowerShellウィンドウを開いて、影響を受けるコンピューターにリモートで接続します)。

既存のレジストリエントリをバックアップする(To back up the existing registry entry)には、次のコマンドレットを入力します。

cmd /c 'reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp" C:\Rdp-tcp-backup.reg'

既存のレジストリエントリを削除する(To remove the existing registry entry)には、次のコマンドレットを入力します。

Remove-Item -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp' -Recurse -Force

新しいレジストリエントリをインポートしてからサービスを再起動する(To import the new registry entry and then restart the service)には、以下のコマンドレットを実行します。<filename>プレースホルダーを、エクスポートされた.regファイルの名前に置き換えます。

cmd /c 'regedit /s c:\<filename>.reg' 
Restart-Service TermService -Force

コマンドレットの実行が完了したら、リモートデスクトップ接続を再試行して構成をテストできます。それでも接続できない場合は、影響を受けるコンピューターを再起動してください。

それでも接続できない場合は、次のトラブルシューティング手順に進みます。これは、RDP自己署名証明書のステータスを確認すること(check the status of the RDP self-signed certificate)です。

8] RDP自己署名証明書のステータスを確認します(Check)

RDP自己署名証明書のステータスを確認します

それでも接続できない場合は、次の手順を実行してください。

  • Windows key + Rを押して、[実行]ダイアログを呼び出します。
  • [ファイル名を指定して実行]ダイアログボックスで、mmcEnterキーを押して入力し、 Microsoft管理コンソールを開きます(open Microsoft Management Console)
  • [ファイル(File)]メニューをクリックします。
  • Add/Remove Snap-in選択します。
  • (Certificates)(Select Certificates)スナップインのリストから[証明書]を選択 します。
  • [追加]を(Add)クリックします。
  • 管理する証明書ストアを選択するように求められたら、[ コンピューターアカウント]を選択します。(Computer account.)
  • [次へ(Next)]をクリックします。
  • 影響を受けるコンピューターを選択します。
  • [完了(Finish)]ボタンをクリックします。
  • [ OK]をクリックします。
  • 次に、リモートデスクトップの下の[(Remote Desktop)証明書(Certificates) ]フォルダーで 、 RDP自己署名証明書を削除します。
  • 影響を受けるコンピューターで、リモートデスクトップサービス(Remote Desktop Services)サービスを再起動します。
  • 証明書スナップインを更新します。
  • RDP自己署名証明書が再作成されていない場合は、 MachineKeysフォルダーのアクセス許可を確認してください。

9] MachineKeysフォルダの権限を確認してください(Check)

影響を受けるコンピューターで、次の手順を実行します。

  • Windows key + Eを押して、ファイルエクスプローラーを開きます(open File Explorer)
  • 以下のディレクトリパスに移動します。
 C:\ProgramData\Microsoft\Crypto\RSA\
  • その場所で、[ MachineKeys ]を右クリックし、[(MachineKeys)プロパティ(Properties)] 、[ セキュリティ(Security)] 、  [詳細]の順に選択し ます(Advanced)

(Make)次の権限が構成されていることを確認してください。

  • BuiltinAdministrators:フルコントロール(Full control)
  • みんな:読んで、書いて(Read, Write)

10]RDPリスナーポートを確認します

RDPリスナーポートを確認します

ローカル(クライアント)コンピューターとリモート(ターゲット)コンピューターの両方で、RDPリスナーはポート3389でリッスンしている必要があります。他のアプリケーションがこのポートを使用してはなりません。

RDPポートを確認または変更するには、レジストリエディタ(Registry Editor)を使用します。予防措置として、レジストリをバックアップするか、システムの復元ポイントを作成してから、次の手順を実行します。

  • レジストリエディタを開き、[ファイル]、[(File)ネットワークレジストリの接続](Connect Network Registry)の順に選択し ます。
  • [コンピューターの 選択](Select Computer)ダイアログボックスで、リモートコンピューターの名前を入力します。
  • [名前の確認]を(Check Names.)選択します。
  • [ OK]を選択します。
  • 次に、 以下のレジストリキーパスに移動またはジャンプします。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
  • その場所の右側のペインで、PortNumberエントリをダブルクリックしてプロパティを編集します。
  • プロパティウィンドウで、[(Value)のデータ]フィールドの値が3389以外の場合は、3389に変更し ます。(3389.)
  • [ OK]をクリックして変更を保存します。
  • リモートデスクトップサービス(Remote Desktop Services)サービスを再起動します。

11]別のアプリケーションが同じポートを使用していないことを確認してください(Check)

以下をせよ:

  • PowerShellを昇格モードで開きます。
  • リモートコンピューターに接続するには、次のコマンドを実行します。
 Enter-PSSession -ComputerName <computer name>

次に、次のコマンドを実行します。

cmd /c 'netstat -ano | find "3389"'
  • (Look)ステータスが リスニングの(Listening)TCPポート3389(または割り当てられたRDPポート)のエントリを探します。

(Note):そのポートを使用するプロセスまたはサービスのプロセスID(PID )は、 (PID)PID列の下に表示されます。

  • ポート3389(または割り当てられたRDPポート)を使用しているアプリケーションを判別するには、次のコマンドを入力します。
cmd /c 'tasklist /svc | find "<pid listening on 3389>"'
  • (Look)(出力から)ポートに関連付けられて いるPID番号のエントリを探しnetstat ます。そのPIDに関連付けられているサービスまたはプロセスが右側の列に表示されます。
  • リモートデスクトップサービス(Remote Desktop Services)TermServ.exe )以外のアプリケーションまたはサービスがポートを使用している場合は、次のいずれかの方法を使用して競合を解決できます。

別のポートを使用するように他のアプリケーションまたはサービスを構成します(推奨)。

他のアプリケーションまたはサービスをアンインストールします。

別のポートを使用するようにRDPを構成してから、リモートデスクトップサービス(Remote Desktop Services)サービスを再起動します(非推奨)。

12]ファイアウォールがRDPポートをブロックしているかどうかを確認します(Check)

pspingツールを使用し て、ポート3389を使用して影響を受けるコンピューターに到達できるかどうかをテストできます。

以下をせよ:

  • 影響を受けていない別のコンピューターに移動し、pspingを(psping)ダウンロードします(download) 
  • 管理者としてコマンドプロンプトウィンドウを開き、  pspingをインストールしたディレクトリに移動して、次のコマンドを入力します。
psping -accepteula <computer IP>:3389
  • 次のような結果については、 psping(psping) コマンドの出力を確認してください 。

Connecting to <computer IP>の接続:リモートコンピューターにアクセスできます。

(0% loss):接続のすべての試行が成功しました。

リモートコンピューターがネットワーク接続を拒否しました(The remote computer refused the network connection):リモートコンピューターにアクセスできません。

(100% loss):接続のすべての試行が失敗しました。

  • 複数のコンピューターでpsping(psping)を実行  して、影響を受けるコンピューターに接続する能力をテストします。
  • 影響を受けるコンピューターが、他のすべてのコンピューター、他の一部のコンピューター、または他の1台のコンピューターからの接続をブロックしていないかどうかに注意してください。

実行できる追加の手順は次のとおりです。

  • ネットワーク管理者に連絡して、影響を受けるコンピューターへのRDPトラフィックがネットワークで許可されていることを確認します。
  • ソースコンピューターと影響を受けるコンピューター(影響を受けるコンピューターのWindowsファイアウォールを含む)の間のファイアウォールの構成を調べて、ファイアウォールが(Windows Firewall)RDPポートをブロックしているかどうかを確認します。

この投稿が、発生している可能性のあるRDP(RDP)接続の問題のトラブルシューティングに役立つことを願っています。



About the author

私は経験豊富なソフトウェア エンジニアであり、ユーザー アカウント、家族の安全、Google Chrome テクノロジの開発と管理に 10 年以上の経験があります。私は数学とコンピュータ サイエンスの強力な基礎を持っており、それを使用して自分のスキルを明確かつ簡潔に説明しています。



Related posts