2016-06-21 14 views
-1

xmlファイルを読み込んでxmlファイルにリストされているサイトにpingを実行し、出力をテキストファイルに出力するスクリプトがあります。それ以外のすべてのサイトの代わりにpingの最後のサイトだけが表示されます。 xmlファイル:出力に情報がありません

<Servers> 
    <Server id="1"> 
     <name>server1</name> 
     <cfusion>www.cnn.com</cfusion> 
     <dotnet>www.msn.com</dotnet> 
    </Server> 
    <Server id="2"> 
     <name>server2</name> 
     <cfusion>www.yahoo.com</cfusion> 
     <dotnet>www.google.com</dotnet> 
    </Server> 
    <Server id="3"> 
     <name>server3</name> 
     <cfusion>www.wwe.com</cfusion> 
     <dotnet>www.nfl.com</dotnet> 
    </Server> 
</Servers> 

スクリプト:

[xml]$servers = Get-Content c:\cfusion.xml 
$collection = $() 

foreach($server in $servers.Servers.Server) { 
    $status = @{ "Cold Fusion" = $server.cfusion; "Dot Net" = $server.dotnet; "Server Name" = $server.name; } 

    if (Test-Connection $server.name -Count 1) { 
     $status["Status"] = "Online" 
    } else { 
     $status["Status"] = "Offline" 
    } 

    if (Test-Connection $server.cfusion -Count 1) { 
     $status["Cold Fusion"] = "Up" 
    } else { 
     $status["Cold Fusion"] = "Down" 
    } 

    if (Test-Connection $server.dotnet -Count 1) { 
     $status["Dot net"] = "Up" 
    } else { 
     $status["Dot Net"] = "Down" 
    } 

    New-Object -TypeName PSObject -Property $status -OutVariable serverstatus | 
     Format-table -Property "Server Name", "Status", "Cold Fusion", "Dot Net" -AutoSize | 
     Out-File c:servstatus.txt 
} 

$collection 
+0

適切なインデントを使用すると、明確にあなたがforeach' 'の各繰り返しでファイルを上書き見ることができます。 – sodawillow

答えて

0

スクリプトは、フォーマット/コピー/ペーストから来るかもしれないいくつかのエラーがあります。 Out-File-Appendパラメータを使用すると、意図したとおりに動作します。

+0

が機能しました。どうもありがとうございました。 –

+0

答えを "受け入れ"としておくと、他のユーザーはこれを未回答の質問と見なして調査しないでしょうか? – TToni

+0

が承認されました。再度、感謝します –

0

は変更してみてください:

out-file c:servstatus.txt 

へ:

out-file c:servstatus.txt -Append 
関連する問題