共用方式為


針對受防護主機進行疑難解答

本文說明在受防護網狀架構中部署或操作受防護 Hyper-V 主機時所遇到的常見問題的解決方案。

適用於: 所有支援的 Windows Server 版本

如果您不確定問題的性質,請先嘗試在 Hyper-V 主機上執行 受防護網狀架構診斷 ,以縮小潛在原因。

受防護主機功能

如果您遇到 Hyper-V 主機的問題,請先確定 已安裝主機守護者 Hyper-V 支援 功能。 如果沒有這項功能,Hyper-V 主機就缺少一些重要的組態設定和軟體,可讓其通過證明和布建受防護的 VM。

若要檢查是否已安裝此功能,請使用 伺服器管理員,或在提升許可權的 PowerShell 視窗中執行下列 Cmdlet:

Get-WindowsFeature HostGuardian

如果未安裝此功能,請使用下列 PowerShell Cmdlet 進行安裝:

Install-WindowsFeature HostGuardian -Restart

證明失敗

如果主機未透過主機守護者服務傳遞證明,就無法執行受防護的 VM。 該主機上的 Get-HgsClientConfiguration 輸出會顯示該主機為何未通過證明的相關資訊。

下表說明可能出現在 [證明狀態] 欄位中的值,以及後續步驟 (如果適用)。

AttestationStatus 說明
已過期 主機先前已通過證明,但簽發給該主機的健康情況憑證已過期。 請確認主機和 HGS 時間為同步。
InsecureHostConfiguration 主機未通過證明,因為它不符合 HGS 上設定的證明原則。 如需詳細資訊,請參閱 AttestationSubStatus 數據表。
NotConfigured 主機未設定為使用 HGS 進行證明和金鑰保護。 而是針對本機模式進行設定。 如果此主機位於受防護網狀架構中,請使用 Set-HgsClientConfiguration 為其提供 HGS 伺服器的 URL。
已通過 主機已通過證明。
TransientError 最後一次證明嘗試失敗,因為發生網路、服務或其他暫時性錯誤。 請重試您的最後一個作業。
TpmError 由於 TPM 發生錯誤,主機無法完成其最後一次證明嘗試。 如需詳細資訊,請參閱您的 TPM 記錄。
UnauthorizedHost 主機未通過證明,因為它未獲授權執行受防護的 VM。 請確定主機屬於 HGS 信任的安全性群組,以執行受防護的 VM。
Unknown 主機尚未嘗試使用 HGS 進行證明。

當 AttestationStatus 回報為 InsecureHostConfiguration,AttestationSubStatus 字段中會填入一或多個原因。 下表說明 AttestationSubStatus 的可能值,以及如何解決問題的提示。

AttestationSubStatus 代表的意義及應採取的動作
BitLocker BitLocker 不會加密主機的 OS 磁碟區。 若要解決此問題,請在 OS 磁碟區上啟用 BitLocker,或在 HGS上停用 BitLocker 原則
CodeIntegrityPolicy 主機未設定為使用程式碼完整性原則,或未使用 HGS 伺服器信任的原則。 請確定程式碼完整性原則已設定、主機已重新啟動,且原則已註冊至 HGS 伺服器。 如需詳細資訊,請參閱建立和套用程式碼完整性原則
DumpsEnabled 主機已設定為允許損毀傾印或即時記憶體轉儲,而 HGS 原則不允許。 若要解決此問題,請停用主機上的傾印。
DumpEncryption 主機已設定為允許損毀傾印或即時記憶體轉儲,但不會加密這些傾印。 請停用主機上的傾印,或設定傾印加密
DumpEncryptionKey 主機已設定為允許和加密傾印,但不會使用 HGS 已知的憑證來加密它們。 若要解決此問題,請在主機上更新傾印加密金鑰,或將金鑰註冊至 HGS
FullBoot 主機從睡眠狀態或休眠狀態恢復。 請重新啟動主機以進行全新的完整開機。
HibernationEnabled 主機已設定為允許休眠而不加密休眠檔案,而 HGS 原則不允許此檔案。 請停用休眠並重新啟動主機,或設定傾印加密
HypervisorEnforcedCodeIntegrityPolicy 主機未設定為使用 Hypervisor 強制執行的程式代碼完整性原則。 請確認 Hypervisor 已啟用、設定並強制執行程式碼完整性。 如需詳細資訊,請參閱 Device Guard 部署指南
Iommu 主機的虛擬化型安全性功能未設定為需要 IOMMU 裝置,以防範 HGS 原則所需的直接記憶體存取攻擊。 確認主機具有 IOMMU、其已啟用,且 Device Guard 已 設定為在啟動 VBS 時需要 DMA 保護
PagefileEncryption 主機上未啟用頁面檔案加密。 若要解決此問題,請執行 fsutil behavior set encryptpagingfile 1 以啟用分頁檔加密。 如需詳細資訊,請參閱 fsutil 行為
SecureBoot 此主機未啟用安全開機,或未使用 Microsoft 安全開機範本。 請使用 Microsoft 安全開機範本啟用安全開機,以解決此問題。
SecureBootSettings 此主機上的 TPM 基準不符合 HGS 信任的任何一項。 若因為安裝新的硬體或軟體而變更了您的 UEFI 啟動授權、DBX 變數、偵錯旗標或自訂安全開機原則,就會發生這種情況。 如果您信任此機器目前的硬體、韌體和軟體設定,您可以擷取新的 TPM 基準,並將其註冊至 HGS
TcgLogVerification 無法取得或驗證 TCG 記錄 (TPM 基準)。 這可能表示主機的韌體、TPM 或其他硬體元件有問題。 如果您的主機設定為會在 Windows 開機之前嘗試 PXE 開機,則過時的網路開機程式 (NBP) 也可能造成此錯誤。 請確定在 PXE 開機啟用時,所有 NBP 都是最新的。
VirtualSecureMode 虛擬式安全性功能未在主機上執行。 請確定 VBS 已啟用,且您的系統符合已設定的平台安全性功能。 如需 VBS 需求的詳細資訊,請參閱 Device Guard 檔

新式 TLS

如果您已部署群組原則,或設定了 Hyper-V 主機以防止使用 TLS 1.0,您在嘗試啟動受防護的 VM 時,可能會遇到「主機守護者服務用戶端無法代表呼叫程序解除包裝金鑰保護裝置」錯誤。 這是因為 .NET 4.6 中的默認行為,在與 HGS 伺服器交涉支援的 TLS 版本時,不會考慮系統預設 TLS 版本。

若要解決此問題,請執行下列兩個命令,將 .NET 設定為對所有 .NET 應用程式都使用系統預設 TLS 版本。

reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:64
reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:32

警告

系統預設 TLS 版本設定會對您機器上的所有 .NET 應用程式產生影響。 請務必先在隔離的環境中測試登錄機碼,再將其部署至生產機器。

如需 .NET 4.6 和 TLS 1.0 的詳細資訊,請參閱解決 TLS 1.0 問題第 2 版