如何使用 Powershell 为 Applocker 创建拒绝规则
How to Create Deny rules for Applocker using Powershell
使用
等命令时
ls 'C:\Program Files\*.exe' | Get-AppLockerFileInformation | New-AppLockerPolicy -RuleType Path -User everyone -xml -optimize
我总是看到它发出 "Allow" 规则。如何在生成的 xml 中生成 "Deny" 规则(即 Action="Deny")。 MSDN 文档没有说明拒绝选项。 XML 摆弄是唯一的方法吗?
您可以在调用 Set-AppLockerPolicy
之前修改 New-AppLockerPolicy
returns 的策略规则对象:
$Policy = ls 'C:\Program Files\*.exe' | Get-AppLockerFileInformation | New-AppLockerPolicy -RuleType Path -User Everyone -Optimize
foreach($RuleCollection in $Policy.RuleCollections)
{
foreach($Rule in $RuleCollection)
{
$Rule.Action = 'Deny'
}
}
Set-AppLockerPolicy -PolicyObject $Policy -Ldap "<DN to target policy>"
在 PowerShell 4.0 及更新版本中,您也可以使用 ForEach({})
扩展方法:
$Policy = ... | New-AppLockerPolicy
$Policy.RuleCollections.ForEach({ $_.ForEach({ $_.Action = 'Deny' }) })
Set-AppLockerPolicy -PolicyObject $Policy -Ldap ...
使用
等命令时ls 'C:\Program Files\*.exe' | Get-AppLockerFileInformation | New-AppLockerPolicy -RuleType Path -User everyone -xml -optimize
我总是看到它发出 "Allow" 规则。如何在生成的 xml 中生成 "Deny" 规则(即 Action="Deny")。 MSDN 文档没有说明拒绝选项。 XML 摆弄是唯一的方法吗?
您可以在调用 Set-AppLockerPolicy
之前修改 New-AppLockerPolicy
returns 的策略规则对象:
$Policy = ls 'C:\Program Files\*.exe' | Get-AppLockerFileInformation | New-AppLockerPolicy -RuleType Path -User Everyone -Optimize
foreach($RuleCollection in $Policy.RuleCollections)
{
foreach($Rule in $RuleCollection)
{
$Rule.Action = 'Deny'
}
}
Set-AppLockerPolicy -PolicyObject $Policy -Ldap "<DN to target policy>"
在 PowerShell 4.0 及更新版本中,您也可以使用 ForEach({})
扩展方法:
$Policy = ... | New-AppLockerPolicy
$Policy.RuleCollections.ForEach({ $_.ForEach({ $_.Action = 'Deny' }) })
Set-AppLockerPolicy -PolicyObject $Policy -Ldap ...