一般的なリモート デスクトップ接続のトラブルシューティング
仮想エージェントを試す - RD セッションの接続に関する一般的な問題をすばやく特定して修正するのに役立ちます
リモート デスクトップ クライアントがリモート デスクトップに接続できないが、原因の特定に役立つメッセージやその他の症状が表示されない場合は、次の手順を使用します。
RDP プロトコルの状態を確認する
ローカル コンピューターの RDP プロトコルの状態を確認する
ローカル コンピューターで RDP プロトコルの状態をチェックして変更するには、「リモート デスクトップを有効にする方法」を参照してください。
注:
リモート デスクトップ オプションを使用できない場合は、「グループ ポリシー オブジェクトが RDP をブロックしているかどうかを確認する」を参照してください。
リモート コンピューター上の RDP プロトコルの状態を確認する
重要
このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護のために、レジストリを変更する前にレジストリをバックアップして、問題が発生した場合にレジストリを復元できるようにします。 レジストリをバックアップおよび復元する方法の詳細については、「Windows でレジストリをバックアップおよび復元する方法」を参照してください。
リモート コンピューターで RDP プロトコルの状態をチェックして変更するには、ネットワーク レジストリ接続を使用します。
まず、[ スタート] メニューに移動し、[ 実行] を選択します。 表示されるテキスト ボックス に「regedt32」と入力します。
[レジストリ] エディターで [ファイル] を選択し、[ネットワーク レジストリの接続] を選択します。
[ コンピューターの選択 ] ダイアログ ボックスで、リモート コンピューターの名前を入力し、[ 名前の確認] を選択し、[OK] を選択 します。
に移動し、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
に移動しますHKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
。- fDenyTSConnections キーの値が 0 の場合、RDP が有効になります。
- fDenyTSConnections キーの値が 1 の場合、RDP は無効になります。
RDP を有効にするには、 fDenyTSConnections の値を 1 から 0 に変更します。
グループ ポリシー オブジェクト (GPO) がローカル コンピューター上の RDP をブロックしているかどうかを確認する
ユーザー インターフェイスで RDP を有効にできない場合、または変更後に fDenyTSConnections の値が 1 に戻る場合、GPO によってコンピューター レベルの設定がオーバーライドされる可能性があります。
ローカル コンピューターでグループ ポリシーの構成をチェックするには、管理者としてコマンド プロンプト ウィンドウを開き、次のコマンドを入力します。
gpresult /H c:\gpresult.html
このコマンドが完了したら、 gpresult.htmlを開きます。 [コンピューターの構成]\[管理用テンプレート]\[Windows コンポーネント]\[リモート デスクトップ サービス]\[リモート デスクトップ セッション ホスト]\Connectionsで、[リモート デスクトップ サービスを使用してユーザーがリモートに接続できるようにする] ポリシーを見つけます。
このポリシーの設定が [有効] の場合、グループ ポリシーは RDP 接続をブロックしていません。
このポリシーの設定が [無効] の場合は、[成功した GPO] をチェックします。 これは、RDP 接続をブロックしている GPO です。
GPO がリモート コンピューターの RDP をブロックしているかどうかを確認する
リモート コンピューターでグループ ポリシー構成をチェックするには、コマンドはローカル コンピューターの場合とほぼ同じです。
gpresult /S <computer name> /H c:\gpresult-<computer name>.html
このコマンドによって生成されるファイル (gpresult-computer< name>.html) は、ローカル コンピューターのバージョン (gpresult.html) と同じ情報形式を使用します。
ブロックしている GPO の変更
これらの設定は、グループ ポリシー オブジェクト エディター (GPE) と グループ ポリシー 管理コンソール (GPM) で変更できます。 グループ ポリシーの使用方法の詳細については、「高度なグループ ポリシー管理」を参照してください。
ブロッキング ポリシーを変更するには、次のいずれかの方法を使用します。
- GPE で、適切なレベルの GPO (ローカルやドメインなど) にアクセスし、[コンピューターの構成>] [管理用テンプレート>] [Windows コンポーネント>] [リモート デスクトップ サービス] [リモート デスクトップ セッション ホスト>Connections>リモート デスクトップ サービスを使用してリモート接続するユーザーを許可する] に移動します。>
- ポリシーを [有効] または [ 未構成] に設定します。
- 影響を受けるコンピューターで、管理者としてコマンド プロンプト ウィンドウを開き、コマンドを
gpupdate /force
実行します。
- GPM で、影響を受けるコンピューターにブロック ポリシーが適用されている組織単位 (OU) に移動し、OU からポリシーを削除します。
RDP サービスの状態を確認する
ローカル (クライアント) コンピューターとリモート (ターゲット) コンピューターの両方で、次のサービスが実行されている必要があります。
- リモート デスクトップ サービス (TermService)
- リモート デスクトップ サービス UserMode ポート リダイレクター (UmRdpService)
サービス MMC スナップインを使用して、ローカルまたはリモートでサービスを管理できます。 PowerShell を使用して、サービスをローカルまたはリモートで管理することもできます (リモート コンピューターがリモート PowerShell コマンドレットを受け入れるように構成されている場合)。
いずれかのコンピューターで、一方または両方のサービスが実行されていない場合は、それらを起動します。
注:
リモート デスクトップ サービスを開始する場合は、[ はい ] を選択して、リモート デスクトップ サービス UserMode ポート リダイレクター サービスを自動的に再起動します。
RDP リスナーが機能していることを確認する
重要
このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護のために、レジストリを変更する前にレジストリをバックアップして、問題が発生した場合にレジストリを復元できるようにします。 レジストリをバックアップおよび復元する方法の詳細については、「Windows でレジストリをバックアップおよび復元する方法」を参照してください。
RDP リスナーの状態を確認する
この手順では、管理アクセス許可を持つ PowerShell インスタンスを使用します。 ローカル コンピューターの場合は、管理アクセス許可を持つコマンド プロンプトを使用することもできます。 ただし、同じコマンドレットがローカルとリモートの両方で機能するため、この手順では PowerShell を使用します。
リモート コンピューターに接続するには、次のコマンドレットを実行します。
Enter-PSSession -ComputerName <computer name>
qwinsta
を入力します。リストに の状態
Listen
が含まれているrdp-tcp
場合、RDP リスナーは動作しています。 [ RDP リスナー ポートの確認] に進みます。 それ以外の場合は、手順 4. に進みます。稼働中のコンピューターから RDP リスナー構成をエクスポートします。
影響を受けるコンピューターと同じバージョンのオペレーティング システムを持つコンピューターにサインインし、そのコンピューターのレジストリにアクセスします (たとえば、レジストリ エディターを使用)。
次のレジストリ エントリに移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
エントリをファイルに
.reg
エクスポートします。 たとえば、レジストリ エディターでエントリを右クリックし、[エクスポート] を選択し、エクスポートした設定のファイル名を入力します。エクスポートした
.reg
ファイルを影響を受けるコンピューターにコピーします。
RDP リスナー構成をインポートするには、影響を受けるコンピューターに対する管理アクセス許可を持つ PowerShell ウィンドウを開きます (または、PowerShell ウィンドウを開き、影響を受けるコンピューターにリモートで接続します)。
既存のレジストリ エントリをバックアップするには、次のコマンドレットを入力します。
cmd /c 'reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp" C:\Rdp-tcp-backup.reg'
既存のレジストリ エントリを削除するには、次のコマンドレットを入力します。
Remove-Item -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp' -Recurse -Force
新しいレジストリ エントリをインポートし、サービスを再起動するには、次のコマンドレットを入力します。
cmd /c 'regedit /s c:\<filename>.reg' Restart-Service TermService -Force
filename> をエクスポートした
.reg
ファイルの名前に置き換えます<。
リモート デスクトップ接続をもう一度試して、構成をテストします。 それでも接続できない場合は、影響を受けるコンピューターを再起動します。
それでも接続できない場合は、RDP 自己署名証明書の状態をチェックします。
RDP 自己署名証明書の状態を確認する
- それでも接続できない場合は、証明書 MMC スナップインを開きます。 管理する証明書ストアを選択するように求められたら、[ コンピューター アカウント] を選択し、影響を受けるコンピューターを選択します。
- [リモート デスクトップ] の [証明書] フォルダーで、RDP 自己署名証明書を削除します。
- 影響を受けるコンピューターで、リモート デスクトップ サービス サービスを再起動します。
- [証明書] スナップインを更新します。
- RDP 自己署名証明書が再作成されていない場合は、MachineKeys フォルダーのアクセス許可をチェックします。
MachineKeys フォルダーのアクセス許可を確認する
- 影響を受けるコンピューターでエクスプローラーを開き、C:\ProgramData\Microsoft\Crypto\RSA\に移動します。
- [MachineKeys] を右クリックし、[プロパティ>] [セキュリティ>の詳細設定] を選択します。
- 次のアクセス許可が構成されていることを確認します。
- Builtin\Administrators: フル コントロール
- すべてのユーザー: 読み取り、 書き込み
RDP リスナー ポートを確認する
ローカル (クライアント) コンピューターとリモート (ターゲット) コンピューターの両方で、RDP リスナーがポート 3389 でリッスンしている必要があります。 このポートを使用するアプリケーションは他にありません。
重要
このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護のために、レジストリを変更する前にレジストリをバックアップして、問題が発生した場合にレジストリを復元できるようにします。 レジストリをバックアップおよび復元する方法の詳細については、「Windows でレジストリをバックアップおよび復元する方法」を参照してください。
RDP ポートをチェックまたは変更するには、レジストリ エディターを使用します。
[スタート] メニューに移動し、[ 実行] を選択し、表示されるテキスト ボックスに 「regedt32 」と入力します。
- リモート コンピューターに接続するには、[ ファイル] を選択し、[ ネットワーク レジストリの接続] を選択します。
- [ コンピューターの選択 ] ダイアログ ボックスで、リモート コンピューターの名前を入力し、[ 名前の確認] を選択し、[OK] を選択 します。
レジストリを開き、 に移動します
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\<listener>
。PortNumber に 3389 以外の値がある場合は、3389 に変更します。
重要
リモート デスクトップ サービスは、別のポートを使用して操作できます。 ただし、これを行うことをお勧めしません。 この記事では、その種類の構成のトラブルシューティング方法については説明しません。
ポート番号を変更した後、リモート デスクトップ サービス サービスを再起動します。
別のアプリケーションが同じポートを使用していないことを確認する
この手順では、管理アクセス許可を持つ PowerShell インスタンスを使用します。 ローカル コンピューターの場合は、管理アクセス許可を持つコマンド プロンプトを使用することもできます。 ただし、同じコマンドレットがローカルとリモートで動作するため、この手順では PowerShell を使用します。
PowerShell のウィンドウを開きます。 リモート コンピューターに接続するには、「」と入力します
Enter-PSSession -ComputerName <computer name>
。次のコマンドを入力します:
cmd /c 'netstat -ano | find "3389"'
[リッスン中] 状態の TCP ポート 3389 (または割り当てられた RDP ポート) のエントリを探します。
注:
そのポートを使用するプロセスまたはサービスのプロセス識別子 (PID) が PID 列の下に表示されます。
ポート 3389 (または割り当てられた RDP ポート) を使用しているアプリケーションを確認するには、次のコマンドを入力します。
cmd /c 'tasklist /svc | find "<pid listening on 3389>"'
(出力から) ポートに関連付けられている PID 番号のエントリを
netstat
探します。 その PID に関連付けられているサービスまたはプロセスが右側の列に表示されます。リモート デスクトップ サービス (TermServ.exe) 以外のアプリケーションまたはサービスがポートを使用している場合は、次のいずれかの方法を使用して競合を解決できます。
- 別のポートを使用するように他のアプリケーションまたはサービスを構成します (推奨)。
- 他のアプリケーションまたはサービスをアンインストールします。
- 別のポートを使用するように RDP を構成し、リモート デスクトップ サービス サービスを再起動します (推奨されません)。
ファイアウォールが RDP ポートをブロックしているかどうかを確認する
このツールを psping
使用して、ポート 3389 を使用して影響を受けるコンピューターに到達できるかどうかをテストします。
影響を受けない別のコンピューターに移動し、 psping をダウンロードします。
管理者としてコマンド プロンプト ウィンドウを開き、インストールした
psping
ディレクトリに変更し、次のコマンドを入力します。psping -accepteula <computer IP>:3389
コマンドの出力で、
psping
次のような結果が得られます。Connecting to \<computer IP\>
: リモート コンピューターに到達可能です。(0% loss)
: 接続の試行はすべて成功しました。The remote computer refused the network connection
: リモート コンピューターに到達できません。(100% loss)
: 接続の試行がすべて失敗しました。
複数のコンピューターでを実行
psping
して、影響を受けるコンピューターに接続する機能をテストします。影響を受けるコンピューターが、他のすべてのコンピューター、他のコンピューター、または他の 1 台のコンピューターからの接続をブロックするかどうかに注意してください。
推奨される次の手順:
- ネットワーク管理者Engage、ネットワークで影響を受けるコンピューターへの RDP トラフィックが許可されていることを確認します。
- ソース コンピューターと影響を受けるコンピューター (影響を受けるコンピューターの Windows ファイアウォールを含む) の間のファイアウォールの構成を調査して、ファイアウォールが RDP ポートをブロックしているかどうかを判断します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示