2017-02-27 11 views
0

ログをtxtファイルに直接保存するのに役立つ必要があります。私は私たちのサーバーとコンピュータの簡単な監視スクリプトを作った。基本的には、オンラインかオフラインかを知る必要がありますが、出力が何であれ、直接ログを保存する必要があります。Powershellのリアルタイム出力をtxtファイルに保存するには?監視スクリプト

While ($true) { 
    $ServerName = Get-Content "E:\ServerList.txt" 
    foreach ($Server in $ServerName) { 
     if (test-Connection -ComputerName $Server -Count 3 -quiet) { 
      Write-Host "$Server is Online " -ForegroundColor Green ;(Get-Date).toString("yyyy/MM/dd HH:mm:ss") 
     } else { 
      Write-Host "$Server - is Offline " -ForegroundColor Red ;(Get-Date).toString("yyyy/MM/dd HH:mm:ss") 
     } 
    } 

どうすれば改善できますか?

+0

だから問題は何ですか?ログファイルに書き込む方法は? – vonPryz

+0

はい、出力をリアルタイムでtxtファイルに直接保存するだけです。基本的に出力ファイルはログファイルのように直接テキストファイルに保存されます。あなたはpls助けることができますtnx –

答えて

1

あなたはロギング用.txtファイルにデータを保存するために-APPENDスイッチでアウトファイルコマンドレットを使用することができます。あなたは、両方を持つことになります。この例では

、コンソールと、あまりにもファイルへの情報出力:

$LogFile = 'C:\log.txt' 
While ($true) { 
    $ServerName = Get-Content "E:\ServerList.txt" 
    foreach ($Server in $ServerName) { 
     if (test-Connection -ComputerName $Server -Count 3 -quiet) { 
      Write-Host "$Server is Online " -ForegroundColor Green ;(Get-Date).toString("yyyy/MM/dd HH:mm:ss") 
      "{0}`t{1} is Online " -f (Get-Date).toString("yyyy/MM/dd HH:mm:ss"),$Server | Out-File $LogFile -Append -Force 
     } else { 
      Write-Host "$Server - is Offline " -ForegroundColor Red ;(Get-Date).toString("yyyy/MM/dd HH:mm:ss") 
      "{0}`t{1} is Offline " -f (Get-Date).toString("yyyy/MM/dd HH:mm:ss"),$Server | Out-File $LogFile -Append -Force 
     } 
    } 
} 
+0

驚くべき、これは何を探しています。あなたはこの行 "{0}' t {1} "を私に説明してください。このpowershellのことは初めてです、そして、私はこことヘルプメニューから学びます。 xD –

+0

変数を表示する場所マーカーとして文字列に{0} {1}などを置き、すぐに-f演算子で文字列をたどり、最後にカンマ区切り変数のリストを使用して場所マーカー。あなたは私の答えを答えにすることができるので、他の誰かが同様の憶測をするのに役立ちます。 :-) –

+0

Mr. Kirill Pashkovありがとう。助けを感謝します! :-) –

関連する問題