Powershell - 查询服务器的防火墙列表导出到csv

时间:2012-06-13 12:28:42

标签: powershell-v2.0 firewall export-to-csv comobject

我正在使用以下内容查询服务器列表的防火墙规则。

$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

感谢您的帮助。

无肢

1 个答案:

答案 0 :(得分: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