使用PowerShell通过远程计算机发出请求

问题描述:

我正在寻找一种方法来从远程计算机发出Web请求。在一个网络中共有10台服务器,并且我需要从每台服务器发出Web请求,例如“http://google.com”。所以,我打算使用PowerShell并开始编写脚本。但我不知道该怎么做代表服务器1,服务器的请求.. server10使用PowerShell通过远程计算机发出请求

$hosts = @("server1Ip", "server2Ip", ..,"server10Ip"); 
$url = "http://google.com" 
$hLen = $hosts.Length; 

for ($i=0; $i -lt $hLen; $i++) 
{ 
    try 
    { 
     Write-Host "Pinging web address for server: $url ..." 
     $request = [System.Net.WebRequest]::Create($url) 
     $response = $request.GetResponse() 
     Write-Host "Web Request Succeeded." 
    } catch 
    { 
     Write-Host ("Web Request FAILED!!! The error was '{0}'." -f $_) 
    } finally 
    { 
     if ($response) 
     { 
      $response.Close() 
      Remove-Variable response 
     } 
    } 
} 

使用Invoke-Command和包装你的代码,如sciptblock:

icm -computername $hosts -scriptBlock{ 
try 
    { 
     Write-Host "Pinging web address for server: $url ..." 
     $request = [System.Net.WebRequest]::Create("http://google.com") 
     $response = $request.GetResponse() 
     Write-Host "Web Request Succeeded." 
    } catch 
    { 
     Write-Host ("Web Request FAILED!!! The error was '{0}'." -f $_) 
    } finally 
    { 
     if ($response) 
     { 
      $response.Close() 
      Remove-Variable response 
     } 
    } 
}