删除适用于企业的应用控制策略
注意
适用于企业的 App Control 的某些功能仅适用于特定 Windows 版本。 详细了解 应用控制功能可用性。
删除应用控制策略
在某个时候,你可能想要删除一个或多个应用控制策略,或者删除已部署的所有应用控制策略。 本文介绍删除应用控制策略的各种方法。
重要提示
已签名的基础应用控制策略
如果尝试删除的基本策略是已签名的应用控制策略,则必须先部署包含选项 6 Enabled:Unsigned System Integrity Policy 的已签名替换策略。
替换策略必须与要替换的策略具有相同的 PolicyId,并且版本必须等于或大于现有策略。 替换策略还必须包括 <UpdatePolicySigners>。
若要生效,必须使用要替换的原始策略的 <UpdatePolicySigners> 节中包含的证书对此策略进行签名。
然后,必须重新启动计算机,以便停用策略的 UEFI 保护。 否则将导致启动失败。
可以采用与未签名策略相同的方式删除已签名的补充应用控制策略,而无需遵循上述步骤
在删除任何策略之前,必须先禁用用于 (部署它的方法,例如组策略或 MDM) 。 否则,策略可能会重新部署到计算机。
若要在删除策略之前使策略有效处于非活动状态,可以先将策略替换为包含以下更改的新策略:
- 将策略规则替换为“允许 *”规则;
- 设置选项 3 已启用:审核模式 以将策略更改为仅审核模式;
- 设置选项 11 Disabled:Script Enforcement;
- 允许所有 COM 对象。 请参阅 在应用控制策略中允许 COM 对象注册;
- 如果适用,请删除选项 0 Enabled:UMCI 以仅将策略转换为内核模式。
使用 CiTool.exe 删除应用控制策略
从 Windows 11 2022 更新开始,可以使用 CiTool.exe 删除应用控制策略。 在提升的命令窗口中,运行以下命令。 请务必将文本 PolicyId GUID 替换为要删除的应用控制策略的实际 PolicyId:
CiTool.exe -rp "{PolicyId GUID}" -json
注意
从 Windows 11 2024 更新开始,可以使用 CiTool.exe 删除未签名的策略,而无需重启。 但是,在早期版本的 Windows 中,需要重启才能完成删除过程。
使用 MDM 解决方案(例如Intune)删除应用控制策略
可以使用移动设备管理 (MDM) 解决方案(如 Microsoft Intune)使用 ApplicationControl CSP 从客户端计算机中删除应用控制策略。
有关使用 ApplicationControl CSP 的具体信息,请咨询 MDM 解决方案提供商。
然后重新启动计算机。
使用脚本删除应用控制策略
若要使用脚本删除应用控制策略,脚本必须从计算机中删除策略文件 () 。 对于 (1903+) 应用控制策略的多种策略格式,请在以下位置查找策略文件。 请务必将 PolicyId GUID 替换为要删除的应用控制策略的实际 PolicyId。
- <EFI 系统分区>\Microsoft\Boot\CiPolicies\Active\{PolicyId GUID}.cip
- <OS Volume>\Windows\System32\CodeIntegrity\CiPolicies\Active\{PolicyId GUID}.cip
对于 单策略格式应用控制策略,除了上述两个位置外,还要查找名为 SiPolicy.p7b 的文件,该文件可在以下位置找到:
- <EFI 系统分区>\Microsoft\Boot\SiPolicy.p7b
- <OS Volume>\Windows\System32\CodeIntegrity\SiPolicy.p7b
然后重新启动计算机。
用于删除单个应用控制策略的示例脚本
# Set PolicyId GUID to the PolicyId from your App Control 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
注意
必须以管理员身份运行脚本才能删除计算机上的应用控制策略。
删除导致启动停止失败的应用控制策略
阻止启动关键驱动程序的应用控制策略可能会导致启动停止失败 (BSOD) 发生,但可以通过在策略中设置选项 10 Enabled:Boot Audit On Failure 来缓解这种情况。 此外,已签名的应用控制策略可保护策略免受已获得系统管理级别访问权限的管理操作和恶意软件的侵害。 因此,即使对于管理员来说,签名的应用控制策略也比未签名的策略更难删除。 篡改或删除已签名的应用控制策略将导致发生 BSOD。
删除导致启动停止失败的策略:
- 如果策略是 已签名 的应用控制策略,请从 UEFI BIOS 菜单中关闭安全启动。 有关在 BIOS 菜单中查找关闭安全启动的位置的帮助,请咨询原始设备制造商 (OEM) 。
- 访问计算机上的“高级启动选项”菜单,然后选择 “禁用驱动程序签名强制实施”选项。 有关在启动期间访问“高级启动选项”菜单的说明,请咨询 OEM。 此选项将挂起单个启动会话的所有代码完整性检查,包括应用控制。
- 正常启动 Windows 并登录。 然后, 使用脚本删除应用控制策略。
- 如果在上面的步骤 1 中关闭了安全启动,并且驱动器受 BitLocker 保护, 请暂停 BitLocker 保护 ,然后从 UEFI BIOS 菜单打开安全启动。
- 重新启动计算机。
注意
如果驱动器受 Bitlocker 保护,则可能需要 Bitlocker 恢复密钥来执行上述步骤 1-2。