一段时间以来我一直在为一个问题而苦苦挣扎...... 基本上,我正在创建一个 PowerShell GUI,它允许我组织中的管理员通过具有用户友好界面的 PowerShell 部署 Windows Defender 应用程序控制 (WDAC) 策略。
我的老板要求我放置一个状态标签,显示策略当前是处于审计模式、强制模式还是禁用(不存在)。我已经弄清楚了禁用的部分,但我想知道如何获取现有的 SIPolicy.p7b 文件并检查规则选项 3(审核模式)?
我原本想看看是否有可能将 SIPolicy 二进制文件转换回 XML,但恐怕这是一个失败的原因。
我的第二个想法是从原始 XML 文件创建 SIPolicy 的临时复制品,一个具有强制模式,一个具有审计模式,并比较文件哈希,但这需要用户最初选择 XML 文件或用于 XML 文件路径在脚本中被硬编码,我强烈希望避免这种情况。
如果有人熟悉 WDAC、二进制文件、PowerShell 等,并且能够提供解决方案或只是一些澄清指导,我将非常感激。
如果这篇文章做得不好,我很抱歉,我以前从来没有在堆栈上发过贴哈哈!
谢谢!
我有很多关于 WDAC、二进制文件和 PowerShell 的资源, 你可以在我的 GitHub 上找到它们:
https://github.com/HotCakeX/Harden-Windows-Security/wiki/Introduction
还有一个模块叫做New-ConfigWDAC
AFAIK,无法从二进制文件中获取 XML 文件,无论是
.cip
还是 .p7b.
在 Windows 11 上,建议仅使用
cip
文件,将策略转换为多种策略格式,输出将是 .cip
.
使用 CITool 进行部署,无需重启。
CITool 还可以列出/更新/删除/刷新策略等。
当您在 Windows 11 22H2 上使用 CITool 列出部署的策略时,它会为您提供有关 policyID、BasepolicyID 等的信息
在 Windows 11 内幕频道上,CITool 为您提供了您正在寻找的准确信息。它向您显示每个部署的策略中包含哪些策略规则选项,该策略是否已签名等等!
顺便说一句,您可以随意从模块中获取任何您需要的东西,并将其合并到您正在制作的 PowerShell GUI 中:)