次の方法で共有


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:]\(リモート デスクトップが次のいずれかの理由のためにリモート コンピューターに接続できません。\)

  1. [Remote access to the server is not enabled]\(サーバーへのリモートアクセスが無効です\)

  2. [The remote Computer is turned off]\(リモート コンピューターの電源が入っていません\)

  3. [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 インスタンスを開く

  1. [サポートとトラブルシューティング]>[Serial console (Preview)]\(シリアル コンソール (プレビュー)) を選択して [シリアル コンソール] にアクセスします。 VM で機能が有効な場合、VM を正常に接続できます。

  2. CMD インスタンス用の新しいチャネルを作成します。 CMD と入力してチャネルを開始し、チャネル名を取得します。

  3. CMD インスタンスを実行するチャネル (この場合ではチャネル 1) に切り替えます。

    ch -si 1
    

手順 2: RDP レジストリ キーの値を確認する

  1. グループ ポリシーによって 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 サービスがローカル グループ ポリシーまたはドメイン グループ ポリシーによって無効にされているかどうかを確認し、それに応じてポリシー設定を更新する必要があります。

  2. 現在のリモート接続の構成を確認します。

    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
    
  3. ターミナル サーバーの現在の構成を確認します。

    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
    
  4. ターミナル サーバー モジュールは、サーバーがターミナル サーバー ファーム (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
    
  5. ターミナル サーバーに接続できるかどうかを確認します。

    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
    
  6. 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
    
  7. 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
    
  8. VM を再起動します。

  9. exit」と入力して CMD インスタンスを終了し、Enter を 2 回押します。

  10. restart」と入力して VM を再起動してから、VM に接続します。

まだ問題が発生する場合には手順 2. に進みます。

手順 2: リモート デスクトップ サービスを有効にする

詳しくは、「Azure VM でリモート デスクトップ サービスが起動しない」をご覧ください。

手順 3: RDP リスナーをリセットする

詳しくは、「Remote Desktop disconnects frequently in Azure VM」(Azure VM でリモート デスクトップの接続が頻繁に切れる) をご覧ください。

オフラインでの修復

手順 1: リモート デスクトップをオンにする

  1. 復旧 VM に OS ディスクを接続します

  2. 復旧 VM へのリモート デスクトップ接続を開始します。

  3. ディスクが [ディスクの管理] コンソールで [オンライン] になっていることを確認します。 接続された OS ディスクに割り当てられたドライブ文字をメモします。

  4. 復旧 VM へのリモート デスクトップ接続を開始します。

  5. 管理者特権のコマンド プロンプト セッション ( [管理者として実行] ) を開きます。 以下のスクリプトを実行します。 このスクリプトでは、接続されている 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 
    
  6. 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

  7. 復旧 VM からディスクをデタッチします。

  8. そのディスクから新しい VM を作成します

まだ問題が発生する場合には手順 2. に進みます。

手順 2: リモート デスクトップ サービスを有効にする

詳しくは、「Azure VM でリモート デスクトップ サービスが起動しない」をご覧ください。

手順 3: RDP リスナーをリセットする

詳しくは、「Remote Desktop disconnects frequently in Azure VM」(Azure VM でリモート デスクトップの接続が頻繁に切れる) をご覧ください。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。