2016-09-20 58 views
1

我是PowerShell腳本編寫新手,需要幫助。ping多個服務器並保存爲CSV

我有一個帶有服務器IPadd的txt文件,下面的腳本調用txt文件並在CSVformat中顯示服務器狀態UP/DOWN。我需要的是獲取CSV文件結果角色庫,如果我在txt中添加行控制器並提及IP地址,我會得到Domain Controller - Down和IPAdd的正確狀態。另外我可以提到IPadd或主機名。需要你的幫助,以獲得CSV報告與主機名,IP地址和狀態標題(角色)

腳本:

$Servers = Get-Content D:\test\ServerStatus.txt 
$collection = $() 
foreach ($server in $servers) 

{ 
    $status = @{ "ServerName" = $server} 
    if (Test-Connection -Computername $Server -Count 2 -ea 0 -Quiet) 

    { 
     $status["Results"] = "Up" 
    } 
    else 
    { 
     $status["Results"] = "Down" 
    } 

    New-Object -TypeName PSObject -Property $status -OutVariable serverStatus 
    $collection += $serverStatus 

} 
$collection | Export-Csv -LiteralPath d:\ServerStatus.csv -NoTypeInformation 

回答

3

你必須使用到initalize $collection作爲數組:

$collection = @() 

而不是:

$collection = $()