You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需参考文件,利用发布者与SHA256哈希值创建WDAC规则?

无实际文件时创建WDAC允许规则的方法

1. 手动创建哈希规则(最精准)

从事件日志提取目标文件的SHA256哈希值后,直接用PowerShell命令生成规则,无需本地文件:

# 创建单个哈希规则
$hashRule = New-CIPolicyRule -Hash "提取到的SHA256哈希字符串" -FriendlyName "允许[程序名称]运行"

# 将规则添加到现有WDAC策略XML
Add-CIPolicyRule -PolicyFilePath ".\现有策略文件.xml" -Rule $hashRule

# 转换XML为可部署的二进制策略文件
ConvertFrom-CIPolicy -XmlFilePath ".\现有策略文件.xml" -BinaryFilePath ".\更新后的策略.bin"

哈希规则对所有文件格式(EXE、MSI、DLL、MSP等)都适用,且不会被文件名/路径变更影响。

2. 手动构建发布者规则(需完整证书链信息)

如果事件日志中能提取到完整的发布者证书链信息(如发布者CN、产品名称、证书序列号等),可以直接构造发布者规则:

# 示例:基于发布者+产品名创建规则
$publisherRule = New-CIPolicyRule -Publisher "CN=发布者名称" -ProductName "目标产品名" -FileVersionRange "*" -FriendlyName "允许[发布者]的[产品]系列程序"

# 添加到策略并转换部署
Add-CIPolicyRule -PolicyFilePath ".\现有策略文件.xml" -Rule $publisherRule
ConvertFrom-CIPolicy -XmlFilePath ".\现有策略文件.xml" -BinaryFilePath ".\更新后的策略.bin"

这种规则允许同一发布者签名的同系列程序运行,无需逐个添加哈希,适合频繁更新的软件。

3. 批量处理拦截事件生成规则

如果有多个需授权的拦截事件,可通过PowerShell解析事件日志批量生成规则:

# 筛选已审核通过的WDAC拦截事件(事件ID 1001)
$approvedEvents = Get-WinEvent -LogName "Microsoft-Windows-Windows Defender Application Control/Operational" -FilterXPath "*[System[EventID=1001]]" | Where-Object { $_.Properties[1].Value -eq "已审核通过的程序名称" }

# 批量生成哈希规则并添加到策略
foreach ($event in $approvedEvents) {
    $targetHash = $event.Properties[2].Value
    $ruleName = "允许被拦截程序: $($event.Properties[1].Value)"
    $newRule = New-CIPolicyRule -Hash $targetHash -FriendlyName $ruleName
    Add-CIPolicyRule -PolicyFilePath ".\现有策略文件.xml" -Rule $newRule
}

# 转换为二进制策略
ConvertFrom-CIPolicy -XmlFilePath ".\现有策略文件.xml" -BinaryFilePath ".\批量更新后的策略.bin"

注意提前过滤事件,只保留已审核通过的条目,避免误加未授权程序。

关键注意事项

  • 哈希规则:程序更新后SHA256值会变化,需重新添加新哈希规则。
  • 发布者规则:必须确保事件日志中提取的证书链信息完整准确,否则规则会失效。
  • 策略部署:更新后的二进制策略文件需通过MDM、组策略或本地脚本推送到远程笔记本。

内容的提问来源于stack exchange,提问作者Evan01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 17:48:09