共用方式為


拿掉 Windows Defender 應用程控 (WDAC) 原則

注意

Windows Defender 應用程控 (WDAC) 的某些功能僅適用於特定 Windows 版本。 深入了解 Windows Defender 應用控制功能可用性

拿掉 WDAC 原則

您可能會想要移除一或多個 WDAC 原則,或移除您已部署的所有 WDAC 原則。 本文說明移除 WDAC 原則的各種方式。

重要

已簽署的 WDAC 原則

如果您嘗試移除的原則是已簽署的 WDAC 原則,您必須先部署包含選項 6 Enabled:Unsigned System Integrity Policy 的已簽署取代原則。

取代原則必須與它要取代的 PolicyId 相同,以及等於或大於現有原則的版本。 取代原則也必須包含 <UpdatePolicySigners>。

若要生效,此原則必須以您想要取代之原始原則的 UpdatePolicySigners> 區段中<所包含的憑證簽署。

接著,您必須重新啟動計算機,才能停用原則的 UEFI 保護。 無法這樣做會導致開機啟動失敗。

拿掉任何原則之前,您必須先停用用來部署它的方法 (例如組策略或 MDM) 。 否則,原則可能會重新部署至計算機。

若要在移除原則之前讓原則實際上處於非作用中狀態,您可以先將原則取代為包含下列變更的新原則:

  1. 將原則規則取代為 「Allow *」 規則;
  2. 設定選項 3 Enabled:Audit Mode 以將原則變更為僅稽核模式;
  3. 設定選項 11 已停用:腳本強制執行;
  4. 允許所有 COM 物件。 請參閱 允許 WDAC 原則中的 COM 物件註冊;
  5. 如果適用,請移除選項 0 Enabled:UMCI ,只將原則轉換成核心模式。

重要

拿掉原則之後,請重新啟動電腦使其生效。 您無法在未重新啟動裝置的情況下移除 WDAC 原則。

使用 CiTool.exe 移除 WDAC 原則

從 Windows 11 2022 Update 開始,您可以使用 CiTool.exe 移除 WDAC 原則。 從提升許可權的命令視窗中,執行下列命令。 請務必將文字 PolicyId GUID 取代為您想要移除之 WDAC 原則的實際 PolicyId:

    CiTool.exe -rp "{PolicyId GUID}" -json

然後重新啟動電腦。

使用 Intune 等 MDM 解決方案移除 WDAC 原則

您可以使用行動裝置管理 (MDM) 解決方案,例如 Microsoft Intune,使用 ApplicationControl CSP 從用戶端電腦移除 WDAC 原則。

如需使用ApplicationControl CSP的特定資訊,請洽詢您的 MDM 解決方案提供者。

然後重新啟動電腦。

使用腳本移除 WDAC 原則

若要使用腳本移除 WDAC 原則,您的腳本必須從計算機刪除原則檔案 () 。 如 需多個原則格式 (1903+) WDAC 原則,請在下列位置尋找原則檔案。 請務必將 PolicyId GUID 取代為您想要移除之 WDAC 原則的實際 PolicyId。

  • <EFI 系統分割區>\Microsoft\Boot\CiPolicies\Active\{PolicyId GUID}.cip
  • <OS 磁盘區>\Windows\System32\CodeIntegrity\CiPolicies\Active\{PolicyId GUID}.cip

針對 單一原則格式 WDAC 原則,除了上述兩個位置之外,也請尋找名為 SiPolicy.p7b 的檔案,該檔案可能位於下列位置:

  • <EFI 系統分割區>\Microsoft\Boot\SiPolicy.p7b
  • <OS 磁盘區>\Windows\System32\CodeIntegrity\SiPolicy.p7b

然後重新啟動電腦。

刪除單一 WDAC 原則的範例腳本

# Set PolicyId GUID to the PolicyId from your WDAC policy XML
$PolicyId = "{PolicyId GUID}"

# Initialize variables
$SinglePolicyFormatPolicyId = "{A244370E-44C9-4C06-B551-F6016E563076}"
$SinglePolicyFormatFileName = "\SiPolicy.p7b"
$MountPoint =  $env:SystemDrive+"\EFIMount"
$SystemCodeIntegrityFolderRoot = $env:windir+"\System32\CodeIntegrity"
$EFICodeIntegrityFolderRoot = $MountPoint+"\EFI\Microsoft\Boot"
$MultiplePolicyFilePath = "\CiPolicies\Active\"+$PolicyId+".cip"

# Mount the EFI partition
$EFIPartition = (Get-Partition | Where-Object IsSystem).AccessPaths[0]
if (-Not (Test-Path $MountPoint)) { New-Item -Path $MountPoint -Type Directory -Force }
mountvol $MountPoint $EFIPartition

# Check if the PolicyId to be removed is the system reserved GUID for single policy format.
# If so, the policy may exist as both SiPolicy.p7b in the policy path root as well as
# {GUID}.cip in the CiPolicies\Active subdirectory
if ($PolicyId -eq $SinglePolicyFormatPolicyId) {$NumFilesToDelete = 4} else {$NumFilesToDelete = 2}

$Count = 1
while ($Count -le $NumFilesToDelete)
{

    # Set the $PolicyPath to the file to be deleted, if exists
    Switch ($Count)
    {
        1 {$PolicyPath = $SystemCodeIntegrityFolderRoot+$MultiplePolicyFilePath}
        2 {$PolicyPath = $EFICodeIntegrityFolderRoot+$MultiplePolicyFilePath}
        3 {$PolicyPath = $SystemCodeIntegrityFolderRoot+$SinglePolicyFormatFileName}
        4 {$PolicyPath = $EFICodeIntegrityFolderRoot+$SinglePolicyFormatFileName}
    }

    # Delete the policy file from the current $PolicyPath
    Write-Host "Attempting to remove $PolicyPath..." -ForegroundColor Cyan
    if (Test-Path $PolicyPath) {Remove-Item -Path $PolicyPath -Force -ErrorAction Continue}

    $Count = $Count + 1
}

# Dismount the EFI partition
mountvol $MountPoint /D

注意

您必須以系統管理員身分執行腳本,才能移除電腦上的 WDAC 原則。

拿掉導致開機停止失敗的 WDAC 原則

封鎖開機關鍵驅動程式的 WDAC 原則可能會導致開機停止失敗 (發生 BSOD) ,不過您可以在原則中設定選項 10 Enabled:Boot Audit On Failure 來減輕此問題。 此外,已簽署的 WDAC 原則會保護原則,避免系統管理操作和惡意代碼取得系統管理層級的存取權。 基於這個理由,簽署的 WDAC 原則會刻意比不帶正負號的原則更難以移除,即使是系統管理員也是如此。 竄改或移除已簽署的 WDAC 原則會導致 BSOD 發生。

若要移除導致開機停止失敗的原則:

  1. 如果原則是 已簽署的 WDAC 原則,請從 UEFI BIOS 功能關閉安全開機。 如需尋找在 BIOS 功能表中關閉安全開機位置的說明,請洽詢原始設備製造商 (OEM) 。
  2. 存取您電腦上的 [進階開機選項] 功能表,然後選擇 [ 停用驅動程序簽章強制執行] 選項。 如需在啟動期間存取 [進階開機選項] 功能表的指示,請洽詢您的 OEM。 此選項會暫停單一開機會話的所有程式代碼完整性檢查,包括 WDAC。
  3. 正常啟動 Windows 並登入。 然後, 使用腳本移除 WDAC 原則
  4. 如果您在上述步驟 1 中關閉安全開機,且您的磁碟驅動器受到 BitLocker 保護,請 暫停 BitLocker 保護 ,然後從 UEFI BIOS 功能表開啟安全開機。
  5. 重新啟動電腦。

注意

如果您的磁碟驅動器受到 Bitlocker 保護,您可能需要 Bitlocker 修復密鑰來執行上述步驟 1-2。