2016-06-21 2 views
-1

Ich habe das Skript, das die XML-Datei liest und dann pings die Websites in der XML-Datei aufgelistet und Ausgabe in eine Textdatei geht. Das funktioniert großartig, außer es zeigt nur die letzte Seite an, die es pingt, anstatt alle Seiten. XML-Datei:Ausgabe fehlt Informationen

<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> 

Skript:

[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

Mit der richtigen Vertiefung kann man deutlich sehen Sie bei jeder Iteration von 'foreach' die Datei überschrieben werden soll. – sodawillow

Antwort

0

Das Skript hat einige Fehler, die von der Formatierung/Kopieren/Einfügen kommen. Es funktioniert wahrscheinlich wie vorgesehen, wenn Sie den Parameter -Append unter Out-File verwenden.

+0

das hat funktioniert. vielen Dank. –

+0

Würde es Ihnen etwas ausmachen, die Antwort als "akzeptiert" zu markieren, damit andere Benutzer dies nicht als unbeantwortete Frage sehen und untersuchen? – TToni

+0

akzeptiert. Danke noch einmal –

0

Versuchen verändert sich:

out-file c:servstatus.txt 

An:

out-file c:servstatus.txt -Append