リモート デスクトップ接続の一般的なトラブルシューティングGeneral Remote Desktop connection troubleshooting

リモート デスクトップ クライアントがリモート デスクトップに接続できず、しかし原因の特定に役立つメッセージや他の症状が提供されない場合は、以下の手順を使用します。Use these steps when a Remote Desktop client can't connect to a remote desktop but doesn't provide messages or other symptoms that would help identify the cause.

RDP プロトコルの状態を確認するCheck the status of the RDP protocol

ローカル コンピューターで RDP プロトコルの状態を確認するCheck the status of the RDP protocol on a local computer

ローカル コンピューターで RDP プロトコルの状態を確認および変更するには、「リモート デスクトップを有効にする方法」をご覧ください。To check and change the status of the RDP protocol on a local computer, see How to enable Remote Desktop.

注意

リモート デスクトップのオプションを利用できない場合は、「ローカル コンピューターでグループ ポリシー オブジェクト (GPO) が RDP をブロックしているかどうかを確認する」をご覧ください。If the remote desktop options are not available, see Check whether a Group Policy Object is blocking RDP.

リモート コンピューターで RDP プロトコルの状態を確認するCheck the status of the RDP protocol on a remote computer

重要

このセクションの手順には、慎重に従ってください。Follow this section's instructions carefully. レジストリに正しくない変更を加えると、重大な問題が発生する可能性があります。Serious problems can occur if the registry is modified incorrectly. レジストリの変更を開始する前に、レジストリをバックアップして、何らかの問題が発生した場合に復元できるようにします。Before you start modifying the registry, back up the registry so you can restore it in case something goes wrong.

リモート コンピューターで RDP プロトコルの状態を確認して変更するには、ネットワーク レジストリ接続を使います。To check and change the status of the RDP protocol on a remote computer, use a network registry connection:

  1. 最初に、 [スタート] メニューに移動し、 [ファイル名を指定して実行] を選択します。First, go to the Start menu, then select Run. 表示されるテキストボックスに「regedt32」と入力します。In the text box that appears, enter regedt32.
  2. レジストリ エディターで、 [ファイル][ネットワーク レジストリへの接続] の順に選択します。In the Registry Editor, select File, then select Connect Network Registry.
  3. [コンピューターの選択] ダイアログ ボックスで、リモート コンピューターの名前を入力し、 [名前の確認] を選択してから、 [OK] を選択します。In the Select Computer dialog box, enter the name of the remote computer, select Check Names, and then select OK.
  4. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server に移動します。Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server.
    fDenyTSConnections エントリが示されているレジストリ エディターRegistry Editor, showing the fDenyTSConnections entry
    • fDenyTSConnections キーの値が 0 の場合、RDP は有効になっています。If the value of the fDenyTSConnections key is 0, then RDP is enabled.
    • fDenyTSConnections キーの値が 1 の場合、RDP は無効になっています。If the value of the fDenyTSConnections key is 1, then RDP is disabled.
  5. RDP を有効にするには、fDenyTSConnections の値を 1 から 0 に変更します。To enable RDP, change the value of fDenyTSConnections from 1 to 0.

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

ユーザー インターフェイスで RDP を有効にできない場合、または変更した後で fDenyTSConnections の値が 1 に戻る場合は、GPO によってコンピューター レベルの設定がオーバーライドされている可能性があります。If you can't turn on RDP in the user interface or the value of fDenyTSConnections reverts to 1 after you've changed it, a GPO may be overriding the computer-level settings.

ローカル コンピューターでのグループ ポリシーの構成を確認するには、管理者としてコマンド プロンプト ウィンドウを開き、次のコマンドを入力します。To check the group policy configuration on a local computer, open a Command Prompt window as an administrator, and enter the following command:

gpresult /H c:\gpresult.html

このコマンドの終了後、gpresult.html を開きます。After this command finishes, open gpresult.html. [コンピューターの構成] > [管理用テンプレート] > [Windows コンポーネント] > [リモート デスクトップ サービス] > [リモート デスクトップ セッション ホスト] > [接続] で、 [ユーザーがリモート デスクトップ サービスを使ってリモート接続することを許可する] ポリシーを探します。In Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Connections, find the Allow users to connect remotely by using Remote Desktop Services policy.

  • このポリシーの設定が [有効] である場合、グループ ポリシーでは RDP 接続はブロックされていません。If the setting for this policy is Enabled, Group Policy is not blocking RDP connections.

  • このポリシー設定が [無効] である場合は、 [優勢な GPO] を確認します。If the setting for this policy is Disabled, check Winning GPO. これが、RDP 接続をブロックしている GPO です。This is the GPO that is blocking RDP connections. ドメイン レベルの GPO の RDP ブロック で RDP が無効になっている gpresult.html のセグメントの例。An example segment of gpresult.html, in which the domain-level GPO Block RDP is disabling RDP.

    ローカル グループ ポリシー で RDP が無効になっている gpresult.html のセグメントの例。

リモート コンピューターで GPO によって RDP がブロックされているかどうかを確認するCheck whether a GPO is blocking RDP on a remote computer

リモート コンピューターでグループ ポリシーの構成を確認するためのコマンドは、ローカル コンピューターの場合とほぼ同じです。To check the Group Policy configuration on a remote computer, the command is almost the same as for a local computer:

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

このコマンドによって生成されるファイル (gpresult-<computer name>.html) では、ローカル コンピューター バージョン (gpresult.html) で使用されるのと同じ情報の形式が使われます。The file that this command produces (gpresult-<computer name>.html) uses the same information format as the local computer version (gpresult.html) uses.

ブロックしている GPO を変更するModifying a blocking GPO

グループ ポリシー オブジェクト エディター (GPE) およびグループ ポリシー管理コンソール (GPM) で、これらの設定を変更することができます。You can modify these settings in the Group Policy Object Editor (GPE) and Group Policy Management Console (GPM). グループ ポリシーの使い方について詳しくは、「Advanced Group Policy Management」(高度なグループ ポリシーの管理) をご覧ください。For more information about how to use Group Policy, see Advanced Group Policy Management.

ブロックしているポリシーを変更するには、次のいずれかの方法を使います。To modify the blocking policy, use one of the following methods:

  • GPE で、適切なレベルの GPO (ローカル、ドメインなど) にアクセスし、 [コンピューターの構成] > [管理用テンプレート] > [Windows コンポーネント] > [リモート デスクトップ サービス] > [リモート デスクトップ セッション ホスト] > [接続] > [ユーザーがリモート デスクトップ サービスを使ってリモート接続することを許可する] に移動します。In GPE, access the appropriate level of GPO (such as local or domain), and navigate to Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections > Allow users to connect remotely by using Remote Desktop Services.
    1. ポリシーを [有効] または [未構成] に設定します。Set the policy to either Enabled or Not configured.
    2. 影響を受けるコンピューターで、管理者としてコマンド プロンプト ウィンドウを開き、gpupdate /force コマンドを実行します。On the affected computers, open a command prompt window as an administrator, and run the gpupdate /force command.
  • GPM で、影響を受けるコンピューターにブロック ポリシーを適用している組織単位 (OU) に移動し、OU からこのポリシーを削除します。In GPM, navigate to the organizational unit (OU) in which the blocking policy is applied to the affected computers and delete the policy from the OU.

RDP サービスの状態を確認するCheck the status of the RDP services

ローカル (クライアント) コンピューターとリモート (ターゲット) コンピューターの両方で、次のサービスが実行されている必要があります。On both the local (client) computer and the remote (target) computer, the following services should be running:

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

サービス MMC スナップインを使って、ローカル環境またはリモート環境のサービスを管理できます。You can use the Services MMC snap-in to manage the services locally or remotely. PowerShell を使用して、ローカル環境またはリモート環境 (リモート PowerShell コマンドレットを受け付けるようにリモート コンピューターが構成されている場合) のサービスを管理することもできます。You can also use PowerShell to manage the services locally or remotely (if the remote computer is configured to accept remote PowerShell cmdlets).

サービス MMC スナップインでのリモート デスクトップ サービス。

いずれかのコンピューターで、1 つまたは両方のサービスが実行されていない場合は、開始します。On either computer, if one or both services are not running, start them.

注意

リモート デスクトップ サービス サービスを開始する場合、 [はい] をクリックすると、リモート デスクトップ サービス ユーザー モード ポート リダイレクター サービスが自動的に再起動します。If you start the Remote Desktop Services service, click Yes to automatically restart the Remote Desktop Services UserMode Port Redirector service.

RDP リスナーが機能していることを確認するCheck that the RDP listener is functioning

重要

このセクションの手順には、慎重に従ってください。Follow this section's instructions carefully. レジストリに正しくない変更を加えると、重大な問題が発生する可能性があります。Serious problems can occur if the registry is modified incorrectly. レジストリの変更を開始する前に、レジストリをバックアップして、何らかの問題が発生した場合に復元できるようにします。Before you starty modifying the registry, back up the registry so you can restore it in case something goes wrong.

RDP リスナーの状態を確認するCheck the status of the RDP listener

この手順では、管理者アクセス許可を持つ PowerShell インスタンスを使います。For this procedure, use a PowerShell instance that has administrative permissions. ローカル コンピューターでは、管理者アクセス許可を持つコマンド プロンプトを使うこともできます。For a local computer, you can also use a command prompt that has administrative permissions. ただし、この手順では、ローカルとリモートの両方で同じコマンドレットが動作するため、PowerShell を使います。However, this procedure uses PowerShell because the same cmdlets work both locally and remotely.

  1. リモート コンピューターに接続するために、次のコマンドレットを実行します。To connect to a remote computer, run the following cmdlet:

    Enter-PSSession -ComputerName <computer name>
    
  2. qwinsta」と入力します。Enter qwinsta. qwinsta コマンドでは、コンピューターのポートでリッスンしているプロセスが一覧表示される。The qwinsta command lists the processes listening on the computer's ports.

  3. リストに Listen という状態の rdp-tcp が含まれている場合、RDP リスナーは動作しています。If the list includes rdp-tcp with a status of Listen, the RDP listener is working. RDP リスナー ポートを確認する」に進んでください。Proceed to Check the RDP listener port. それ以外の場合は、手順 4 に進みます。Otherwise, continue at step 4.

  4. 動作中のコンピューターから RDP リスナーの構成をエクスポートします。Export the RDP listener configuration from a working computer.

    1. 影響を受けるコンピューターと同じバージョンのオペレーティング システムが搭載されているコンピューターにサインインし、そのコンピューターのレジストリにアクセスします (たとえば、レジストリ エディターを使用)。Sign in to a computer that has the same operating system version as the affected computer has, and access that computer's registry (for example, by using Registry Editor).
    2. 次のレジストリ エントリに移動します。Navigate to the following registry entry:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TcpHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
    3. エントリを .reg ファイルにエクスポートします。Export the entry to a .reg file. たとえば、レジストリ エディターでエントリを右クリックし、 [エクスポート] を選択してから、エクスポートされる設定のファイル名を入力します。For example, in Registry Editor, right-click the entry, select Export, and then enter a filename for the exported settings.
    4. エクスポートした .reg ファイルを、影響を受けるコンピューターにコピーします。Copy the exported .reg file to the affected computer.
  5. RDP リスナーの構成をインポートするには、影響を受けるコンピューターで管理者アクセス許可を持つ PowerShell ウィンドウを開きます (または、PowerShell ウィンドウを開き、影響を受けるコンピューターにリモート接続します)。To import the RDP listener configuration, open a PowerShell window that has administrative permissions on the affected computer (or open the PowerShell window and connect to the affected computer remotely).

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

      cmd /c 'reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp" C:\Rdp-tcp-backup.reg'   
      
    2. 既存のレジストリ エントリを削除するには、次のコマンドレットを入力します。To remove the existing registry entry, enter the following cmdlets:

      Remove-Item -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp' -Recurse -Force  
      
    3. 新しいレジストリ エントリをインポートしてサービスを再起動するには、次のコマンドレットを入力します。To import the new registry entry and then restart the service, enter the following cmdlets:

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

      <filename> を、エクスポートした .reg ファイルの名前に置き換えます。Replace <filename> with the name of the exported .reg file.

  6. 再びリモート デスクトップ接続を試みて、構成をテストします。Test the configuration by trying the remote desktop connection again. まだ接続できない場合は、影響を受けるコンピューターを再起動します。If you still can't connect, restart the affected computer.

  7. それでも接続できない場合は、RDP の自己署名証明書の状態を確認します。If you still can't connect, check the status of the RDP self-signed certificate.

RDP の自己署名証明書の状態を確認するCheck the status of the RDP self-signed certificate

  1. まだ接続できない場合は、証明書 MMC スナップインを開きます。If you still can't connect, open the Certificates MMC snap-in. 管理する証明書ストアの選択を求めるメッセージが表示されたら、 [コンピューター アカウント] を選択し、影響を受けるコンピューターを選択します。When you are prompted to select the certificate store to manage, select Computer account, and then select the affected computer.
  2. [証明書] フォルダーの [リモート デスクトップ] で、RDP 自己署名証明書を削除します。In the Certificates folder under Remote Desktop, delete the RDP self-signed certificate. MMC 証明書スナップインでのリモート デスクトップ証明書。Remote Desktop certificates in the MMC Certificates snap-in.
  3. 影響を受けるコンピューターで、リモート デスクトップ サービスのサービスを再起動します。On the affected computer, restart the Remote Desktop Services service.
  4. 証明書スナップインを最新の情報に更新します。Refresh the Certificates snap-in.
  5. RDP 自己署名証明書が再作成されていない場合は、MachineKeys フォルダーのアクセス許可を確認します。If the RDP self-signed certificate has not been recreated, check the permissions of the MachineKeys folder.

MachineKeys フォルダーのアクセス許可を確認するCheck the permissions of the MachineKeys folder

  1. 影響を受けるコンピューターでエクスプローラーを開き、C:\ProgramData\Microsoft\Crypto\RSA\ に移動します。On the affected computer, open Explorer, and then navigate to C:\ProgramData\Microsoft\Crypto\RSA\.
  2. MachineKeys を右クリックし、 [プロパティ][セキュリティ][詳細設定] の順に選択します。Right-click MachineKeys, select Properties, select Security, and then select Advanced.
  3. 次のアクセス許可が構成されていることを確認します。Make sure that the following permissions are configured:
    • Builtin\Administrators: フル コントロールBuiltin\Administrators: Full control
    • Everyone: 読み取り、書き込みEveryone: Read, Write

RDP リスナー ポートを確認するCheck the RDP listener port

ローカル (クライアント) コンピューターとリモート (ターゲット) コンピューターの両方で、RDP リスナーがポート 3389 でリッスンしている必要があります。On both the local (client) computer and the remote (target) computer, the RDP listener should be listening on port 3389. 他のアプリケーションがこのポートを使っていてはなりません。No other applications should be using this port.

重要

このセクションの手順には、慎重に従ってください。Follow this section's instructions carefully. レジストリに正しくない変更を加えると、重大な問題が発生する可能性があります。Serious problems can occur if the registry is modified incorrectly. レジストリの変更を開始する前に、レジストリをバックアップして、何らかの問題が発生した場合に復元できるようにします。Before you starty modifying the registry, back up the registry so you can restore it in case something goes wrong.

RDP ポートを確認または変更するには、レジストリ エディターを使います。To check or change the RDP port, use the Registry Editor:

  1. [スタート] メニューに移動し、 [ファイル名を指定して実行] を選択して、表示されるテキストボックスに「regedt32」と入力します。Go to the Start menu, select Run, then enter regedt32 into the text box that appears.
    • リモート コンピューターに接続するには、 [ファイル][ネットワーク レジストリへの接続] の順に選択します。To connect to a remote computer, select File, and then select Connect Network Registry.
    • [コンピューターの選択] ダイアログ ボックスで、リモート コンピューターの名前を入力し、 [名前の確認] を選択してから、 [OK] を選択します。In the Select Computer dialog box, enter the name of the remote computer, select Check Names, and then select OK.
  2. レジストリを開き、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\<listener> に移動します。Open the registry and navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\<listener>. RDP プロトコルの PortNumber サブキー。The PortNumber subkey for the RDP protocol.
  3. PortNumber の値が 3389 以外の場合は、3389 に変更します。If PortNumber has a value other than 3389, change it to 3389.

    重要

    別のポートを使ってリモート デスクトップ サービスを動作させることができます。You can operate Remote Desktop services using another port. ただし、このようにすることはお勧めしません。However, we don't recommend you do this. この記事では、その種類の構成のトラブルシューティング方法については説明しません。This article doesn't cover how to troubleshoot that type of configuration.

  4. ポート番号を変更した後、リモート デスクトップ サービスのサービスを再起動します。After you change the port number, restart the Remote Desktop Services service.

別のアプリケーションが同じポートを使おうとしていないことを確認するCheck that another application isn't trying to use the same port

この手順では、管理者アクセス許可を持つ PowerShell インスタンスを使います。For this procedure, use a PowerShell instance that has administrative permissions. ローカル コンピューターでは、管理者アクセス許可を持つコマンド プロンプトを使うこともできます。For a local computer, you can also use a command prompt that has administrative permissions. ただし、この手順では、ローカルとリモートで同じコマンドレットが動作するため、PowerShell を使います。However, this procedure uses PowerShell because the same cmdlets work locally and remotely.

  1. PowerShell ウィンドウを開きます。Open a PowerShell window. リモート コンピューターに接続するには、「Enter-PSSession -ComputerName <computer name> 」と入力します。To connect to a remote computer, enter Enter-PSSession -ComputerName <computer name>.

  2. 次のコマンドを入力します。Enter the following command:

    cmd /c 'netstat -ano | find "3389"'  
    

    netstat コマンドでは、ポートおよびそれをリッスンしているサービスのリストが生成されます。

  3. 状態が「LISTENING」の TCP ポート 3389 (または割り当てられた RDP ポート) のエントリを探します。Look for an entry for TCP port 3389 (or the assigned RDP port) with a status of Listening.

    注意

    そのポートを使用しているプロセスまたはサービスのプロセス ID (PID) が、[PID] 列の下に表示されます。The process identifier (PID) for the process or service using that port appears under the PID column.

  4. ポート 3389 (または、割り当てられている RDP ポート) を使っているアプリケーションを確認するには、次のコマンドを入力します。To determine which application is using port 3389 (or the assigned RDP port), enter the following command:

    cmd /c 'tasklist /svc | find "<pid listening on 3389>"'  
    

    tasklist コマンドでは、特定のプロセスの詳細が報告されます。

  5. ポートに関連付けられている PID 番号 (netstat の出力からの情報) のエントリを探します。Look for an entry for the PID number that is associated with the port (from the netstat output). その PID に関連付けられているサービスまたはプロセスが、右側の列に表示されます。The services or processes that are associated with that PID appear on the right column.

  6. リモート デスクトップ サービス (TermServ.exe) 以外のアプリケーションまたはサービスによってそのポートが使われている場合は、次のいずれかの方法を使って競合を解決できます。If an application or service other than Remote Desktop Services (TermServ.exe) is using the port, you can resolve the conflict by using one of the following methods:

    • 他のアプリケーションまたはサービスを、別のポートを使うように構成します (推奨)。Configure the other application or service to use a different port (recommended).
    • 他のアプリケーションまたはサービスをアンインストールします。Uninstall the other application or service.
    • 別のポートを使うように RDP を構成した後、リモート デスクトップ サービスのサービスを再起動します (推奨されません)。Configure RDP to use a different port, and then restart the Remote Desktop Services service (not recommended).

ファイアウォールで RDP ポートがブロックされているかどうかを確認するCheck whether a firewall is blocking the RDP port

ポート 3389 を使って、影響を受けるコンピューターに到達できるかどうかをテストするには、psping ツールを使います。Use the psping tool to test whether you can reach the affected computer by using port 3389.

  1. 影響を受けていない別のコンピューターにアクセスし、https://live.sysinternals.com/psping.exe から psping をダウンロードします。Go to a different computer that isn't affected and download psping from https://live.sysinternals.com/psping.exe.

  2. 管理者としてコマンド プロンプト ウィンドウを開き、psping をインストールしたディレクトリに移動して、次のコマンドを入力します。Open a command prompt window as an administrator, change to the directory in which you installed psping, and then enter the following command:

    psping -accepteula <computer IP>:3389  
    
  3. psping コマンドの出力で次のような結果を確認します。Check the output of the psping command for results such as the following:

    • <computer IP> に接続しています:リモート コンピューターは到達可能です。Connecting to <computer IP>: The remote computer is reachable.
    • (0% 損失) : すべての接続試行が成功しました。(0% loss): All attempts to connect succeeded.
    • The remote computer refused the network connection (リモート コンピューターによりネットワーク接続が拒否されました) : リモート コンピューターは到達不可能です。The remote computer refused the network connection: The remote computer is not reachable.
    • (100% 損失) : すべての接続試行が失敗しました。(100% loss): All attempts to connect failed.
  4. 複数のコンピューターで psping を実行し、影響を受けるコンピューターに接続できるかどうかをテストします。Run psping on multiple computers to test their ability to connect to the affected computer.

  5. 影響を受けるコンピューターによって、他のすべてのコンピューターからの接続がブロックされるか、他のコンピューターの一部がブロックされるか、または他のコンピューターの 1 つだけかに注意してください。Note whether the affected computer blocks connections from all other computers, some other computers, or only one other computer.

  6. 推奨される次の手順は次のとおりです。Recommended next steps:

    • ネットワーク管理者と協力して、影響を受けるコンピューターへの RDP トラフィックがネットワークで許可されることを確認します。Engage your network administrators to verify that the network allows RDP traffic to the affected computer.
    • ソース コンピューターと影響を受けるコンピューターの間にあるすべてのファイアウォール (影響を受けるコンピューター上の Windows ファイアウォールを含む) の構成を調べて、ファイアウォールによって RDP ポートがブロックされているかどうかを確認します。Investigate the configurations of any firewalls between the source computers and the affected computer (including Windows Firewall on the affected computer) to determine whether a firewall is blocking the RDP port.