Random WebRequest Ergebnisse mit PowerShell

Habe ich Folgendes snippet unterhalb von meinem Skript, das mit einem WebRequest zu ping eine Liste der web - /app-Server, und ich bin immer zufällige Ergebnisse, basierend auf den um die gute/schlechte Server sind aufgelistet in der server-Liste.

Zum Beispiel, wenn die schlechte Server (wo ich wieder einen code 404 oder 503), werden zuerst aufgeführt in der Liste ist dann mein Skript scheint, um genau zu berichten. Allerdings, wenn der gute server (der bekommt wieder den status = "OK") zuerst aufgeführt ist dann meine Ergebnisse sind falsch.

Hier ist mein code-snippet:

$ServerList = gc "$pwd\servers\test_servers.lst"
ForEach ($_ in $ServerList)
{   
# Ping web server test
$url = "http://$_.domain.net/logon"
Write-Host "Pinging web address for server: $url ..."
$request = [System.Net.WebRequest]::Create($url)
$response = $request.GetResponse()
If ($response.StatusCode -eq "OK") 
{
    #$True
    Write-Host "Web Ping on $_ Succeeded."
} 
Else 
{
    #$False
    Write-Host "Web Ping on $_ FAILED!!!"
}       
}

Hier ist der Beispiel-Liste:

server1 (reports back a 404)
server2 (reports back a 503)
server3 (gets a status = "OK")

Und hier ist die "genaue" cmd die Ausgabe wenn ich das script ausführen:

C:\TFS\Sandbox>powershell ./temp.ps1

Pinging web address for server: http://server1.domain.net/wfc/logon ...
Exception calling "GetResponse" with "0" argument(s): "The remote server return
ed an error: (404) Not Found."
At C:\TFS\Sandbox\temp.ps1:8 char:34
+     $response = $request.GetResponse <<<< ()
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Web Ping on server1 FAILED!!!

Pinging web address for server: http://server2.domain.net/wfc/logon ...
Exception calling "GetResponse" with "0" argument(s): "The remote server return
ed an error: (503) Server Unavailable."
At C:\TFS\Sandbox\temp.ps1:8 char:34
+     $response = $request.GetResponse <<<< ()
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Web Ping on server2 FAILED!!!

Pinging web address for server: http://server3.domain.net/wfc/logon ...
Web Ping on server3 Succeeded.

Wenn ich jetzt wieder um die server-Liste, wo die guten server zuerst aufgeführt ist, etwa so:

server3 (gets a status = "OK")    
server1 (reports back a 404)
server2 (reports back a 503)

Erhalte ich ungenaue Ergebnisse, wo server 1 und server 2 sind immer gemeldet, OK:

Pinging web address for server: http://server3.domain.net/wfc/logon ...
Web Ping on server3 Succeeded.

Pinging web address for server: http://server1.domain.net/wfc/logon ...
Exception calling "GetResponse" with "0" argument(s): "The remote server return
ed an error: (404) Not Found."
At C:\TFS\Sandbox\temp.ps1:8 char:34
+     $response = $request.GetResponse <<<< ()
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Web Ping on server1 Succeeded.

Pinging web address for server: http://server2.domain.net/wfc/logon ...
Exception calling "GetResponse" with "0" argument(s): "The remote server return
ed an error: (503) Server Unavailable."
At C:\TFS\Sandbox\temp.ps1:8 char:34
+     $response = $request.GetResponse <<<< ()
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Web Ping on server2 Succeeded.

Warum bekomme ich unterschiedliche Ergebnisse, basierend auf, wie die Server aufgelistet sind?

Vielen Dank im Voraus!

InformationsquelleAutor Keith | 2012-02-01

Schreibe einen Kommentar