Get-ISARules

Кроме резервирования правил иногда бывает полезно делать отчеты по ним, для того чтобы представить начальству, или чтобы самому получше ориентироватся.Точное определение правила в отчете не нужно, достаточно показать основные характеристики и краткое описание.

Эта функция берет на вход объект $isa (isa array, можно получить с помощью Get-IsaArray)

function Get-ISARules($Isa)
{
	$Isa.ArrayPolicy.PolicyRules | 
	?{!$_.system} | 
	select Order, Name, Enabled, 
	@{Name="Rule Type"; Expression={switch($_.type){0 {"Access"}; 1 {"Server Publishing"}; 2 {"Web Publishing"}}}}, 
	@{Name="Action"; Expression={if($_.action -eq 0){"Allow"}else{"Deny"}}}, EnableLogging, Description
}

Используем так:

PS D:\PowerShell> $isa = Get-ISAArray "IsaServ"
PS D:\PowerShell> $rules = Get-ISARules $isa
PS D:\PowerShell> $rules | ConvertTo-Html | Set-Content report.html
PS D:\PowerShell> .\report.html

Или можно просто посмотреть в консоли:

PS D:\PowerShell> $rules | Format-Table -AutoSize

Order Name                                 Enabled Type           Action EnableLogging Description
----- ----                                 ------- ----           ------ ------------- -----------
    1 ALLOW ALL                              False Access         Allow           True Временное правил...
    2 RDP-Temporary                          False Publishing     Allow           True Временное правил...
    3 Allow Remote Management                 True Access         Allow           True Позволяет подклю...
    4 RemoteTS-Test                           True Access         Allow           True Подключение к уд...
    5 DNS query                               True Access         Allow           True Разрешает DNS за...
...

Ну и естественно можно всячески фильтровать и изменять вывод, например:

PS D:\PowerShell> $rules |where {$_.enabled}| Format-Table name, description

Тут лучше поиграться самостоятельно🙂

Опубликовано в ISA, PowerShell, Practice, Scripting. Комментарии к записи Get-ISARules отключены
%d такие блоггеры, как: