

# Amazon EC2 Windows インスタンスへの接続に関する問題のトラブルシューティング
<a name="troubleshoot-connect-windows-instance"></a>

以下の情報と一般的なエラーは、Windows インスタンスに接続するときの問題のトラブルシューティングに役立ちます。

**Topics**
+ [リモートデスクトップからリモートコンピュータに接続できません](#rdp-issues)
+ [macOS RDP クライアントの使用中にエラーが発生する](#troubleshoot-instance-connect-mac-rdp)
+ [RDP にデスクトップではなく黒い画面が表示される](#rdp-black-screen)
+ [管理者ではないユーザーでインスタンスにリモートでログオンできない](#remote-failure)
+ [AWS Systems Manager を使用したリモートデスクトップ問題のトラブルシューティング](#Troubleshooting-Remote-Desktop-Connection-issues-using-AWS-Systems-Manager)
+ [リモートレジストリを使用して EC2 インスタンスでリモートデスクトップを有効にする](#troubleshooting-windows-rdp-remote-registry)
+ [プライベートキーを紛失しました。Windows インスタンスに接続するにはどうすればよいですか?](#replacing-lost-key-pair-windows)

## リモートデスクトップからリモートコンピュータに接続できません
<a name="rdp-issues"></a>

インスタンスへの接続関連の問題を解決するには、以下を実行します。
+ 正しいパブリック DNS ホスト名を使用していることを確認します (Amazon EC2 コンソールでは、インスタンスを選択し、詳細ペインの [**Public DNS (IPv4)** (パブリック DNS (IPv4))] を確認します)。インスタンスが VPC 内にあり、パブリック DNS 名が表示されない場合は、DNS ホスト名を有効にする必要があります。詳細については、「*Amazon VPC ユーザーガイド*」の「[VPC の DNS 属性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)」を参照してください。
+ インスタンスにパブリック IPv4 アドレスがあることを確認します。そうでない場合は、Elastic IP アドレスをインスタンスに関連付けることができます。詳細については、「[Elastic IP アドレス](elastic-ip-addresses-eip.md)」を参照してください。
+ IPv6 アドレスを使用してインスタンスに接続するには、ローカルコンピュータに IPv6 があり、IPv6 アドレスを使用するように設定されていることを確認します。詳細については「Amazon VPC ユーザーガイド」の[「インスタンスに IPv6 を設定する」](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html#vpc-migrate-ipv6-dhcpv6)を参照してください。
+ セキュリティグループに、ポート 3389 での RDP アクセスを許可するルールがあることを確認します。
+ パスワードをコピーしたがエラー `Your credentials did not work` が発生した場合、プロンプトが表示されたら手動で入力してください。パスワードをコピーしたときに、1 文字欠けていたり、余分な空白文字が含まれている可能性があります。
+ インスタンスのステータスチェックが成功していることを確認します。詳細については、「[Amazon EC2 インスタンスのステータスチェック](monitoring-system-instance-status-check.md)」および「[ステータスチェックに失敗した Amazon EC2 Linux インスタンスをトラブルシューティングする](TroubleshootingInstances.md)」を参照してください。
+ サブネットのルートテーブルに、VPC 外へのすべてのトラフィックを VPC のインターネットゲートウェイに送信するルートがあることを確認します。詳細については、*Amazon VPC ユーザーガイド* の「[カスタムルートテーブルを作成する](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html#Add_IGW_Routing)」 (インターネットゲートウェイ) を参照してください。
+ Windows ファイアウォール、または他のファイアウォールのソフトウェアによって、インスタンスへの RDP トラフィックがブロックされていないことを確認します。Windows ファイアウォールを無効にし、セキュリティグループのルールを使用してインスタンスへのアクセスを制御することをお勧めします。以下のいずれかのオプションを試行します。
  + [AWSSupport-TroubleshootRDP](#AWSSupport-TroubleshootRDP) を [disable the Windows Firewall profiles using SSM Agent](#disable-firewall) に使用します。このオプションでは、インスタンスが AWS Systems Manager に設定されている必要があります。
  + [AWSSupport-ExecuteEC2Rescue](#AWSSupport-ExecuteEC2Rescue) を使用します。
  + インスタンスを停止し、ルートボリュームをデタッチして、そのボリュームをデータボリュームとして一時インスタンスにアタッチします。一時インスタンスに接続し、ボリュームをオンラインにします。データボリュームからレジストリハイブをロードします。[`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicyStandardProfile`] で、[`EnableFirewall`] を「0」に設定します。レジストリハイブをアンロードしてから、ボリュームをオフラインにします。一時インスタンスからルートボリュームをデタッチし、元のインスタンスにルートボリュームとしてアタッチします。元のインスタンスを起動します。
+  Active Directory ドメインの一部ではないインスタンスでネットワークレベル認証が無効になっていることを確認します ([AWSSupport-TroubleshootRDP](#AWSSupport-TroubleshootRDP) を使用して [disable NLA](#disable-nla) を行います)。
+ リモートデスクトップサービス (TermService) のスタートアップタイプが自動であり、サービスが開始されていることを確認します ([AWSSupport-TroubleshootRDP](#AWSSupport-TroubleshootRDP) を使用して [enable and start the RDP service](#rdp-auto) を行います)。
+ 正しいリモートデスクトッププロトコルポート (デフォルトは 3389) に接続していることを確認します ([AWSSupport-TroubleshootRDP](#AWSSupport-TroubleshootRDP) を使用して [read the current RDP port](#check-rdp) および [change it back to 3389](#restore-3389) を行います)。
+  インスタンスでリモートデスクトップ接続が許可されていることを確認します ([AWSSupport-TroubleshootRDP](#AWSSupport-TroubleshootRDP) を使用して [enable Remote Desktop connections](#allow-rdp) を行います)。
+ パスワードの有効期限が切れていないことを確認します。パスワードの有効期限が切れている場合、リセットできます。詳細については、「[Amazon EC2 Windows インスタンスの Windows 管理者パスワードをリセットする](ResettingAdminPassword.md)」を参照してください。
+ インスタンスで作成したユーザーを使用して接続しようとすると、エラー `The user cannot connect to the server due to insufficient access privileges` が表示される場合、そのユーザーにローカルでログオンする権限が付与されていることを確認してください。詳細については、「[メンバーにローカルでログオンする権限を付与する](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-r2-and-2008/ee957044(v%3dws.10))」を参照してください。
+ 許可されている最大の同時 RDP セッション数より多くのセッションを使用しようとすると、セッションは終了され、「`Your Remote Desktop Services session has ended. Another user connected to the remote computer, so your connection was lost.`」というメッセージが表示されます。デフォルトでは、インスタンスに許可される同時 RDP セッション数は 2 です。

## macOS RDP クライアントの使用中にエラーが発生する
<a name="troubleshoot-instance-connect-mac-rdp"></a>

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

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

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

## RDP にデスクトップではなく黒い画面が表示される
<a name="rdp-black-screen"></a>

この問題を解決するには、以下の手順を実行します。
+ コンソール出力に追加情報がないか、確認します。Amazon EC2 コンソールを使用してインスタンスのコンソール出力を取得するには、インスタンスを選択してから、[**アクション**]、[**モニタリングおよびトラブルシューティング**]、[**システムログの取得**] の順に選択します。
+ 最新バージョンの RDP クライアントを実行していることを確認します。
+ RDP クライアントのデフォルト設定を使用してください。
+ リモートデスクトップ接続を使用している場合、次のように `/admin` オプションを使用して開始してみてください。

  ```
  mstsc /v:instance /admin
  ```
+ サーバーで全画面アプリケーションが実行されている場合、応答を停止する可能性があります。Ctrl\$1Shift\$1Esc キーを使用して Windows タスクマネージャーを起動し、アプリケーションを閉じます。
+ サーバーの使用率が高すぎる場合、応答を停止する可能性があります。Amazon EC2 コンソールを使用してインスタンスを監視するには、インスタンスを選択し、[**Monitoring**] をクリックします。サイズの大きいインスタンスタイプに変更する必要がある場合は、「[Amazon EC2 インスタンスタイプの変更](ec2-instance-resize.md)」を参照してください。

## 管理者ではないユーザーでインスタンスにリモートでログオンできない
<a name="remote-failure"></a>

管理者アカウントではないユーザーを使用して、Windows インスタンスにリモートでログオンできない場合、ローカルでログオンする権限がユーザーに付与されていることを確認してください。「[ユーザーまたはグループにドメインのドメインコントローラーにローカルでログオンする権限を付与する](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee957044(v=ws.10)#grant-a-user-or-group-the-right-to-log-on-locally-to-the-domain-controllers-in-the-domain)」を参照してください。

## AWS Systems Manager を使用したリモートデスクトップ問題のトラブルシューティング
<a name="Troubleshooting-Remote-Desktop-Connection-issues-using-AWS-Systems-Manager"></a>

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

### AWSSupport-TroubleshootRDP
<a name="AWSSupport-TroubleshootRDP"></a>

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

AWSSupport-TroubleshootRDP オートメーションドキュメントは、EC2 インスタンス、オンプレミスインスタンス、および AWS Systems Manager (マネージドインスタンス) との使用が有効になっている仮想マシン (VM) で使用できます。また、Systems Manager との使用が有効になって*いない* EC2 Windows Server インスタンスでも使用できます。AWS Systems Manager で使用するのインスタンスを有効にする方法については、「AWS Systems Manager ユーザーガイド」の「[マネージドノード](https://docs.aws.amazon.com/systems-manager/latest/userguide/fleet-manager-managed-nodes.html)」を参照してください。

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

1. [Systems Manager コンソールにログインします](https://console.aws.amazon.com/systems-manager/)。

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

1. 左側のナビゲーションペインから **[Documents]** (ドキュメント) を選択します。

1. **[Owned by Amazon]** (Amazon が所有) タブで、検索フィールドに `AWSSupport-TroubleshootRDP` と入力します。`AWSSupport-TroubleshootRDP` ドキュメントが表示されたら、それを選択します。

1. [**Execute automation (自動化の実行)**] を選択してください。

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

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

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

1. [例](#AWSSupport-TroubleshootRDP-Examples)を確認し、[**Execute (実行)**] を選択します。

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

#### AWSSupport-TroubleshootRDP の例
<a name="AWSSupport-TroubleshootRDP-Examples"></a>

以下の例では、AWSSupport-TroubleshootRDP を使用して一般的なトラブルシューティングタスクを実行する方法を示します。AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/ssm/start-automation-execution.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/start-automation-execution.html) コマンドの例を使用するか、提供されている AWS マネジメントコンソール へのリンクを使用できます。

**Example 例: 現在の RDP のステータスを確認する**  <a name="check-rdp"></a>
AWS CLI:  

```
aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=i-1234567890abcdef0, Action=Custom" --region region_code
```
AWS Systems Manager コンソール:  

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

**Example 例: Windows ファイアウォールを無効にする**  <a name="disable-firewall"></a>
AWS CLI:  

```
aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=i-1234567890abcdef0, Action=Custom, 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
```

**Example 例: ネットワークレベル認証を無効にする**  <a name="disable-nla"></a>
AWS CLI:  

```
aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=i-1234567890abcdef0, Action=Custom, NLASettingAction=Disable" --region region_code
```
AWS Systems Manager コンソール:  

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

**Example 例: RDP サービスのスタートアップタイプを [自動] に設定して RDP サービスを開始する**  <a name="rdp-auto"></a>
AWS CLI:  

```
aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=i-1234567890abcdef0, Action=Custom, 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
```

**Example 例: デフォルトの RDP ポート (3389) を復元する**  <a name="restore-3389"></a>
AWS CLI:  

```
aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=i-1234567890abcdef0, Action=Custom, 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
```

**Example 例: リモート接続を許可する**  <a name="allow-rdp"></a>
AWS CLI:  

```
aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=i-1234567890abcdef0, Action=Custom, 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
<a name="AWSSupport-ExecuteEC2Rescue"></a>

AWSSupport-ExecuteEC2Rescue 自動化ドキュメントでは、EC2Rescue for Windows Server を使用して EC2 インスタンスの接続と RDP の問題のトラブルシューティングと復元が自動的に行われます。詳細については、「[到達不可能なインスタンスでの EC2Rescue ツールの実行](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-ec2rescue.html)」を参照してください。

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

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

1. [Systems Manager コンソール](https://console.aws.amazon.com/systems-manager/)を開きます。

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

1. ナビゲーションペインで、**[ドキュメント]** を選択します。

1. `AWSSupport-ExecuteEC2Rescue` ドキュメントを検索して選択し、**[自動化を実行]** を選択します。

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

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

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

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

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

## リモートレジストリを使用して EC2 インスタンスでリモートデスクトップを有効にする
<a name="troubleshooting-windows-rdp-remote-registry"></a>

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

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

1. 到達不能なインスタンスのルートボリュームをデタッチし、そのボリュームを、同じアベイラビリティーゾーン内の到達可能なインスタンスにストレージボリュームとしてアタッチします。到達可能なインスタンスが同じアベイラビリティーゾーンにない場合は起動します。到達不能なインスタンス上のルートボリュームのデバイス名を書き留めます。

1. 到達可能なインスタンスで、Disk Management を開きます。これを行うには、コマンドプロンプトウィンドウで次のコマンドを実行ます。

   ```
   diskmgmt.msc
   ```

1. 新たにアタッチされた (到達不能なインスタンスからの) ボリュームを右クリックし、**[オンライン]** を選択します。

1. Windows レジストリエディタを開きます。これを行うには、コマンドプロンプトウィンドウで次のコマンドを実行ます。

   ```
   regedit
   ```

1. レジストリエディターで、**[HKEY\$1LOCAL\$1MACHINE]** を選択した後、**[ファイル]**、**[Hive の読み込み]** の順に選択します。

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

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

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

   1. レジストリエディターのコンソールツリーで、読み込んだハイブ (**HKEY\$1LOCAL\$1MACHINE**\$1*your-key-name*) を選択します。

   1. **[ファイル]**、**[エクスポート]** の順に選択します。

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

   1. **[保存]** を選択します。

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

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

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

1. レジストリエディターで **[HKEY\$1LOCAL\$1MACHINE**\$1*your-key-name]* を選択した後、**[ファイル]**、**[ハイブのアンロード]** の順に選択します。

1. レジストリエディターと Disk Management を閉じます。

1. EC2 コンソールから、ルートボリュームを到達可能なインスタンスからデタッチし、到達不能なインスタンスに再アタッチします。到達不能なインスタンスにボリュームをアタッチする際は、先に保存してあったデバイス名を **[デバイス]** フィールドに入力します。

1. 到達できないインスタンスを再び開始します。

## プライベートキーを紛失しました。Windows インスタンスに接続するにはどうすればよいですか?
<a name="replacing-lost-key-pair-windows"></a>

新しく起動した Windows インスタンスに接続する際、インスタンスの起動時に指定したキーペアのプライベートキーを使用して、管理者アカウントのパスワードを復号します。

管理者パスワードを紛失し、プライベートキーを使用できなくなった場合は、パスワードをリセットするか、新しいインスタンスを作成する必要があります。詳細については、「[Amazon EC2 Windows インスタンスの Windows 管理者パスワードをリセットする](ResettingAdminPassword.md)」を参照してください。Systems Manager ドキュメントを使用してパスワードをリセットする手順については、「AWS Systems Manager ユーザーガイド」の「[ EC2 インスタンスで、パスワードと SSH キーをリセットする](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-ec2reset.html)」を参照してください。