逐步配置 Windows 記憶體完整性

最後更新: 07/01/2026
作者: 艾薩克
  • 記憶體完整性依賴 VBS 和虛擬機器管理程式來保護核心免受惡意程式碼和不受信任的驅動程式的侵害。
  • 它的激活取決於嚴格的要求 硬件韌體和驅動程式必須符合 HVCI 策略。
  • 可以透過登錄、應用程式控制、Intune 或 GPO 管理配置,並可使用 WMI、msinfo32 和 SkTool 進行驗證。
  • 常見問題可透過檢查驅動程式、策略來解決,在極端情況下,則需要修復或重新安裝 Windows。

Windows 中的記憶體完整性

記憶體完整性 它已成為許多用戶在螢幕上看到的Windows安全選項之一,但很少有人真正了解它的作用、重要性以及如何正確配置。當出現令人擔憂的「無法啟動」警告時,情況就會變得複雜,用戶往往會陷入驅動程式、防毒軟體和重啟的循環中,卻仍然不清楚問題的癥結所在。

在本文中,我們將分解 詳細講解記憶體完整性的工作原理,它與基於虛擬化的安全機制 (VBS) 的關係,以及如何透過圖形介面、註冊表等方式啟用或停用它。 PowerShell的 或者透過策略,了解它需要哪些硬體和軟體要求,如何檢查它的實際狀態,當然還有,當它拒絕啟動或留下無論如何都不會消失的黃色警告圖示時,如何排除常見問題。

Windows 系統中的記憶體完整性究竟是什麼?

記憶體完整性 這是Windows 10中提供的一項基於虛擬化的安全性(VBS)功能。 窗戶11 以及 Windows Server 2016 及更高版本。此功能依賴 Windows 虛擬機器管理程式建立一個與正常作業系統隔離的執行環境,即使 Windows 核心遭到破壞,該執行時間環境也能充當信任根。

在那個安全的虛擬環境中 核心模式代碼完整性(也稱為 HVCI,即虛擬機器監控程式強製程式碼完整性)強制執行。這確保核心使用的記憶體頁只有在通過完整性檢查後才會被標記為可執行,一旦被標記為可執行,就無法再被修改。這有效地阻止了許多試圖向內核注入或篡改程式碼的攻擊。

在實踐中,記憶體完整性 加強 Windows 的防護 惡意軟件 進階核心隔離功能可以抵禦試圖載入未簽名驅動程式、更改核心內部結構或修改關鍵記憶體分配的 rootkit 和漏洞利用程式。它是 Windows 安全中心應用程式中核心隔離功能的關鍵組成部分。

這種保護措施也限制了… 它嚴格控制核心記憶體分配,防止利用這些分配來提升權限或控制系統。因此,啟用此功能後,一些較舊或維護不善的驅動程式如果不符合相容性要求,則經常會停止載入。

配置記憶體完整性

提供記憶體完整性的安全特性

記憶體完整性不僅僅是一個漂亮的開關。相反,它在核心模式下啟用了一些非常具體的保護措施。其中最相關的包括控制流程保護(CFG)和程式碼完整性保護機製本身。

一方面,點陣圖受到保護。 核心模式驅動程式使用控制流程保護 (CFG) 來防止執行串流跳到非法記憶體位址;如果攻擊者試圖將執行重定向到惡意程式碼,這些保護措施將阻止它。

另一方面,程式碼完整性保護過程受到保護。 在核心模式下,它負責驗證已載入的驅動程式和元件是否具有有效的簽名,以及是否來自可信任來源。記憶體完整性機制可防止其他核心程序篡改此邏輯或其配置。

結果是它得到了加強。 整個系統的信任鏈:從 開機 安全性和虛擬機器管理程式最高可達驅動程式驗證,使得低階惡意軟體很難在電腦上立足或在重新啟動後存活下來。

預設啟用狀態及硬體需求

在 Windows 11 中,記憶體完整性 在相容硬體上的全新安裝中,以及在出廠保護的系統(例如,受保護核心設備)上,此功能預設為啟用。在 Windows 10 中,如果系統符合最低要求,則在全新 S 模式安裝中會自動啟用此功能。

為了實現自動激活該設備必須滿足多項硬體和韌體要求。如果其中任何一項不滿足,Windows 預設將不會啟用 VBS 或 HVCI,但您可以稍後嘗試手動啟用它們。

微軟文件的典型要求 包括使用相對較新的處理器(Intel英特爾 第八代或更高版本,AMD Zen 2 或更高版本,高通驍龍 8180 或更新版本),x64 架構至少需要 8 GB 記憶體(您可以 檢查記憶體),一項記錄 SSD 至少 64 GB,最重要的是,控制器要與記憶體完整性相容。

另外,在 的BIOS 或 UEFI 必須啟用硬體虛擬化,以及安全啟動、IOMMU、NX 支援、SMM 緩解措施、ACPI 表等功能,以及 Windows 透過內部檢查評估的其他技術要求。如果其中任何一項失敗,記憶體完整性可能無法自動啟動。

記憶完整性與VBS的關係

記憶體完整性是其中一種情況。 運行在 VBS 上的安全功能。事實上,許多設定項都位於 DeviceGuard 下,DeviceGuard 是 Windows 中基於虛擬化的安全保護機制。

VBS 使用 Windows 虛擬機器管理程式 這相當於創建了一個“作業系統中的作業系統”,其中運行著安全核心和某些關鍵功能,例如程式碼完整性保護和憑證防護。這個隔離環境不會盲目信任常規內核,因此即使內核遭到破壞,也不會影響信任根。

記憶體完整性(HVCI) 此元件負責確保核心模式程式碼符合完整性策略,並阻止載入未通過過濾器驗證的二進位檔案或驅動程式。要使其正常工作,VBS 必須啟用並運行;如果沒有 VBS,則無法強制執行記憶體完整性。

從配置角度來看您可以僅啟用 VBS,或將 VBS 與記憶體完整性一起啟用,或調整諸如「強制」、「需要平台安全功能」或「UEFI 鎖定」之類的功能,這些功能控制使用者停用這些保護措施的權限大小。

  如何在 Windows 11 中錄製帶有音訊的螢幕:所有方法

如何透過註冊表啟用記憶體完整性

適用於管理員或企業環境啟用記憶體完整性的常用方法是透過註冊表項和部署腳本。 Windows 支援一種建議配置,可在不鎖定 UEFI 韌體的情況下啟用 VBS 和 HVCI。

推薦的註冊表級配置 這涉及在 HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard 和 Scenarios\HypervisorEnforcedCodeIntegrity 子樹中設定多個鍵值。總的來說,這會強制執行基於虛擬化的安全機制,指定所需的平台特性,並啟動虛擬機器管理程式保護的程式碼完整性方案。

例如,人們可以使用 命令 reg add 樣式用於:啟用 VBS(EnableVirtualizationBasedSecurity=1),僅需要安全啟動或安全啟動 + DMA(RequirePlatformSecurityFeatures 的值為 1 或 3),控制 UEFI 鎖定是否處於活動狀態(Locked=0 或 1),以及啟用 HVCI 方案本身(在 HyperorEnityEnabled)。

也可以選擇“必填”選項。 在 DeviceGuard 中,如果虛擬機器管理程式或其任何關鍵元件載入失敗,系統將強制停止啟動。這是一種更穩健的配置,專為安全性高於可用性的環境而設計,因為即使 VBS 出現故障,系統也不會繼續啟動。

其他進階配置選項

如果您想更改預設行為微軟提供了一些參數,讓您僅啟用 VBS 而不啟用記憶體完整性保護,或要求不同等級的啟動保護(例如,僅安全啟動、安全啟動加 DMA 保護等)。透過調整這些參數值,您可以根據特定裝置調整安全性和相容性之間的平衡。

例如,如果您只想 如果 VBS 處於活動狀態但沒有 HCCI,您可以簡單地設定 EnableVirtualizationBasedSecurity=1,並且不配置虛擬機器管理程式碼完整性方案,或明確地停用它。

另一個重要的選項是UEFI鎖定。此功能由 Locked 值控制。當 Locked=1 時,套用韌體層級鎖定,本機使用者更難停用保護措施;當 Locked=0 時,則允許作業系統進行後續變更。

此外,還有一個名為 WasEnabledBy 的特殊鍵。 在 HypervisorEnforcedCodeIntegrity 場景中,該場景的作用之一是指示管理員是否啟用了該功能,並控制 Windows 安全中心中記憶體完整性圖形介面的可見性。

啟用或停用記憶體完整性介面

在某些商業環境中,搜尋工作已經開始。 目標是防止最終用戶篡改記憶體完整性設置,或至少明確表明這些設定由管理員管理。這可以透過修改 WasEnabledBy 鍵來實現。

如果 WasEnabledBy 值被移除 在 HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity 下,Windows 安全介面將顯示典型的訊息“此設定由管理員管理”,並且該開關將顯示為灰色,從而阻止從 GUI 進行更改。

如果在任何時候需要交還控制權 要恢復正常介面,只需將 WasEnabledBy 重新建立為 REG_DWORD 值,並為其分配適當的值(例如,2),以便使用者再次看到用於開啟或關閉記憶體完整性的開關——前提是沒有任何策略阻止它。

重要的是要記住 這些註冊表操作應該使用管理員權限進行,並且在企業環境中,最好透過受控腳本、Intune、GPO 或類似工具進行,以避免電腦之間出現不一致的情況。

透過企業級應用控制實現記憶體完整性

這在專業部署中非常常見。 使用 Windows Defender的 應用程式控制(企業版 App Control)用於管理程式碼在電腦上的運作方式,包括啟用記憶體完整性。

有幾種方法可以做到這一點可透過以下方式設定:使用應用程式控制策略建立或編輯精靈,在規則部分選擇「虛擬機器監控程式受保護程式碼完整性」選項;使用 PowerShell cmdlet Set-HVCIOptions,該 cmdlet 允許以腳本方式設定 HVCI 選項;或直接編輯策略 XML 並調整元素的值。 。

這種方法具有優勢 所有配置都集中在應用程式控制策略中,從而可以審核誰運行了什麼,應用程式允許列表和阻止列表,並確保即使用戶嘗試從 Windows 介面修改 HVCI,HVCI 仍然保持活動狀態。

此外,透過將其與應用程式控制集成 這樣就增加了一層額外的防禦:不僅控制了驅動程式和核心的完整性,還控制了哪些使用者模式二進位檔案可以運行,從而大大減少了系統的攻擊面。

如何檢查 VBS 和記憶體完整性是否處於活動狀態

一切設定完畢後,就到了驗證的時候了。 前提是VBS和記憶體完整性功能已啟用並正在運行。為此,Windows提供了多種工具,包括控制台工具、圖形介面工具,甚至還有WMI工具。

第一種方法是使用 WMI 類別 Win32_DeviceGuard。 從提升權限的 PowerShell 會話中執行命令 Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard 將產生一個對象,該對象具有與 VBS、記憶體完整性和其他安全服務相關的眾多屬性。

最有趣的屬性之一 AvailableSecurityProperties 透過一系列數值(表示存在或不存在)來指示哪些基於硬體的安全功能可用(虛擬機器管理程式、安全啟動、DMA 保護、SMM 緩解、MBEC/GMET、APIC 虛擬化等)。

此外,值得注意的是程式碼完整性策略執行狀態。 以及 UsermodeCodeIntegrityPolicyEnforcementStatus,它們指示核心模式和使用者模式下的程式碼完整性是被停用、處於稽核模式還是處於強制執行模式。這使您可以確定該策略是僅記錄違規行為,還是主動阻止未經授權的程式碼。

其他關鍵特性包括 RequiredSecurityProperties(VBS 運行所需的屬性)、SecurityServicesConfigured 和 SecurityServicesRunning(憑證保護或記憶體完整性等服務是否已配置和運行)、VirtualizationBasedSecurityStatus(VBS 是否已啟用和處於活動狀態)以及 VirtualMachineIsolationProperties(詳細說明 Intel SEV)。

使用 msinfo32 和註冊表檢查記憶體完整性

如果您更喜歡視覺效果,可以看看這些。您可以從以下位置開啟 msinfo32.exe 命令提示 或使用具有管理員權限的 PowerShell。在系統摘要的底部,有一個名為「基於虛擬化的安全性」的部分,其中詳細說明了哪些 VBS 功能可用以及哪些功能已啟用。

  Windows 11 中診斷問題的基本命令

例如,您可以在那裡看到。此命令檢查記憶體完整性是否正在運作、是否僅進行了配置,或者 VBS 是否根本沒有啟用。這是一種無需記住特定命令即可快速執行檢查的方法。

註冊表級別也存在一個易失性鍵。 這反映了記憶體完整性狀態:HKLM\System\CurrentControlSet\Control\CI\State,其值為 HVCIEnabled。檢查此值可以確定 HVCI 在目前啟動時是否處於作用中狀態。

此外,管理員們 您可以查看 setupact.log 文件,並蒐索字串“HVCI”,以查看系統在預設啟用過程中留下的訊息。如果一切順利,將會出現類似「HVCI: Enabling HVCI」的條目;如果系統不符合條件,則會出現「OS does not meet HVCI auto-enablement requirements」的條目。

如果出現相容性問題setupact.log 還可以顯示 VBS_COMPAT_ISSUES 代碼及其十六進位值,逐位指示哪些特定要求失敗:不支援的架構、缺少 SLAT、缺少安全啟動、缺少 IOMMU、沒有 MBEC、沒有 UEFI、沒有 WSMT 表、沒有 SSD、RAM 不足等。

啟用記憶體完整性時常見問題的故障排除

最常見的錯誤之一 這是因為啟用記憶體完整性後,某些裝置驅動程式會停止載入或導致問題。 藍色截圖 或在啟動過程中卡死。這種情況通常發生在 驅動程序 老舊、維護不善或與 HCCI 不完全相容。

在這些情況下,首先要採取的措施 從此處更新受影響的驅動程式 設備管理器嘗試從製造商尋找聲明與記憶體完整性保護相容的更新版本。通常,驅動程式更新可以解決不相容問題,而無需停用保護功能。

如果問題更嚴重 如果系統遇到嚴重啟動錯誤或變得不穩定,您可以使用 Windows 復原環境 (Windows RE)。在 Windows RE 中,停用強制執行 VBS 和 HVCI 的策略(例如群組原則物件或腳本)後,您可以離線載入註冊表,並將 HypervisorEnforcedCodeIntegrity 項目中的 Enabled 值設為 0,以便下次啟動時停用記憶體完整性。

重啟後系統隨後應能在不受HVCI限制的情況下啟動,從而可以更徹底地調查是哪個驅動程式或組件導致了衝突。接下來,必須做出決定:更換驅動程式、升級硬件,或繼續停用記憶體完整性保護並承擔風險。

使用 SkTool 診斷 VBS 和虛擬機器管理程序

用於更高級的診斷Windows SDK 包含一個名為 SkTool 的工具,用於檢查虛擬機器管理程式、安全核心以及與 VBS 相關的緩解措施的狀態。

SkTool通常可以找到 在 Windows SDK 的 bin 資料夾中,路徑類似 C:\Program Files (x86)\Windows Kits\10\bin\version\architecture。不帶參數運行該命令會顯示有關 VBS 和虛擬機管理程序的狀態信息,包括其可能無法啟動的原因。

命令列修飾符 它們突出顯示了 /status(預設行為,匯總了虛擬機管理程序和安全內核的狀態);/lkey(顯示 VSM 主密鑰配置的詳細信息,對 ESS 或 Windows Hello 問題很有用);以及 /mitigations(列出 NT 和安全內核中的活動緩解措施)。

例如,當主鑰匙 它無法透過更改系統安全狀態(例如停用安全啟動)來解鎖。 SkTool 明確指出了這一點,它已產生新的 VSM 金鑰並將其儲存在 UEFI 變數中,這有助於解釋某些安全功能停止運作的原因。

Hyper-V 虛擬機器中的記憶體完整性

記憶體完整性不受限制 它不僅可以保護實體設備,還可以保護在 Hyper-V 上運行的虛擬機,在虛擬機內提供與相容的實體設備類似的安全性。

此場景的基本要求 這些要求包括:Hyper-V 主機至少執行 Windows Server 2016 或 Windows 10 版本 1607,且虛擬機是第二代虛擬機,具有現代的客戶作業系統(Windows 10 或 Server 2016 及更高版本)。

從虛擬機器內部啟用記憶體完整性的步驟與在實體機上相同:配置 VBS、啟用 HVCI 並檢查驅動程式相容性。但是,需要注意的是,此保護措施可以增強虛擬機器抵禦內部惡意軟體的能力,但不會增強其抵禦主機管理員攻擊的能力。

宿主保留了這種能力 例如,要停用 VM 記憶體完整性,可以使用 Set-VMSecurity -VirtualizationBasedSecurityOptOut $true 命令,以便在受控的基礎架構中,可以為需要 HVCI 不支援的功能的虛擬機器做出特定的例外。

值得考慮 某些 Hyper-V 元件與虛擬機器內的記憶體完整性不相容,例如虛擬光纖通道適配器或涉及直通磁碟和 AllowFullSCSICommandSet 選項的某些場景。在這些情況下,必須先將虛擬機器從 VBS 中排除,然後再連接這些元件。

為什麼會出現「無法啟動記憶體完整性」的訊息?

許多用戶都遇到了這個錯誤。 無法透過 Windows 安全中心啟動記憶體完整性保護,有時還會伴隨黃色警告圖示和某些驅動程式不受支援的附加訊息。

其原因通常多種多樣。從過時或簽署不佳的驅動程序,到第三方防毒解決方案向內核注入組件的干擾,再到與特定硬體的兼容性問題,甚至是待處理的 Windows 更新為該計算機添加 VBS 支持,都可能導致 VBS 出現問題。

在某些情況下,防毒軟體 此安全套件可能以某種方式介入底層進程,從而與記憶體完整性檢查相衝突。暫時卸載該產品或停用某些即時保護模組可能有助於解決衝突。

另一個反覆出現的問題來源 這些是較舊的 USB 裝置驅動程序,適用於專用適配器、擷取卡、特定硬體或會安裝自身驅動程式的虛擬化軟體。在這些驅動程式更新至 HVCI 相容版本之前,啟用記憶體完整性時,Windows 將阻止載入它們。

  Windows 11 中已刪除的檔案未出現在回收站:原因及解決方案

解決記憶體完整性錯誤的一般方法

有幾種漸進式策略 為了解決「記憶體完整性無法啟動」的問題,我們將探討一系列方法,從侵入性最小的方法到最徹底的方法。不必一次全部應用;關鍵在於逐一排除潛在原因。

合理的第一步 這包括檢查和更新所有驅動程序,特別是那些被 Windows 記憶體完整性介面標記為有問題的驅動程式。設備管理器和製造商提供的工具是您最好的幫手。

也建議花費時間 使用 Windows 安全中心或可信任的解決方案執行全面的惡意軟體掃描,以檢查是否有乾擾系統的惡意程式碼。同時,也請藉此機會安裝所有待處理的 Windows 更新,其中通常包含 VBS 相容性修復程式。

如果這些都不起作用可以使用系統文件檢查器(sfc /scannow)等工具來修復損壞的文件,或者也可以啟動 Windows。 安全模式 看看它是否能無衝突地啟動,並允許從加載的第三方服務較少的環境中啟動該功能。

在極端情況下當系統存在許多累積問題時,解決方案通常是重置 Windows 系統並保留文件,甚至從頭開始全新安裝,這通常可以解決註冊表、驅動程式或舊軟體殘留等難以清除的深層衝突。

具體解決方案:從SFC到清潔重裝

使用SFC工具 系統檔案檢查器需要以管理員身分開啟命令提示符,執行 `sfc /scannow` 命令,然後等待它掃描並修復損壞的系統檔案。完成後,建議重啟計算機,然後嘗試在“Windows 安全中心”>“設備安全中心”>“核心隔離”中再次啟用內存完整性保護。

另一種創傷較小的可能性格式 這需要在 Windows 設定中重設您的電腦,選擇重設系統選項,並可根據需要保留您的檔案。此操作會重新安裝作業系統,清除許多有問題的設置,並且通常還會刪除衝突的驅動程式和應用程式。

全新安裝選項 這是最後的方法:從安裝 USB 啟動,刪除先前 Windows 系統所在的磁碟分割區,然後重新安裝所有程式。這需要重新安裝應用程式和復原備份,但從記憶體完整性和 VBS 腳本的角度來看,這樣能得到一個更乾淨的系統。

在所有這些過程中,值得記住的是 它們會對數據造成影響。雖然保留文件重置可以最大限度地降低風險,但全新安裝會清除系統驅動器上的應用程式和文檔,因此,如果您不想遭遇不愉快的意外,可靠的備份或資料恢復策略幾乎是必不可少的。

資料恢復工具的作用

記憶體完整性問題 這些問題通常伴隨系統不穩定、崩潰、啟動錯誤,甚至需要重設或重新安裝Windows等症狀。所有這些都會增加資料遺失、檔案遺失或磁碟區部分損壞的風險。

在此背景下,恢復工具 專業的資料恢復軟體能夠幫助您在系統崩潰或恢復原廠設定後,避免敏感資訊遺失並得以恢復。這類軟體可以掃描本機磁碟、外接硬碟或USB,尋找檔案總管中不再顯示的文件、照片、影片和其他文件。

這些工具中的許多 它們支援與 Windows 錯誤相關的典型場景:重新安裝、刪除分割區、意外刪除、惡意軟體攻擊、意外關機等。這使得它們在對系統配置進行深度更改時(例如有時需要進行記憶體啟動或完整性修復)提供了一層額外的安全性。

即便如此,也沒有什麼可以取代 制定一個良好的定期備份計劃,理想情況下,最好有一個本地副本和一個遠端或雲端副本,這樣,任何安全事件或硬體故障都不會導致您的電腦被鎖定,並且沒有簡單的方法恢復多年的工作成果。

公司如何處理黃色記憶體完整性警告

在透過 Intune 或 GPO 管理的環境中 組織機構禁用記憶體完整性保護的情況比較常見,但在核心隔離下,Windows 安全應用中仍然會出現黃色警告圖標,這引起了使用者的懷疑。

問題在於那個警告 它並非總是直接回應於易於操作的簡單登錄值,而是取決於實際的 HVCI 狀態、活動策略以及 WasEnabledBy 值等多種因素的組合。因此,僅僅透過註冊表或策略來停用該功能並不總是能使圖示消失。

一種方法是減弱界面 可以透過強制顯示「由管理員配置」訊息並停用該開關來停用記憶體完整性。這通常是透過修改 WasEnabledBy 並應用來自 Intune 或 GPO 的相應策略來實現,從而使所有電腦都遵循所需的配置。

總之,集中管理 這些警告需要仔細測試,因為配置不當會導致不同機器間行為不一致,或允許某些使用者更改不應更改的設定。最明智的做法是在大規模部署之前,先在試點組中驗證策略、DeviceGuard 值和 HypervisorEnforcedCodeIntegrity 設定的組合。

了解記憶體完整性的工作原理它對 VBS 和虛擬機管理程式的依賴性、硬體要求、驅動程式相容性、涉及的註冊表項以及可用的診斷工具對於充分發揮其性能至關重要,避免因激活錯誤、黃色圖標和藍屏而煩惱;通過良好的規劃、控制驅動程序和策略,並結合備份以及必要時的數據恢復工具,您可以享受一個更強大的 Windows 系統,抵禦穩定性或高級攻擊,而無需犧牲穩定性或高級攻擊,而無需犧牲穩定性或生產力。

如何在 Windows 11-3 中查看 RAM 容量
相關文章:
如何在 Windows 11 中查看 RAM 容量和類型