Как создать правила запрета для 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 ...
Другие вопросы по тегам