所以我是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版本兼容。
任何帮助表示赞赏
答案 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();
}