2014-02-25 29 views
0

兩個問題,我想這運行連續型平給我的輸出

我想constaint平到兩臺服務器,並輸出到.csv文件。 下面的腳本只運行兩次,輸出不起作用。我是一個強大的新手,所以請放輕鬆。

$servers = "server1","server2" 
$collection = $() 
foreach ($server in $servers) 
{ 
$status = @{ "ServerName" = $server; "TimeStamp" = (Get-Date -f s) } 
if (Test-Connection $server -Count 1 -ea 0 -Quiet) 
{ 
    $status["Results"] = "Up"  
} 
else 
{ 
    $status["Results"] = "Down" 
} 
New-Object -TypeName PSObject -Property $status -OutVariable serverStatus 
$collection += $serverStatus 
}  
$collection | Export-Csv -LiteralPath .\ServerStatus.csv -NoTypeInformation 
+0

爲什麼你在第一時間這樣做呢?可能有更合適的解決方案根本不使用PowerShell。 – alroc

+0

我有兩個網站有丟包。這個想法是要找出丟包發生的時間,然後嘗試關聯網絡上發生的其他事情。 – user770022

+0

您應該使用專用的網絡監控工具,如Nagios,Paessler等。它專爲此類用途而設計。不要重複別人已經做得很好的工作。 – alroc

回答

1

輸出正常工作。只要運行該腳本,然後Invoke-Item ServerStatus.csv

如果你希望它永遠運行只是包裝在一個while循環,整個事情:

$servers = "server1","server2" 
$collection = $() 
while(1) { 
    foreach ($server in $servers) 
    { 
     ... 
    }  
    $collection | Export-Csv -LiteralPath .\ServerStatus.csv -NoTypeInformation 
} 
+0

我希望這個運行,直到我有一個用戶報告的問題,並將其導出到.csv文件。問題是隻輸出最後一行。有任何想法嗎? – user770022

+0

您必須更改while循環條件以檢測用戶何時報告問題。這不僅僅是輸出最後一行,如果你將collection聲明爲一個數組並且繼續使用+ =就像你之前所有的信息都會在csv中 – Cole9350

相關問題