我的脚本下面有以下片段,它使用WebRequest来ping一个Web/app服务器列表,我根据服务器列表中列出好/坏服务器的顺序得到随机结果.
例如,如果列表中首先列出了错误的服务器(我收回404或503的代码),那么我的脚本似乎准确报告.但是,如果首先列出好的服务器(获取状态="OK"),那么我的结果是不准确的.
这是我的代码片段:
$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!!!"
}
}
Run Code Online (Sandbox Code Playgroud)
这是示例服务器列表:
server1 (reports back a 404)
server2 (reports back a 503)
server3 (gets a status = "OK")
Run Code Online (Sandbox Code Playgroud)
这是我运行脚本时的"准确"cmd输出:
C:\TFS\Sandbox>powershell ./temp.ps1
Pinging web …Run Code Online (Sandbox Code Playgroud)