Powershell - запросить список серверов брандмауэра, экспортируемых в csv

Я использую следующее для запроса правил брандмауэра списка серверов.

$servers = Get-Content fw_servers.txt

foreach($serv in $servers) {
$fw = New-Object -ComObject hnetcfg.fwpolicy2 

$fw.rules | 

Where-Object { $_.enabled -and $_.LocalPorts -like 3389 } | 

Select-Object -Property direction,protocol, localports,name 
}

Я хотел бы экспортировать эту информацию в файл csv. Может кто-нибудь, пожалуйста, дайте мне знать, как я могу использовать Export-CSV для этого? Я пытался превратить его в массив, но он не работает для меня. я использую 2.0

Я также хотел бы, чтобы экспортированные данные выглядели следующим образом

Server    Direction   Protocol   LocalPorts    Name
testsrv1  1           6          3389          Remote Desktop (TCP-In)
testsrv2  1           6          3389          Research Remote Desktop Policy

Спасибо за помощь.

Амелия


person user1131196    schedule 13.06.2012    source источник


Ответы (1)


У меня было прозрение, и я как-то понял это. Следующее, хотя и не красивое, работает для меня.

$servers = Import-CSV fw_servers.csv
$servers | Foreach {
$serv = $_.serv
foreach-object { 
       $name = $_."Server"
       $fw = New-Object -ComObject hnetcfg.fwpolicy2 
       $fw.rules | 
       Where-Object { $_.enabled -and $_.LocalPorts -like 3389 } | 

       Select-Object @{Name="Server"; Expression={$name}}, direction, protocol, localports, name 
               }
} | Export-CSV C:\Users\trankaa\desktop\fw_res.csv -NoTypeInformation -Force
person user1131196    schedule 14.06.2012