RDP のトラブルシューティング

状況により、RDP を介して Google Compute Engine の Windows インスタンスに接続できないことがあります。この問題はネットワーク エラーや構成エラーが原因で起こります。このページでは RDP に関する一般的な問題をトラブルシューティングして解決するヒントと方法を紹介します。

インスタンスがオンラインであり使用準備ができていることを確認する

Windows インスタンスの状況はシリアル コンソールを使用して確認できます。インスタンスの使用準備ができているか確認するには、読み取り専用またはインタラクティブ シリアル コンソールに接続します。

  • シリアル コンソール 1(読み取り専用)

    1. Cloud Console の [VM インスタンス] ページから Windows インスタンスを開きます。
    2. [シリアル コンソールに接続] の横にあるプルダウン矢印をクリックして [シリアルポート 1] を選択するか、以下の gcloud SDK コマンドを実行します。

      gcloud compute connect-to-serial-port [INSTANCE_NAME] --port 1
      
    3. インスタンスが起動されていて、起動スクリプトの実行が試行されたことを確認します。

      Booting from Hard Disk 0...
      GCEWindowsAgent: GCE Agent Started (version x.x.x@x)
      GCEMetadataScripts: No startup scripts to run.
      
  • シリアル コンソール 2(対話型)

    1. [VM インスタンス] ページか以下の gcloud SDK コマンドを使用して、シリアル コンソールでインタラクティブ アクセスを有効にします。

      gcloud compute instances add-metadata [INSTANCE_NAME]^
      --metadata=serial-port-enable=1
      
    2. Cloud Console の [VM インスタンス] ページから Windows インスタンスを開きます。

    3. [シリアル コンソールに接続] の横にあるプルダウン矢印をクリックして [シリアルポート 2] を選択します。以下の gcloud SDK コマンドを実行してもかまいません。

      gcloud compute connect-to-serial-port [INSTANCE_NAME] --port 2
      
    4. cmd プロセスが使用可能であることを確認します。

      使用可能な SAC cmd コマンドのスクリーンショット

VPC ファイアウォール ルールを確認する

Google Compute Engine は自動的に、RDP トラフィックを許可するファイアウォール ルールを設定して新規プロジェクトをプロビジョニングします。既存のプロジェクトがある場合や構成を変更した場合は、RDP を許可するデフォルトのファイアウォール ルールが設定されていない可能性があります。ルールの設定が、対象のインスタンスを含むネットワークに RDP トラフィックを接続できるようになっていることを確認してください。

プロジェクトに default-allow-rdp ファイアウォール ルールが存在するかどうかを確認するには、[ファイアウォール ルール] ページを確認するか、次の gcloud SDK コマンドを実行します。

gcloud compute firewall-rules list

ルールが存在せず、新たに作成するには、以下のコマンドを使用します。

gcloud compute firewall-rules create allow-rdp --allow tcp:[PORT_NUMBER]

Windows インスタンスのパスワードを確認する

Google Compute Engine の各 Windows インスタンスのローカル パスワードがまだドメインとカスタム イメージで設定されていない場合は、パスワードの設定が必要です。gcloud コマンドライン ツールか GCP Console を使用して Windows SAC に接続し、正しいパスワードが設定されていることを確認してください。

接続に問題がある場合は、Windows インスタンスでパスワードの作成またはリセットを試してみてください。

外部 IP アドレスを検証する

対象のインスタンスへの接続に正しい外部 IP アドレスを使用していることを確認してください。インスタンスの IP を表示するには、[VM インスタンス] ページを使用するか以下の gcloud SDK コマンドを使用します。

gcloud compute instances list

OS の構成を確認する

インスタンスの環境と構成が正しい場合は、インスタンスのオペレーティング システムが正しく構成されていない可能性があります。インスタンスに接続して問題をトラブルシューティングするには、インタラクティブ シリアル コンソールを使用します。

用意されているコマンドライン メソッドのいずれかを使用してインスタンスに接続し、以下の各コマンドを実行してインスタンスが接続を受け入れていることを確認します。

  1. 「リモート デスクトップ サービス」が実行されていることを確認する場合:

    • コマンド: net start | find "Remote Desktop Services"
    • 問題がない場合: Remote Desktop Service
    • 問題がある場合: (リモート デスクトップ サービスが出力に含まれていない)
    • 解決策: net start "Remote Desktop Services"
  2. リモート接続が有効になっているか確認する場合:

    • コマンド: reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
    • 問題がない場合: fDenyTSConnections REG_DWORD 0x0
    • 問題がある場合: fDenyTSConnections REG_DWORD 0x1
    • 解決策: reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /f /v fDenyTSConnections /t REG_DWORD /d 0
  3. Windows ファイアウォールでリモート デスクトップ接続が有効になっていることを確認する場合:

    • コマンド: netsh advfirewall firewall show rule name="Remote Desktop -User Mode (TCP-In)"
    • 問題がない場合: Enabled:Yes, Direction: In, Profiles: Public, Grouping: Remote Desktop, LocalIP: Any, RemoteIP: Any, Protocol:TCP, LocalPort: 3389, RemotePort: Any, Edge traversal: No, Action: Allow

    • 問題がある場合: (enabled = No といった予期しない結果)

    • 解決策: netsh firewall set service remotedesktop enable

  4. リモート インスタンスで RDP 接続用に構成されたポート番号を確認する場合:

    • コマンド: reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber
    • 問題がない場合: PortNumber REG_DWORD [PORT NUMBER]
    • 問題がある場合: (予期しないポート番号)
    • 解決策: reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /f /v PortNumber /t REG_DWORD /d [PORT NUMBER]

  5. 接続されたユーザー アカウントにリモート接続の権限があることを確認します。

    • コマンド: net localgroup "Remote Desktop Users"
    • 問題がない場合: (結果リストにターゲットのローカル / ドメイン ユーザー名がある)
    • 問題がある場合: (ターゲットのローカル / ドメイン ユーザー名がない)
    • 解決策: net localgroup "Remote Desktop Users" /add [DOMAIN\USERNAME]

  6. MTU サイズが 1460 を超えていないか確認する場合:

    • コマンド: netsh interface ipv4 show subinterfaces
    • 問題がない場合: MTU 1460, MediaSenseState 1, Bytes In 915643107, Bytes Out 681487030, Interface: Ethernet

    • 問題がある場合: (MTU が 1460 より大きい値に設定されている)

    • 解決策: netsh interface ipv4 set subinterface Ethernet mtu=1460

  7. 使用しているウィルス対策やエンドポイント保護のクライアント設定が、構成したポート番号とサービスに対応していることを確認します。

ディスクを新しいインスタンスで使用する

さまざまなトラブルシューティング手順を行っても接続の問題が解決しない場合、既存のインスタンスを削除して永続ディスクを保存する方法も可能です。そのディスクを新しいインスタンスにマウントし直してから再度トラブルシューティングを行うか、単純にそのディスクから既存のデータを復元します。

gcloud compute instances delete [INSTANCE_NAME] --keep-disks=boot
gcloud compute instances create [NEW_INSTANCE_NAME] --disk name=[DISK_NAME]^
boot=yes auto-delete=no
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Compute Engine ドキュメント