2016-02-03 11 views
0

При использовании команды, такие какКак создать Запретить правила AppLocker с помощью Powershell

ls 'C:\Program Files\*.exe' | Get-AppLockerFileInformation | New-AppLockerPolicy -RuleType Path -User everyone -xml -optimize 

Я всегда вижу, что испускают «Разрешить» правила. Как я могу сгенерировать правило «Запретить» (например, Action = «Deny») в 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 ... 
+0

Я попытался это раньше, но я не думаю, что свойство Action можно настроить. В вашем скрипте попробуйте '$ policy.RuleCollections [0] .Action =" Deny "', а затем напечатайте '$ policy.RuleCollections [0]' –

+0

Неплохо. Ты прав!! Я не видел, что это была двойная коллекция (RuleCollections & RuleCollection), и поэтому я ошибался. –

+0

кстати. вы можете удалить -xml из своего скрипта. –