

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 對 Amazon EC2 Windows 執行個體啟動問題進行疑難排解
<a name="common-messages"></a>

以下疑難排解秘訣有助您解決 Amazon EC2 Windows Server 執行個體的密碼和啟用問題。

**Topics**
+ [「未提供密碼」](#password-not-available)
+ [「尚未提供密碼」](#password-not-ready)
+ [「無法擷取 Windows 密碼」](#cannot-retrieve-password)
+ [等待中繼資料服務](#metadata-unavailable)
+ [無法啟動 Windows](#activate-windows)
+ [Windows 不是正版 (0x80070005)](#windows-not-genuine)
+ [無終端機伺服器的授權伺服器可提供授權](#no-license-servers)
+ [「部分設定是由您的組織所管理」](#some-settings-managed-by-org)

## 「未提供密碼」
<a name="password-not-available"></a>

若要使用遠端桌面連線到 Windows 執行個體，您必須指定帳戶和密碼。提供的帳戶和密碼是以您啟動執行個體所用的 AMI 為基礎。您可擷取管理員帳戶自動產生的密碼，或使用 AMI 建立來源之原始執行個體中使用的帳戶和密碼。

您可以為使用自訂 Windows AMI 啟動的執行個體產生管理員帳戶密碼。要產生密碼，您需要在建立 AMI 之前在作業系統中配置一些設定。如需詳細資訊，請參閱[建立 Amazon EBS 支援的 AMI](creating-an-ami-ebs.md)。

如果您的 Windows 執行個體未設定產生隨機密碼，當您使用主控台擷取自動產生的密碼時，就會收到以下訊息：

```
Password is not available.
The instance was launched from a custom AMI, or the default password has changed. A
password cannot be retrieved for this instance. If you have forgotten your password, you can
reset it using the Amazon EC2 configuration service. For more information, see Passwords for a
Windows Server instance.
```

檢查執行個體的主控台輸出，查看您啟動執行個體所用的 AMI，建立時是否停用產生密碼。如果停用產生密碼，主控台輸出會包含以下內容：

```
Ec2SetPassword: Disabled
```

如果停用產生密碼而您不記得原始執行個體的密碼，您可重設此執行個體的密碼。如需詳細資訊，請參閱[重設 Amazon EC2 Windows 執行個體的 Windows 管理員密碼](ResettingAdminPassword.md)。

## 「尚未提供密碼」
<a name="password-not-ready"></a>

若要使用遠端桌面連線到 Windows 執行個體，您必須指定帳戶和密碼。提供的帳戶和密碼是以您啟動執行個體所用的 AMI 為基礎。您可擷取管理員帳戶自動產生的密碼，或使用 AMI 建立來源之原始執行個體中使用的帳戶和密碼。

您應該會在幾分鐘內收到密碼。如果未提供密碼，當您使用主控台擷取自動產生的密碼時，就會收到以下訊息：

```
Password not available yet.
Please wait at least 4 minutes after launching an instance before trying to retrieve the 
auto-generated password.
```

如果超過四分鐘仍未收到密碼，則可能是執行個體的啟動代理程式未設定為產生密碼。請檢查主控台輸出是否為空以確認。如需詳細資訊，請參閱[無法取得主控台輸出](win-ts-common-issues.md#no-console-output)。

同時驗證用於存取 Management Portal 的 AWS Identity and Access Management (IAM) 帳戶是否允許 `ec2:GetPasswordData`動作。如需 IAM 許可的詳細資訊，請參閱 [什麼是 IAM？](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)

## 「無法擷取 Windows 密碼」
<a name="cannot-retrieve-password"></a>

若要擷取管理員帳戶的自動產生密碼，您必須使用啟動執行個體時所指定之金鑰對的私有金鑰。如果您在啟動執行個體時未指定金鑰對，就會收到下列訊息。

```
Cannot retrieve Windows password
```

您可以使用相同的 AMI，確定指定金鑰對，終止此執行個體並啟動新的執行個體。

## 等待中繼資料服務
<a name="metadata-unavailable"></a>

Windows 執行個體必須先從自己的執行個體中繼資料取得資訊，才能自行啟動。根據預設，`WaitForMetaDataAvailable` 設定會確定 EC2Config 服務會先等待執行個體中繼資料變成可存取，才繼續開機程序。如需詳細資訊，請參閱[使用執行個體中繼資料管理您的 EC2 執行個體](ec2-instance-metadata.md)。

如果執行個體的執行個體連線能力測試失敗，請嘗試下列方法解決此問題。
+ 檢查您 VPC 的 CIDR 區塊。如果在 IP 地址範圍由 `224.0.0.0` 到 `255.255.255.255` (類別 D 和類別 E IP 地址範圍) 的 VPC 中啟動執行個體，Windows 執行個體即無法正確開機。這些是保留的 IP 地址範圍，不應該指派給主機裝置。我們建議您使用來自私有 (非可公開路由) IP 地址範圍 (如 [RFC 1918](http://www.faqs.org/rfcs/rfc1918.html) 中所指定) 的 CIDR 區塊來建立 VPC。
+ 系統可能已以靜態 IP 地址設定。請嘗試[建立網路介面](create-network-interface.md)並[連接至執行個體](network-interface-attachments.md#attach_eni)。
+ 

**在您無法連線之 Windows 執行個體上啟用 DHCP**

  1. 停止受影響的執行個體並分離其根磁碟區。

  1. 啟動與受影響執行個體同一可用區域中的暫時執行個體。
**警告**  
如果您的暫時執行個體與原始執行個體以相同的 AMI 為基礎，則您必須完成額外的步驟，否則您無法在還原原始執行個體磁碟區之後將其啟動，原因是磁碟簽名衝突。或者，請為暫時執行個體選擇不同的 AMI。例如，如果原始執行個體使用 AWS Windows Server 2016 的 Windows AMI，請使用 AWS Windows Server 2019 的 Windows AMI 啟動暫時執行個體。

  1. 從受影響的執行個體將根磁碟區連接到此暫時執行個體。連線至暫時執行個體、開啟 **Disk Management (磁碟管理)** 公用程式，然後讓磁碟機上線。

  1. 從暫時執行個體，開啟 **Regedit** 並選取 **HKEY\$1LOCAL\$1MACHINE**。從 **File (檔案)** 功能表中，選擇 **Load Hive (載入 Hive)**。選取磁碟機、開啟檔案 `Windows\System32\config\SYSTEM`，然後在提示時指定金鑰名稱 (您可使用任何名稱)。

  1. 選取剛載入的機碼並導覽至 `ControlSet001\Services\Tcpip\Parameters\Interfaces`。每個網路介面均按 GUID 列出。選取正確的網路介面。如已停用 DHCP 並指派了靜態 IP 地址，`EnableDHCP` 設為 0。若要啟用 DHCP，請將 `EnableDHCP` 設為 1，然後刪除下列機碼，如果它們存在：`NameServer`、`SubnetMask`、`IPAddress` 和 `DefaultGateway`。再次選取該金鑰，然後從 **File (檔案)** 功能表中選擇 **Unload Hive (取消載入 Hive)**。
**注意**  
如有多個網路介面，您需要找出正確的介面來啟用 DHCP。若要找出正確的網路界面，請檢閱下列機碼值：`NameServer`、`SubnetMask`、`IPAddress` 和 `DefaultGateway`。這些值會顯示前一個執行個體的靜態組態。

  1. (選用) 如已啟用 DHCP，您可能沒有中繼資料服務的路由。更新 EC2Config 可解決此問題。

     1. [下載](https://s3.amazonaws.com/ec2-downloads-windows/EC2Config/EC2Install.zip)並安裝最新版的 EC2Config 服務。如需安裝此服務的詳細資訊，請參閱 [安裝最新版本的 EC2Config](UsingConfig_Install.md)。

     1. 將 `.zip` 檔案中的檔案解壓縮到所連接之磁碟機上的 `Temp` 目錄中。

     1. 開啟 **Regedit** 並選取 **HKEY\$1LOCAL\$1MACHINE**。從 **File (檔案)** 功能表中，選擇 **Load Hive (載入 Hive)**。選取磁碟機、開啟檔案 `Windows\System32\config\SOFTWARE`，然後在提示時指定金鑰名稱 (您可使用任何名稱)。

     1. 選取剛載入的機碼並導覽至 `Microsoft\Windows\CurrentVersion`。選取 `RunOnce` 機碼。(如果此機碼不存在，請在 `CurrentVersion` 按一下滑鼠右鍵、指向 **New (新增)**、選取 **Key (機碼)** 並命名機碼 `RunOnce`。) 按一下滑鼠右鍵、指向 **New (新增)**，然後選取 **String Value (字串值)**。在名稱輸入 `Ec2Install`，在資料輸入 `C:\Temp\Ec2Install.exe -q`。

     1. 再次選取該金鑰，然後從 **File (檔案)** 功能表中選擇 **Unload Hive (取消載入 Hive)**。

  1. (選用) 如果您的暫時執行個體與原始執行個體以相同的 AMI 為基礎，則您必須完成下列步驟，否則您無法在還原原始執行個體磁碟區之後將其啟動，原因是磁碟簽名衝突。
**警告**  
下列程序說明如何使用登錄編輯程式來編輯 Windows 登錄檔。如果您不熟悉 Windows 登錄檔或如何使用登錄編輯程式來安全地進行變更，請參閱 [設定登錄檔](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc725612(v=ws.11))。

     1. 開啟命令提示，輸入 **regedit.exe**，然後按 Enter。

     1. 在**登錄編輯程式**中，從內容功能表中選擇 **HKEY\$1LOCAL\$1MACHINE** (按一下右鍵)，然後選擇 **Find** (尋找)。

     1. 輸入 **Windows Boot Manager**，然後選擇 **Find Next** (尋找下一個)。

     1. 選擇名為 `11000001` 的金鑰。此金鑰是您在上一個步驟中找到的金鑰的同級。

     1. 在右窗格中，選擇 `Element`，然後從內容功能表中選擇 **Modify** (修改)(按一下右鍵)。

     1. 在資料中的位移為 0x38 處找到四位元組的磁碟簽章。反轉位元組以建立磁碟簽章，然後寫下來。例如，下列資料所代表的磁碟簽章是 `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
        ...
        ```

     1. 在命令提示視窗中，執行下列命令以啟動 Microsoft DiskPart。

        ```
        diskpart
        ```

     1. 執行下列 DiskPart 命令以選取磁碟區。(可以使用**磁碟管理**公用程式，確認磁碟編號為 1)。

        ```
        DISKPART> select disk 1
        
        Disk 1 is now the selected disk.
        ```

     1. 執行下列 DiskPart 命令即可取得磁碟簽章。

        ```
        DISKPART>  uniqueid disk
        
        Disk ID: 0C764FA8
        ```

     1. 如果上一個步驟中顯示的磁碟簽章不符合您先前寫下的 BCD 中的磁碟簽章，請使用下列 DiskPart 命令來變更磁碟簽章，使其符合：

        ```
        DISKPART> uniqueid disk id=E9EB3AA5
        ```

  1. 使用 **Disk Management (磁碟管理)** 公用程式讓磁碟機離線。
**注意**  
如果暫時執行個體執行的作業系統與受影響執行個體的相同，磁碟機會自動離線，因此您不需要手動將其離線。

  1. 分離磁碟區與暫時執行個體。如果不再需要使用此暫時執行個體，您可終止它。

  1. 將磁碟區連接為 `/dev/sda1` 來還原受影響執行個體的根磁碟區。

  1. 啟動受影響的執行個體。

如果您已連線到此執行個體，請由此執行個體開啟網際網路瀏覽器，然後輸入下列中繼資料伺服器的 URL：

```
http://169.254.169.254/latest/meta-data/
```

如果無法聯絡中繼資料伺服器，請嘗試下列方法解決問題：
+ [下載](https://s3.amazonaws.com/ec2-downloads-windows/EC2Config/EC2Install.zip)並安裝最新版的 EC2Config 服務。如需安裝此服務的詳細資訊，請參閱 [安裝最新版本的 EC2Config](UsingConfig_Install.md)。
+ 檢查 Windows 執行個體執行的是否為 Red Hat PV 驅動程式。如果是，請更新至 Citrix PV 驅動程式。如需詳細資訊，請參閱[升級 EC2 Windows 執行個體上的 PV 驅動程式](Upgrading_PV_drivers.md)。
+ 確認防火牆、IPSec 和代理伺服器設定不會封鎖中繼資料服務 (`169.254.169.254`) 或 AWS KMS 伺服器的傳出流量 (地址指定在 `TargetKMSServer` 的 `C:\Program Files\Amazon\Ec2ConfigService\Settings\ActivationSettings.xml` 元素中)。
+ 使用下列命令確認您有中繼資料服務的路由 (`169.254.169.254`)。

  ```
  route print
  ```
+ 檢查是否有可能影響您執行個體可用區域的網路問題。請前往 [http://status.aws.amazon.com/](https://status.aws.amazon.com/)。

## 無法啟動 Windows
<a name="activate-windows"></a>

Windows 執行個體使用 Windows AWS KMS 啟用。如果您的執行個體無法連線 AWS KMS 伺服器`A problem occurred when Windows tried to activate. Error Code 0xC004F074`，您可以收到此訊息：。Windows 必須每 180 天啟動一次。EC2Config 會在啟用期間到期之前嘗試聯絡 AWS KMS 伺服器，以確保 Windows 保持啟用狀態。

如果您發生 Windows 啟用問題，請使用下列程序予以解決。

**EC2Config (Windows Server 2012 R2 AMI 及舊版)**

1. [下載](https://s3.amazonaws.com/ec2-downloads-windows/EC2Config/EC2Install.zip)並安裝最新版的 EC2Config 服務。如需安裝此服務的詳細資訊，請參閱 [安裝最新版本的 EC2Config](UsingConfig_Install.md)。

1. 登入執行個體並開啟下列檔案：`C:\Program Files\Amazon\Ec2ConfigService\Settings\config.xml`。

1. 在 `config.xml` 檔案中找到 **Ec2WindowsActivate** 外掛程式。將狀態變更為 **Enabled (已啟用)** 並儲存變更。

1. 在 Windows 服務嵌入式管理單元中，重新啟動 EC2Config 服務或重新開機執行個體。

如果這無法解決啟用問題，請遵循下列其他步驟。

1. 設定 AWS KMS 目標： **C:\$1> slmgr.vbs /skms 169.254.169.250:1688**

1. 啟動 Windows：**C:\$1> slmgr.vbs /ato**

**EC2Launch (Windows Server 2016 AMI 及更新版本)**

1. 從具有管理權限的 PowerShell 提示字元中，匯入 EC2Launch 模組：

   ```
   PS C:\> Import-Module "C:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psd1"
   ```

1. 呼叫新增路由函數以查看新路由清單：

   ```
   PS C:\> Add-Routes
   ```

1. 呼叫 Set-ActivationSettings 函數：

   ```
   PS C:\> Set-Activationsettings
   ```

1. 接著執行下列指令碼以啟動 Windows：

   ```
   PS C:\> cscript "${env:SYSTEMROOT}\system32\slmgr.vbs" /ato
   ```

 針對 EC2Config 和 EC2Launch，如果您仍收到啟用錯誤，請確認下列資訊。
+ 確認您有通往 AWS KMS 伺服器的路由。開啟 `C:\Program Files\Amazon\Ec2ConfigService\Settings\ActivationSettings.xml` 並找到 `TargetKMSServer` 元素。執行下列命令，並檢查這些 AWS KMS 伺服器的地址是否已列出。

  ```
  route print
  ```
+ 確認已設定 AWS KMS 用戶端金鑰。執行下列命令並檢查輸出。

  ```
  C:\Windows\System32\slmgr.vbs /dlv
  ```

  如果輸出包含錯誤：找不到產品金鑰，則不會設定 AWS KMS 用戶端金鑰。如果未設定 AWS KMS 用戶端金鑰，請如本 Microsoft 文章所述查詢用戶端金鑰：[AWS KMS 用戶端啟用和產品金鑰](https://learn.microsoft.com/en-us/windows-server/get-started/kms-client-activation-keys)，然後執行下列命令來設定 AWS KMS 用戶端金鑰。

  ```
  C:\Windows\System32\slmgr.vbs /ipk client_key
  ```
+ 確認系統的時間和時區是否正確。如果您使用的時區不是 UTC，請新增下列登錄機碼並將其設定為 `1`，以確保時間正確：`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal`。
+ 如已啟用 Windows 防火牆，請使用下列命令暫時停用它。

  ```
  netsh advfirewall set allprofiles state off
  ```

## Windows 不是正版 (0x80070005)
<a name="windows-not-genuine"></a>

Windows 執行個體使用 Windows AWS KMS 啟用。如果執行個體無法完成啟用程序，會回報所用 Windows 不是正版。

請嘗試[無法啟動 Windows](#activate-windows)的建議。

## 無終端機伺服器的授權伺服器可提供授權
<a name="no-license-servers"></a>

Windows Server 預設透過遠端桌面可同時授權兩名使用者使用。如果您需要透過遠端桌面提供兩位以上的使用者同時存取您的 Windows 執行個體，您可購買遠端桌面服務客戶存取授權 (CAL) 並安裝遠端桌面工作階段主機和遠端桌面工作階段授權伺服器角色。

檢查是否有下列問題：
+ 您已超過可同時執行的 RDP 工作階段上限。
+ 您已安裝 Windows 遠端桌面服務角色。
+ 授權已過期。如果授權已過期，您就無法以使用者身分連線到您的 Windows 執行個體。您可以嘗試下列方法：
  + 使用 `/admin` 參數從命令列連線至執行個體，例如：

    ```
    mstsc /v:instance /admin
    ```

    如需詳細資訊，請參閱下列 Microsoft 文章：[Access Remote Desktop Via Command Line](https://learn.microsoft.com/en-us/archive/technet-wiki/4487.access-remote-desktop-via-commandline)。
  + 停止執行個體、分離其 Amazon EBS 磁碟區，然後將它們連接到同一可用區域的另一個執行個體，以復原您的資料。

## 「部分設定是由您的組織所管理」
<a name="some-settings-managed-by-org"></a>

從最新 Windows Server AMI 啟動的執行個體可能顯示 Windows Update 對話方塊訊息，其中指出「部分設定是由您的組織所管理」。此訊息是因為 Windows Server 中的變更而出現，不影響 Windows Update 的行為或造成您無法管理更新設定。

**如何移除警告**

1. 開啟 `gpedit.msc` 並導覽至**電腦組態** > **系統管理範本** > **Windows 元件** > **Windows 更新**。編輯**設定自動更新**，然後將其設為**已啟用**。

1. 在命令提示字元中，使用 **gpupdate /force** 更新群組政策。

1. 關閉「Windows Update 設定」再重新開啟。您將看到上述訊息表示您的設定正由您的組織所管理，後面接著「我們將自動下載更新，付費連線的情況除外 (因為可能需要支付費用)。在該種情況下，我們會自動下載保持 Windows 順暢運作所需的這些更新。」

1. 返回 `gpedit.msc`，然後將群組政策設回**尚未設定**。再次執行 **gpupdate /force**。

1. 關閉命令提示字元並等待幾分鐘。

1. 重新開啟「Windows Update 設定」。您應該不會看到「部分設定是由您的組織所管理」這個訊息。