将Windows Defender应用程序控制 (WDAC) 策略合并

注意

Windows Defender应用程序控制 (WDAC) 的某些功能仅在特定的 Windows 版本上可用。 详细了解Windows Defender应用程序控制功能可用性

本文介绍如何将多个策略 XML 文件合并在一起,以及如何将规则直接合并到策略中。 Windows Defender应用程序控制部署通常包括一些基本策略和针对特定用例的可选补充策略。

注意

在 Windows 版本 1903(包括 Windows Server 2019 及更早版本)之前,系统一次只能有一个Windows Defender应用程序控制策略处于活动状态。 如果需要在运行这些早期版本的 Windows 的系统上使用 WDAC,则必须在部署之前合并所有策略。

将多个 WDAC 策略 XML 文件合并在一起

在许多情况下,你可能希望将两个或更多策略文件合并在一起。 例如,如果使用审核事件创建Windows Defender应用程序控制策略规则,则可以将这些规则与现有 WDAC 基本策略合并。 若要合并本文中引用的两个 WDAC 策略,请在提升的Windows PowerShell会话中完成以下步骤。

  1. 初始化将使用的变量:

    $PolicyName= "Lamna_FullyManagedClients_Audit"
    $LamnaPolicy=$env:userprofile+"\Desktop\"+$PolicyName+".xml"
    $EventsPolicy=$env:userprofile+"\Desktop\EventsPolicy.xml"
    $MergedPolicy=$env:userprofile+"\Desktop\"+$PolicyName+"_Merged.xml"
    
  2. 使用 Merge-CIPolicy 合并两个策略并创建新的Windows Defender应用程序控制策略:

    Merge-CIPolicy -PolicyPaths $LamnaPolicy,$EventsPolicy -OutputFilePath $MergedPolicy
    

    注意

    通过将其他策略添加到用逗号分隔的 -PolicyPaths 参数,可以将其他策略与上述 Merge-CIPolicy 步骤合并。 -OutputFilePath 指定的新策略文件将具有列表中的第一个策略中的策略信息。 例如,在上面的示例中,$MergedPolicy将从 $LamnaPolicy 继承策略类型、ID、名称和版本信息。 若要更改这些值中的任何一个,请使用 Set-CIPolicyIdInfoSet-CIPolicyVersion

将 WDAC 规则直接合并到策略 XML 中

除了合并多个策略 XML 文件外,还可以将使用 New-CIPolicyRule cmdlet 创建的规则直接合并到现有的 WDAC 策略 XML 文件中。 直接合并规则是更新策略的便捷方法,无需创建额外的策略 XML 文件。 例如,若要添加允许 WDAC 向导和 WDAC RefreshPolicy.exe 工具的规则,请执行以下步骤:

  1. 安装 WDAC 向导 打包的 MSIX 应用。

  2. 下载适用于处理器体系结构的 刷新策略工具 ,并将其作为 RefreshPolicy.exe 保存到桌面。

  3. 在 PowerShell 会话中运行以下命令,为 WDAC 向导创建打包的应用允许规则:

    $PackageInfo = Get-AppxPackage -Name Microsoft.WDAC.WDACWizard
    $Rules = New-CIPolicyRule -Package $PackageInfo
    
  4. 为 RefreshPolicy.exe 添加 FilePublisher 规则:

    $Rules += New-CIPolicyRule -DriverFilePath $env:USERPROFILE\Desktop\RefreshPolicy.exe -Level FilePublisher
    
  5. 使用 Merge-CIPolicy 将新规则直接合并到在上一过程的最后一步中创建的 MergedPolicy 文件中:

    Merge-CIPolicy -PolicyPaths $MergedPolicy -OutputFilePath $MergedPolicy -Rules $Rules
    

将合并的策略转换为托管终结点并将其部署到托管终结点

拥有新的合并策略后,可以转换策略二进制文件并将其部署到托管终结点。

  1. 使用 ConvertFrom-CIPolicy,将 WDAC 策略转换为二进制格式:

    $WDACPolicyBin=$env:userprofile+"\Desktop\"+$PolicyName+"_{InsertPolicyID}.bin"
    ConvertFrom-CIPolicy -XMLFilePath $MergedPolicy -BinaryFilePath $WDACPolicyBin
    

    注意

    在上面的示例命令中,对于面向 Windows 10 版本 1903+ 或 Windows 11 的策略,请将字符串“{InsertPolicyID}”替换为在策略 XML 文件中找到的实际 PolicyID GUID (包括大括号 { }) 。 对于 1903 之前的Windows 10版本,请使用名称 SiPolicy.p7b 为二进制文件名。

  2. 将合并的策略 XML 和关联的二进制文件上传到用于Windows Defender应用程序控制策略的源代码管理解决方案。 例如 GitHub 或文档管理解决方案,例如 Office 365 SharePoint

  3. 使用首选部署解决方案部署合并的策略。 请参阅部署Windows Defender应用程序控制 (WDAC) 策略