Power Shell版本1 http

时间:2015-07-16 07:11:43

标签: powershell

所以我是powershell的初学者并且会感谢一些帮助,我需要做的是能够使用尽可能少的代码将commadns发送到多个设备。到目前为止,我可以使用以下代码一次发送到单个设备

$Body = [byte[]][char[]]'asdf';
$Request = [System.Net.HttpWebRequest]::CreateHttp('http://172.25.183.2/axis-cgi/restart.cgi');
$Request.Method = 'POST';
$Request.Credentials = New-Object Net.NetworkCredential("root", "pass");
$Stream = $Request.GetRequestStream();
$Stream.Write($Body, 0, $Body.Length);
$Request.GetResponse();

所以例如我想发送到与curl类似的多个设备

curl "http://root:pass@10.21.1.(196,197,198,199,200}/axis-cgi/restart.cgi"

以上按预期工作但我需要发送到200多个设备,我还需要能够使用powershell版本1,因此它与Windows 7以后的所有Windows版本兼容。

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:1)

你可以这样做(它会将请求从172.25.183.196发送到172.25.183.200):

(196..200)| foreach{
   $Body = [byte[]][char[]]'asdf';
   $Request = [System.Net.HttpWebRequest]::CreateHttp("http://172.25.183.$_/axis-cgi/restart.cgi");
   $Request.Method = 'POST';
   $Request.Credentials = New-Object Net.NetworkCredential("root", "pass");
   $Stream = $Request.GetRequestStream();
   $Stream.Write($Body, 0, $Body.Length);
   $Request.GetResponse();

}