Как создать правила запрета для Applocker с помощью Powershell
При использовании такой команды, как
ls 'C:\Program Files\*.exe' | Get-AppLockerFileInformation | New-AppLockerPolicy -RuleType Path -User everyone -xml -optimize
Я всегда вижу, как он испускает правило "Разрешить" Как я могу создать правило "Запретить" (т.е. Action="Запретить") в генерируемом XML. Документация MSDN ничего не говорит о том, чтобы иметь опцию запрета. Является ли XML игра единственным способом?
1 ответ
Решение
Вы можете изменить объекты правил политики, которые New-AppLockerPolicy
возвращается перед звонком Set-AppLockerPolicy
:
$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 ...