如何解決 Amazon EC2 Windows 執行個體上的 Windows 啟用失敗訊息?

2 分的閱讀內容
0

我想解決Amazon Elastic Compute Cloud (Amazon EC2) Windows 執行個體上的 Windows 啟用失敗訊息。

簡短描述

Windows 執行個體使用 AWS 上的 Microsoft Key Management Service (Microsoft KMS) 進行啟用。如果您的執行個體無法連線到 Microsoft KMS 伺服器,您可能會收到 Windows 啟用錯誤訊息。若要解決此錯誤訊息,請使用下列其中一種方法:

  • 使用 AWS Systems Manager Automation 文件來啟用 Windows
  • 手動啟用 Windows

此外,如果執行個體是從 Amazon Elastic Block Store (Amazon EBS) 快照啟動的,您的 Windows 執行個體可能無法啟用。Linux 執行個體支援 Amazon EBS 快照。因此,平台詳細資訊會顯示 Windows 執行個體的 Linux,而 KMS 路由則因為帳單代碼不正確而被封鎖。若要解決此問題,請使用 Windows AMI 啟動具有類似組態的 Amazon EC2 執行個體。然後,交換根磁碟區。此動作可更正帳單代碼和平台詳細資訊,並允許 KMS 啟用成功完成。

解決方案

使用 Systems Manager Automation 文件啟用 Windows

AWSSupport-ActivateWindowsWithAmazonLicense 自動化文件會使用 Amazon 提供的授權來啟用 Amazon EC2 Windows 執行個體。自動化會檢查執行個體的 Windows 目前狀態,然後在狀態為非啟用時啟動 Windows。

注意: 此解決方案不適用於使用自有授權 (BYOL) Windows 執行個體。若要使用您自己的授權,請參閱 AWS 上的 Microsoft 授權

若要使用 Systems Manager Automation 文件來啟用 Windows,請完成下列步驟:

  1. 登入 Systems Manager 主控台。請確保選取與需要啟用的 Amazon EC2 Windows 執行個體相同的 AWS 區域。
  2. 從導覽窗格中選擇自動化,然後選擇執行自動化
  3. 在搜尋欄位中,輸入 ActivateWindowsWithAmazonLicense。選取 AWSSupport-ActivateWindowsWithAmazonLicense 自動化文件,然後選擇下一步
  4. 對於執行自動化文件,選擇簡易執行
  5. 對於輸入參數,開啟顯示互動式執行個體選擇器
  6. 選擇您的 EC2 執行個體。如果在清單中沒有看到您的執行個體,表示 Systems Manager 並未啟用該執行個體。若要解決問題,請參閱設定 Amazon EC2 執行個體的 Systems Manager。如果您不想啟用 Systems Manager,或執行個體在輸入參數中無法使用,請關閉顯示互動式執行個體選擇器。針對 InstanceID,輸入受損 Amazon EC2 執行個體的 ID。針對 AllowOffline,選擇 True。如果將 AllowOffline 設定為 True,Amazon EC2 執行個體會停止並重新啟動,且執行個體儲存體磁碟區中的資料會遺失。此外,如果您不使用彈性 IP 地址,則公用 IP 地址會變更。
  7. 選擇執行
  8. 若要監控進度,請登入 Systems Manger 主控台,然後從導覽窗格中選擇自動化。選擇執行中的自動化,然後檢閱已執行步驟。若要檢視自動化輸出,請展開輸出

手動啟用 Windows

若要手動啟用 Windows,請完成下列步驟:

1.    確認已安裝最新版本的 EC2Config,然後執行下列步驟:

對於 Windows Server 2012 R2 及更早版本,請執行下列命令:

net stop ec2config
net start ec2config

對於 Windows Server 2016 及更新版本,請執行此命令,將正確的路由設定至 Microsoft KMS 伺服器:

PS C:>Import-Module "C:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psd1"
PS C:>Add-Routes
PS C:>Set-ActivationSettings
PS C:>slmgr /ato

**注意:**如果在更新 EC2Config 並執行先前的命令後 Windows 未啟動,請繼續執行下一步。

2.    新增例外狀況,以允許控制執行個體出站連線的任何防火牆或安全性軟體上的 Microsoft KMS 流量。Microsoft KMS 作為 TCP 流量在連接埠 1688 上執行。

3.    設定您的 Windows KMS 設定金鑰。若要執行此操作,請為您的作業系統 (OS) 版本找出正確的 Microsoft KMS 用戶端設定金鑰。如需詳細資訊,請參閱 Microsoft 網站上的 Key Management Services (KMS) 用戶端啟用和產品金鑰。然後,以管理員身份執行此命令:

slmgr.vbs /ipk <KMSSetupKey>

4.    以管理員身份執行此命令以設定您的 Windows KMS 機器 IP 地址:

**注意:**來自 VM 匯入或較舊 Amazon EC2 Classic 執行個體的執行個體可能沒有適用於 Microsoft KMS 伺服器的正確 IP 地址。

slmgr.vbs /skms 169.254.169.250:1688

5.    以管理員身分執行此命令以啟用 Windows:

slmgr /ato

6.    如果上述步驟啟用失敗,請檢查從執行個體到 Microsoft KMS 伺服器的網路通訊。從執行個體向 Microsoft KMS 伺服器執行 telnet,然後開啟 PowerShell 並輸入下列命令:

Test-netconnection 169.254.169.250 -Port 1688
Test-netconnection 169.254.169.251 -Port 1688

**注意:**對於先前的命令,請確認連線狀態輸出為 TcpTestSuccessed=True。如果連線狀態輸出為 False,請繼續執行下一個步驟。

7.    確認這些登錄機碼具有正確的 Microsoft KMS 值:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\SoftwareProtectionPlatform
KeyManagementServiceName - 169.254.169.250 or 169.254.169.251
KeyManagementServicePort - 1688

8.    重複步驟 6。如果連線狀態輸出仍為 False,請檢查 Amazon EC2 執行個體上的時間同步。如需詳細資訊,請參閱設定 Windows 執行個體的時間

相關資訊

EC2Config 設定檔

在 Microsoft 網站上了解 KMS

在 Windows 執行個體上升級 PV 驅動程式

如何對 EC2 Windows 執行個體的時間問題進行疑難排解?

AWS 官方
AWS 官方已更新 6 個月前