Azure VM での RDP 一般エラーのトラブルシューティング
この記事では、Azure において Windows 仮想マシン (VM) にリモート デスクトップ プロトコル (RDP) を接続する際に発生する一般エラーについて説明します。
現象
Azure の Window VM に RDP 接続を行うとき、次の一般エラー メッセージを受け取る場合があります。
[Remote Desktop can't connect to the remote computer for one of these reasons:]\(リモート デスクトップが次のいずれかの理由のためにリモート コンピューターに接続できません。\)
[Remote access to the server is not enabled]\(サーバーへのリモートアクセスが無効です\)
[The remote Computer is turned off]\(リモート コンピューターの電源が入っていません\)
[The remote computer is not available on the network]\(リモート コンピューターがネットワーク上にありません\)
[Make sure the remote computer is turned on and connected to the network, and that remote access is enabled.]\(リモート コンピューターの電源が入っており、ネットワークに接続されていること、リモート アクセスが有効なことを確認してください。\)
原因
この問題は以下の原因のために発生します。
原因 1
RDP コンポーネントが以下で無効です。
- コンポーネント レベル
- リスナー レベル
- ターミナル サーバー
- リモート デスクトップ セッション ホスト ロール
原因 2
リモート デスクトップ サービス (TermService) が実行されていません。
原因 3
RDP リスナーの構成が正しくありません。
ソリューション
これらの手順を実行する前に、バックアップとして、影響を受ける VM の OS ディスクのスナップショットを取得します。 この問題を解決するにはシリアル コントロールを使用するか、VM をオフラインで修復します。
シリアル コンソール
手順 1: シリアル コンソールで CMD インスタンスを開く
[サポートとトラブルシューティング]>[Serial console (Preview)]\(シリアル コンソール (プレビュー)) を選択して [シリアル コンソール] にアクセスします。 VM で機能が有効な場合、VM を正常に接続できます。
CMD インスタンス用の新しいチャネルを作成します。 CMD と入力してチャネルを開始し、チャネル名を取得します。
CMD インスタンスを実行するチャネル (この場合ではチャネル 1) に切り替えます。
ch -si 1
手順 2: RDP レジストリ キーの値を確認する
グループ ポリシーによって RDP が無効になっていることを確認します。
REM Get the group policy setting reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fDenyTSConnections
RDP が無効であることがグループ ポリシーによって示されている場合 (fDenyTSConnections 値が 0x1)、次のコマンドを実行して TermService サービスを有効にします。 レジストリ キーが見つからない場合、RDP を無効にするよう構成されているグループ ポリシーはありません。 次の手順に進むことができます。
REM update the fDenyTSConnections value to enable TermService service reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fDenyTSConnections /t REG_DWORD /d 0 /f
注:
この手順では、TermService サービスを一時的に有効にします。 この変更は、グループ ポリシー設定が更新されるときにリセットされます。 この問題を解決するには、TermService サービスがローカル グループ ポリシーまたはドメイン グループ ポリシーによって無効にされているかどうかを確認し、それに応じてポリシー設定を更新する必要があります。
現在のリモート接続の構成を確認します。
REM Get the local remote connection setting reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
このコマンドによって 0x1 が返される場合、VM ではリモート接続が許可されていません。 その場合、次のコマンドを使用してリモート接続を許可します。
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
ターミナル サーバーの現在の構成を確認します。
REM Get the local remote connection setting reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v TSEnabled
このコマンドで 0 が返される場合、ターミナル サーバーが無効です。 そのときは、次のようにターミナル サーバーを有効にします。
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v TSEnabled /t REG_DWORD /d 1 /f
ターミナル サーバー モジュールは、サーバーがターミナル サーバー ファーム (RDS または Citrix) にある場合、ドレイン モードに設定されます。 ターミナル サーバー モジュールの現在のモードを確認します。
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v TSServerDrainMode
コマンドで 1 が返される場合、ターミナル サーバー モジュールはドレイン モードに設定されています。 そのときは、次のようにモジュールを動作モードに設定します。
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v TSServerDrainMode /t REG_DWORD /d 0 /f
ターミナル サーバーに接続できるかどうかを確認します。
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v TSUserEnabled
コマンドで 1 が返される場合、ターミナル サーバーに接続することはできません。 そのときは、次のように接続を有効にします。
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v TSUserEnabled /t REG_DWORD /d 0 /f
RDP リスナーの現在の構成を確認します。
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp" /v fEnableWinStation
このコマンドで 0 が返される場合、RDP リスナーが無効です。 そのときは、次のようにリスナーを有効にします。
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp" /v fEnableWinStation /t REG_DWORD /d 1 /f
RDP リスナーに接続できるかどうかを確認します。
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp" /v fLogonDisabled
コマンドで 1 が返される場合、RDP リスナーに接続することはできません。 そのときは、次のように接続を有効にします。
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp" /v fLogonDisabled /t REG_DWORD /d 0 /f
VM を再起動します。
「
exit
」と入力して CMD インスタンスを終了し、Enter を 2 回押します。「
restart
」と入力して VM を再起動してから、VM に接続します。
まだ問題が発生する場合には手順 2. に進みます。
手順 2: リモート デスクトップ サービスを有効にする
詳しくは、「Azure VM でリモート デスクトップ サービスが起動しない」をご覧ください。
手順 3: RDP リスナーをリセットする
詳しくは、「Remote Desktop disconnects frequently in Azure VM」(Azure VM でリモート デスクトップの接続が頻繁に切れる) をご覧ください。
オフラインでの修復
手順 1: リモート デスクトップをオンにする
復旧 VM へのリモート デスクトップ接続を開始します。
ディスクが [ディスクの管理] コンソールで [オンライン] になっていることを確認します。 接続された OS ディスクに割り当てられたドライブ文字をメモします。
復旧 VM へのリモート デスクトップ接続を開始します。
管理者特権のコマンド プロンプト セッション ( [管理者として実行] ) を開きます。 以下のスクリプトを実行します。 このスクリプトでは、接続されている OS ディスクに割り当てられているドライブ文字が F であると想定しています。このドライブ文字を実際の VM の適切な値に置き換えてください。
reg load HKLM\BROKENSYSTEM F:\windows\system32\config\SYSTEM reg load HKLM\BROKENSOFTWARE F:\windows\system32\config\SOFTWARE REM Ensure that Terminal Server is enabled reg add "HKLM\BROKENSYSTEM\ControlSet001\control\Terminal Server" /v TSEnabled /t REG_DWORD /d 1 /f reg add "HKLM\BROKENSYSTEM\ControlSet002\control\Terminal Server" /v TSEnabled /t REG_DWORD /d 1 /f REM Ensure Terminal Service is not set to Drain mode reg add "HKLM\BROKENSYSTEM\ControlSet001\control\Terminal Server" /v TSServerDrainMode /t REG_DWORD /d 0 /f reg add "HKLM\BROKENSYSTEM\ControlSet002\control\Terminal Server" /v TSServerDrainMode /t REG_DWORD /d 0 /f REM Ensure Terminal Service has logon enabled reg add "HKLM\BROKENSYSTEM\ControlSet001\control\Terminal Server" /v TSUserEnabled /t REG_DWORD /d 0 /f reg add "HKLM\BROKENSYSTEM\ControlSet002\control\Terminal Server" /v TSUserEnabled /t REG_DWORD /d 0 /f REM Ensure the RDP Listener is not disabled reg add "HKLM\BROKENSYSTEM\ControlSet001\control\Terminal Server\Winstations\RDP-Tcp" /v fEnableWinStation /t REG_DWORD /d 1 /f reg add "HKLM\BROKENSYSTEM\ControlSet002\control\Terminal Server\Winstations\RDP-Tcp" /v fEnableWinStation /t REG_DWORD /d 1 /f REM Ensure the RDP Listener accepts logons reg add "HKLM\BROKENSYSTEM\ControlSet001\control\Terminal Server\Winstations\RDP-Tcp" /v fLogonDisabled /t REG_DWORD /d 0 /f reg add "HKLM\BROKENSYSTEM\ControlSet002\control\Terminal Server\Winstations\RDP-Tcp" /v fLogonDisabled /t REG_DWORD /d 0 /f REM RDP component is enabled reg add "HKLM\BROKENSYSTEM\ControlSet001\control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f reg add "HKLM\BROKENSYSTEM\ControlSet002\control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f reg add "HKLM\BROKENSOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fDenyTSConnections /t REG_DWORD /d 0 /f reg unload HKLM\BROKENSYSTEM reg unload HKLM\BROKENSOFTWARE
VM がドメインに参加している場合は、次のレジストリ キーを調べて、RDP を無効にするグループ ポリシーがあるかどうか確認します。
HKLM\BROKENSOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\fDenyTSConnectionS
このキーが 1 に設定されている場合は、RDP がポリシーによって無効化されていることを意味します。 GPO ポリシーを介してリモート デスクトップを有効にするには、ドメイン コントローラーから次のポリシーを変更します。
Computer Configuration\Policies\Administrative Templates:
Policy definitions\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Connections\Allow users to connect remotely by using Remote Desktop Services
復旧 VM からディスクをデタッチします。
まだ問題が発生する場合には手順 2. に進みます。
手順 2: リモート デスクトップ サービスを有効にする
詳しくは、「Azure VM でリモート デスクトップ サービスが起動しない」をご覧ください。
手順 3: RDP リスナーをリセットする
詳しくは、「Remote Desktop disconnects frequently in Azure VM」(Azure VM でリモート デスクトップの接続が頻繁に切れる) をご覧ください。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示