使用脚本部署 WDAC 策略
注意
Windows Defender应用程序控制 (WDAC) 的某些功能仅在特定的 Windows 版本上可用。 详细了解 应用程序控制功能可用性。
本文介绍如何使用脚本部署Windows Defender应用程序控制 (WDAC) 策略。 以下说明使用 PowerShell,但可与任何脚本主机配合使用。
现在应将一个或多个 WDAC 策略转换为二进制格式。 如果没有,请按照部署Windows Defender应用程序控制 (WDAC) 策略中所述的步骤进行操作。
重要提示
由于已知问题,应始终在启用了内存完整性的系统上重新启动后激活新的已签名 WDAC 基本策略。 跳过以下使用 CiTool、RefreshPolicy.exe 或 WMI 启动策略激活的所有步骤。 相反,将策略二进制文件复制到正确的 system32 和 EFI 位置,然后在系统重启时激活策略。
此问题不会影响对系统上已处于活动状态的已签名基本策略的更新、未签名策略的部署或 (已签名或未签名) 的补充策略的部署。 它还不会影响到未运行内存完整性的系统的部署。
为 Windows 11 22H2 及更高版本部署策略
可以使用收件箱 CiTool 通过以下命令在 Windows 11 22H2 上应用策略。 请务必将以下示例中要部署>的策略二进制文件的路径替换为< WDAC 策略二进制文件的实际路径。
# Policy binary files should be named as {GUID}.cip for multiple policy format files (where {GUID} = <PolicyId> from the Policy XML)
$PolicyBinary = "<Path to policy binary file to deploy>"
CiTool --update-policy $PolicyBinary [-json]
为Windows 11、Windows 10版本 1903 及更高版本以及 Windows Server 2022 及更高版本部署策略
若要使用此过程,请下载 WDAC 策略刷新工具 并将其分发到所有托管终结点。 确保 WDAC 策略允许 WDAC 策略刷新工具或使用托管安装程序分发该工具。
初始化脚本要使用的变量。
# Policy binary files should be named as {GUID}.cip for multiple policy format files (where {GUID} = <PolicyId> from the Policy XML) $PolicyBinary = "<Path to policy binary file to deploy>" $DestinationFolder = $env:windir+"\System32\CodeIntegrity\CIPolicies\Active\" $RefreshPolicyTool = "<Path where RefreshPolicy.exe can be found from managed endpoints>"
将Windows Defender应用程序控制 (WDAC) 策略二进制文件复制到目标文件夹。
Copy-Item -Path $PolicyBinary -Destination $DestinationFolder -Force
根据需要重复步骤 1-2 以部署更多 WDAC 策略。
运行 RefreshPolicy.exe 以激活和刷新托管终结点上的所有 WDAC 策略。
& $RefreshPolicyTool
为所有其他版本的 Windows 和 Windows Server 部署策略
使用 WMI 在所有其他版本的 Windows 和 Windows Server 上应用策略。
初始化脚本要使用的变量。
# Policy binary files should be named as SiPolicy.p7b for Windows 10 versions earlier than 1903 $PolicyBinary = "<Path to policy binary file to deploy>" $DestinationBinary = $env:windir+"\System32\CodeIntegrity\SiPolicy.p7b"
将Windows Defender应用程序控制 (WDAC) 策略二进制文件复制到目标。
Copy-Item -Path $PolicyBinary -Destination $DestinationBinary -Force
使用 WMI 刷新和激活 WDAC 策略
Invoke-CimMethod -Namespace root\Microsoft\Windows\CI -ClassName PS_UpdateAndCompareCIPolicy -MethodName Update -Arguments @{FilePath = $DestinationBinary}
部署已签名的策略
如果使用 已签名的 WDAC 策略,则除了前面部分概述的位置外,还必须将这些策略部署到设备的 EFI 分区中。 EFI 分区中不需要存在未签名的 WDAC 策略。
装载 EFI 卷,并在提升的 PowerShell 提示符下创建目录(如果不存在):
$MountPoint = 'C:\EFIMount' $EFIDestinationFolder = "$MountPoint\EFI\Microsoft\Boot\CiPolicies\Active" $EFIPartition = (Get-Partition | Where-Object IsSystem).AccessPaths[0] if (-Not (Test-Path $MountPoint)) { New-Item -Path $MountPoint -Type Directory -Force } mountvol $MountPoint $EFIPartition if (-Not (Test-Path $EFIDestinationFolder)) { New-Item -Path $EFIDestinationFolder -Type Directory -Force }
将签名的策略复制到创建的文件夹:
Copy-Item -Path $PolicyBinary -Destination $EFIDestinationFolder -Force
重新启动系统。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈