Windows インスタンスへの接続に関するトラブルシューティング - Amazon Elastic Compute Cloud

Windows インスタンスへの接続に関するトラブルシューティング

以下では、Windows インスタンスへの接続時に発生する可能性のある問題と表示されるエラーメッセージを示します。

リモートデスクトップからリモートコンピュータに接続できません

インスタンスへの接続関連の問題を解決するには、以下を実行します。

  • 正しいパブリック DNS ホスト名を使用していることを確認します (Amazon EC2 コンソールでは、インスタンスを選択し、詳細ペインの [Public DNS (IPv4) (パブリック DNS (IPv4))] を確認します)。インスタンスが VPC 内にあり、パブリック DNS 名が表示されない場合は、DNS ホスト名を有効にする必要があります。詳細については、Amazon VPC ユーザーガイドの「VPC での DNS の使用」を参照してください。

  • インスタンスにパブリック IPv4 アドレスがあることを確認します。そうでない場合は、Elastic IP アドレスをインスタンスに関連付けることができます。詳細については、「Elastic IP アドレス」を参照してください。

  • IPv6 アドレスを使用してインスタンスに接続するには、ローカルコンピュータに IPv6 があり、IPv6 アドレスを使用するように設定されていることを確認します。Windows Server 2008 SP2 AMI 以前からインスタンスを起動した場合は、インスタンスに割り当てられている IPv6 アドレスを自動的に認識するようにインスタンスは設定されていません。詳細については、「インスタンスでの IPv6 の設定」 (Amazon VPC ユーザーガイド) を参照してください。

  • セキュリティグループに、RDP アクセスを許可するルールがあることを確認します。詳細については、「セキュリティグループの作成」を参照してください。

  • パスワードをコピーしたがエラー Your credentials did not work が発生した場合、プロンプトが表示されたら手動で入力してください。パスワードをコピーしたときに、1 文字欠けていたり、余分な空白文字が含まれている可能性があります。

  • インスタンスのステータスチェックが成功していることを確認します。詳細については、「インスタンスのステータスチェック」および「ステータスチェックに失敗したインスタンスのトラブルシューティング」(Linux インスタンス用 Amazon EC2 ユーザーガイド) を参照してください。

  • サブネットのルートテーブルに、VPC 外へのすべてのトラフィックを VPC のインターネットゲートウェイに送信するルートがあることを確認します。詳細については、Amazon VPC ユーザーガイド の「カスタムルートテーブルを作成する」 (インターネットゲートウェイ) を参照してください。

  • Windows ファイアウォール、または他のファイアウォールのソフトウェアによって、インスタンスへの RDP トラフィックがブロックされていないことを確認します。Windows ファイアウォールを無効にし、セキュリティグループのルールを使用してインスタンスへのアクセスを制御することをお勧めします。AWSSupport-TroubleshootRDP を使用して disable the Windows Firewall profiles using SSM Agent を行うことができます。AWS Systems Manager 用に設定されていない Windows インスタンスで Windows ファイアウォールを無効にするには、AWSSupport-ExecuteEC2Rescue を使用するか、以下の手動ステップを使用します。

  1. 影響のあるインスタンスを停止し、ルートボリュームをデタッチします。

  2. 影響のあるインスタンスと同じアベイラビリティーゾーンで一時インスタンスを起動します。

    警告

    一時インスタンスが元のインスタンスと同じ AMI に基づいている場合、追加の手順を完了する必要があります。この手順を実行しない場合、ディスク署名の競合によって、ルートボリュームを復元した後、元のインスタンスを起動できなくなります。または、一時インスタンスとして別の AMI を選択します。例えば、元のインスタンスが Windows Server 2008 R2 用の AWS Windows AMI を使用している場合、Windows Server 2012 用の AWS Windows AMI を使用して一時インスタンスを起動します。

  3. 影響のあるインスタンスから一時インスタンスにルートボリュームをアタッチします。一時インスタンスに接続し、[Disk Management] ユーティリティを開いて、ドライブをオンラインにします。

  4. [Regedit] を開き、[HKEY_LOCAL_MACHINE] を選択します。[File] メニューの [Load Hive] を選択します。ドライブを選択して、ファイル [Windows\System32\config\SYSTEM] を開き、プロンプトが表示されたらキー名を指定します (任意の名前を使用できます)。

  5. ロードしたキーを選択し、ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy に移動します。xxxxProfile というフォームの名前のキーをそれぞれ選択し、EnableFirewall の値を 1 から 0 に変更します。再度キーを選択し、[File] メニューの [Unload Hive] を選択します。

  6. (オプション) 一時インスタンスが元のインスタンスと同じ AMI に基づいている場合、以下の手順を完了する必要があります。この手順を実行しない場合、ディスク署名の競合のためルートボリュームを復元した後、元のインスタンスを起動できなくなります。

    警告

    以下の手順では、レジストリエディタを使用して Windows レジストリを編集する方法を説明します。Windows レジストリに慣れていない場合や、レジストリエディターを使用して安全に変更する方法については、「レジストリを構成する」を参照してください。

    1. コマンドプロンプトを開き、regedit.exe と入力して、[Enter] を押します。

    2. [レジストリエディタ] で、コンテキストメニュー (右クリック) から [HKEY_LOCAL_MACHINE] を選択し、[検索] を選択します。

    3. [Windows Boot Manager] を入力して、[次を検索] を選択します。

    4. [11000001] というキーを選択します。このキーは、前の手順で検索したキーの兄弟です。

    5. 右のペインで [Element] を選択し、コンテキストメニュー (右クリック) から[変更] を選択します。

    6. データのオフセット 0x38 で 4 バイトのディスク署名を見つけます。バイトの順序を逆にしてディスク署名を作成し、書き留めます。例えば、次のデータで表されるディスク署名は E9EB3AA5 です。

      ... 0030 00 00 00 00 01 00 00 00 0038 A5 3A EB E9 00 00 00 00 0040 00 00 00 00 00 00 00 00 ...
    7. コマンドプロンプトウィンドウで、次のコマンドを実行して Microsoft DiskPart を起動します。

      diskpart
    8. 次の DiskPart コマンドを実行して、ボリュームを選択します。(ディスク番号が 1 であることを確認するには、ディスク管理ユーティリティを使用します。)

      DISKPART> select disk 1 Disk 1 is now the selected disk.
    9. 次の DiskPart コマンドを実行して、ディスク署名を取得します。

      DISKPART> uniqueid disk Disk ID: 0C764FA8
    10. 前の手順で表示されたディスク署名が、以前に書き留めた BCD のディスク署名と一致しない場合は、次の DiskPart コマンドを使用してディスク署名を変更して一致させます。

      DISKPART> uniqueid disk id=E9EB3AA5
  7. [ディスク管理] ユーティリティを使用して、ドライブをオフラインにします。

    注記

    一時インスタンスが影響を受けるインスタンスと同じ OS を実行している場合、ドライブは自動的にオフラインになるため、手動でオフラインにする必要はありません。

  8. ボリュームを一時インスタンスからデタッチします。一時インスタンスをそれ以上使用しない場合は、終了しても構いません。

  9. /dev/sda1 としてアタッチして、影響のあるインスタンスのルートボリュームを復元します。

  10. インスタンスを起動します。

  • Active Directory ドメインの一部ではないインスタンスでネットワークレベル認証が無効になっていることを確認します (AWSSupport-TroubleshootRDP を使用して disable NLA を行います)。

  • リモートデスクトップサービス (TermService) のスタートアップタイプが自動であり、サービスが開始されていることを確認します (AWSSupport-TroubleshootRDP を使用して enable and start the RDP service を行います)。

  • 正しいリモートデスクトッププロトコルポート (デフォルトは 3389) に接続していることを確認します (AWSSupport-TroubleshootRDP を使用してread the current RDP port および change it back to 3389 を行います)。

  • インスタンスでリモートデスクトップ接続が許可されていることを確認します (AWSSupport-TroubleshootRDP を使用して enable Remote Desktop connections を行います)。

  • パスワードの有効期限が切れていないことを確認します。パスワードの有効期限が切れている場合、リセットできます。詳細については、「紛失したか、期限切れとなった Windows 管理者パスワードのリセット」を参照してください。

  • インスタンスで作成したユーザーアカウントを使用して接続しようとすると、エラー "The user cannot connect to the server due to insufficient access privileges" が表示される場合、そのユーザーにローカルでログオンする権限が付与されていることを確認してください。詳細については、「メンバーにローカルでログオンする権利を付与する」を参照してください。

  • 許可されている最大の同時 RDP セッション数より多くのセッションを使用しようとすると、セッションは終了され、「Your Remote Desktop Services session has ended. Another user connected to the remote computer, so your connection was lost.」というメッセージが表示されます。デフォルトでは、インスタンスに許可される同時 RDP セッション数は 2 です。

macOS RDP クライアントの使用中にエラーが発生する

Microsoft ウェブサイトのリモートデスクトップ接続クライアントを使用して Windows Server 2012 R2 インスタンスに接続する場合は、次のエラーが発生する可能性があります。

Remote Desktop Connection cannot verify the identity of the computer that you want to connect to.

Mac App Store から Microsoft リモートデスクトップアプリをダウンロードし、そのアプリを使用して、インスタンスに接続します。

RDP にデスクトップではなく黒い画面が表示される

この問題を解決するには、以下の手順を実行します。

  • コンソール出力に追加情報がないか、確認します。Amazon EC2 コンソールを使用してインスタンスのコンソール出力を取得するには、インスタンスを選択してから、[アクション]、[モニタリングおよびトラブルシューティング]、[システムログの取得] の順に選択します。

  • 最新バージョンの RDP クライアントを実行していることを確認します。

  • RDP クライアントのデフォルト設定を使用してください。詳細については、「Remote Session Environment」を参照してください。

  • リモートデスクトップ接続を使用している場合、次のように /admin オプションを使用して開始してみてください。

    mstsc /v:instance /admin
  • サーバーで全画面アプリケーションが実行されている場合、応答を停止する可能性があります。Ctrl+Shift+Esc キーを使用して Windows タスクマネージャーを起動し、アプリケーションを閉じます。

  • サーバーの使用率が高すぎる場合、応答を停止する可能性があります。Amazon EC2 コンソールを使用してインスタンスを監視するには、インスタンスを選択し、[Monitoring] をクリックします。サイズの大きいインスタンスタイプに変更する必要がある場合は、「インスタンスタイプを変更する」を参照してください。

管理者ではないユーザーアカウントでインスタンスにリモートでログインできない

管理者アカウントではないユーザーアカウントを使用して、Windows インスタンスにリモートでログインできない場合、ローカルでログオンする権限がユーザーに付与されていることを確認してください。「ユーザーまたはグループにドメインのドメインコントローラーにローカルでログオンする権限を付与する」を参照してください。

AWS Systems Manager を使用したリモートデスクトップ問題のトラブルシューティング

AWS Systems Manager では、RDP を使用して Windows インスタンスに接続する際の問題のトラブルシューティングを行うことができます。

AWSSupport-TroubleshootRDP

AWSSupport-TroubleshootRDP 自動化ドキュメントでは、リモートデスクトッププロトコル (RDP) の接続に影響する可能性があるターゲットインスタンスの一般設定 (RDP ポートネットワークレイヤー認証 (NLA)Windows ファイアウォールプロファイルなど) を確認または修正できます。デフォルトでは、このドキュメントは以上の設定の値を読み取って出力します。

AWSSupport-TroubleshootRDP オートメーションドキュメントは、EC2 インスタンス、オンプレミスインスタンス、および AWS Systems Manager (マネージドインスタンス) との使用が有効になっている仮想マシン (VM) で使用できます。また、Systems Manager との使用が有効になっていない EC2 Windows Server インスタンスでも使用できます。AWS Systems Manager で使用するのインスタンスを有効にする方法については、AWS Systems Managerユーザーガイドの「AWS Systems Manager のマネージドインスタンス」を参照してください。

AWSSupport-TroubleshootRDP ドキュメントの使用に関するトラブルシューティングを行うには

  1. Systems Manager コンソールにログインします

  2. 障害が発生した インスタンスと同じリージョンで操作していることを確認します。

  3. AWSSupport-TroubleshootRDP ドキュメントを開きます。

  4. [Execution Mode (実行モード)] で、[Simple execution (シンプルな実行)] を選択します。

  5. [入力パラメーター] の [InstanceId] フィールドで、[Show interactive instance picker (インタラクティブなインスタンスピッカーを表示)] を有効にします。

  6. Amazon EC2 インスタンスを選択します。

  7. を確認し、[Execute (実行)] を選択します。

  8. 実行の進行状況をモニタリングするには、[Execution status (実行ステータス)] で、ステータスが [保留中] から [成功] に変わるのを待ちます。[出力] を展開して結果を表示します。個別のステップの出力を表示するには、[Executed Steps (実行済みのステップ)] で [Step ID (ステップ ID)] から項目を選択します。

AWSSupport-TroubleshootRDP の例

以下の例では、AWSSupport-TroubleshootRDP を使用して一般的なトラブルシューティングタスクを実行する方法を示します。AWS CLI start-automation-execution コマンドの例を使用するか、提供されている AWS Management Console へのリンクを使用できます。

例: 現在の RDP のステータスを確認する

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=instance_id" --region region_code

AWS Systems Manager コンソール:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region#documentVersion=$LATEST

例: Windows ファイアウォールを無効にする

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=instance_id,Firewall=Disable" --region region_code

AWS Systems Manager コンソール:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region_code#documentVersion=$LATEST&Firewall=Disable

例: ネットワークレベル認証を無効にする

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=instance_id,NLASettingAction=Disable" --region region_code

AWS Systems Manager コンソール:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region_code#documentVersion

例: RDP サービスのスタートアップタイプを [自動] に設定して RDP サービスを開始する

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=instance_id,RDPServiceStartupType=Auto, RDPServiceAction=Start" --region region_code

AWS Systems Manager コンソール:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region_code#documentVersion=$LATEST&RDPServiceStartupType=Auto&RDPServiceAction=Start

例: デフォルトの RDP ポート (3389) を復元する

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=instance_id,RDPPortAction=Modify" --region region_code

AWS Systems Manager コンソール:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region_code#documentVersion=$LATEST&RDPPortAction=Modify

例: リモート接続を許可する

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=instance_id,RemoteConnections=Enable" --region region_code

AWS Systems Manager コンソール:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region_code#documentVersion=$LATEST&RemoteConnections=Enable

AWSSupport-ExecuteEC2Rescue

AWSSupport-ExecuteEC2Rescue 自動化ドキュメントでは、使用アイテム EC2Rescue for Windows Server を使用して EC2 インスタンスの接続と RDP 問題の自動的なトラブルシューティングと復元を行います。詳細については、「到達不可能なインスタンスでの EC2Rescue ツールの実行」を参照してください。

AWSSupport-ExecuteEC2Rescue 自動化ドキュメントは、インスタンスの停止と再起動を必要とします。Systems Manager Automation は、インスタンスを停止して Amazon マシンイメージ (AMI) を作成します。インスタンスストアボリュームに保存されているデータは失われます。Elastic IP アドレスを使用していない場合は、パブリック IP アドレスが変わります。詳細については、AWS Systems Manager ユーザーガイドの「到達不可能なインスタンスでの EC2Rescue ツールの実行」を参照してください。

AWSSupport-ExecuteEC2Rescue ドキュメントの使用に関するトラブルシューティングを行うには

  1. Systems Manager コンソールを開きます。

  2. 障害が発生した Amazon EC2 インスタンスと同じリージョンで操作していることを確認します。

  3. AWSSupport-ExecuteEC2Rescue ドキュメントを開きます。

  4. [Execution Mode (実行モード)] で、[Simple execution (シンプルな実行)] を選択します。

  5. [入力パラメーター] セクションの [UnreachableInstanceId] に、到達不可能なインスタンスの Amazon EC2 インスタンス ID を入力します。

  6. (オプション) Amazon EC2 インスタンスのトラブルシューティング用にオペレーティングシステムレベルのログを収集する場合は、[LogDestination] に Amazon Simple Storage Service (Amazon S3) バケット名を入力します。ログは、指定したバケットに自動的にアップロードされます。

  7. [Execute (実行)] を選択します。

  8. 実行の進行状況をモニタリングするには、[Execution status (実行ステータス)] で、ステータスが [保留中] から [成功] に変わるのを待ちます。[出力] を展開して結果を表示します。個別のステップの出力を表示するには、[Executed Steps (実行済みのステップ)] で [Step ID (ステップ ID)] を選択します。

リモートレジストリを使用して EC2 インスタンスでリモートデスクトップを有効にする

到達不能なインスタンスが AWS Systems Manager Session Manager で管理されていない場合は、リモートレジストリを使用してリモートデスクトップを有効にできます。

  1. EC2 コンソールから、到達不能なインスタンスを停止します。

  2. 到達不能なインスタンスのルートボリュームを、同じアベイラビリティーゾーン内の別のインスタンスにアタッチします。

  3. ルートボリュームをアタッチしたインスタンスで、[Disk Management (ディスクの管理)] を開きます。ディスクの管理を開くには、以下を実行します

    diskmgmt.msc
  4. 影響を受けるインスタンスのルートボリュームを右クリックし、[Online (オンライン)] を選択します。

  5. 次のコマンドを実行して、Windows レジストリエディターを開きます。

    regedit
  6. レジストリエディターのコンソールツリーで、[HKEY_LOCAL_MACHINE] を選択し、[ファイル] > [ハイブの読み込み] を選択します。

  7. 接続されているボリュームのドライブを選択し、\Windows\System32\config\ に移動し、SYSTEM を選択して、[開く] を選択します。

  8. [キー名] にハイブの一意の名前を入力し、[OK] を選択します。

  9. レジストリに変更を加える前に、レジストリ Hive をバックアップします。

    1. レジストリエディターのコンソールツリーで、読み込んだハイブ: HKEY_LOCAL_MACHINE\your key name を選択します。

    2. [File (ファイル)]、[Export (エクスポート)] の順に選択します。

    3. [Export Registry File (レジストリファイルのエクスポート)] ダイアログボックスで、バックアップコピーを保存する場所を選択し、[File name (ファイル名)] フィールドにバックアップファイルの名前を入力します。

    4. [Save] を選択します。

  10. レジストリエディターのコンソールツリーで、HKEY_LOCAL_MACHINE\your key name\ControlSet001\Control\Terminal Server に移動し、詳細ペインで [fDenyTSConnections] をダブルクリックします。

  11. [Edit DWORD (DWORD の編集)] 値ボックスで、[Value data (値のデータ)] フィールドに 0 と入力します。

  12. [OK] を選択します。

    注記

    [Value data (値のデータ)] フィールドの値が 1 の場合、インスタンスはリモートデスクトップ接続を拒否します。0 の値は、リモートデスクトップ接続を許可します。

  13. レジストリエディターとディスクの管理コンソールを閉じます。

  14. EC2 コンソールから、ルートボリュームをアタッチしたインスタンスからデタッチし、到達不能なインスタンスに再アタッチします。到達不能なインスタンスにボリュームをアタッチする場合は、[device (デバイス)] フィールドに /dev/sda1 を入力します。

  15. 到達できないインスタンスを停止します。