0

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

$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

谢谢您的帮助。

阿米莉亚

4

1 回答 1

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
于 2012-06-14T02:26:46.953 回答