脚本抓取所有ips而不是一个并将所有它们放入变量

时间:2014-05-08 15:56:36

标签: powershell powershell-v2.0

这是我想要实现的目标。

  • 从列表中读取所有计算机
  • 逐个查看并确定调用请求是否产生" OK"
  • 如果是,请将计算机名称和单词yes放在excel电子表格中。
  • 否则将计算机名称和单词" NO"在第二栏。

而不是脚本抓取servers.txt文件中的每个IP ..它将它们全部放在一起并失败。我在这里错过了什么?如下所示,它只是将所有ips放在$ server变量中。

这是错误。

Invoke-WebRequest : Cannot bind parameter 'Uri'. Cannot convert value "http:// Computer1 Computer2 Computer3:1055" to type "System.Uri". Error: "Invalid URI: The
ERROR: hostname could not be parsed."

代码在

之下
$Computers = Get-Content -Path C:\temp\servers.txt

foreach($计算机中的服务器) {

$reply = Invoke-WebRequest http://$computers":1055" | Select-Object statusdescription

    if ($reply.statusdescription = "OK")
{

        $Sheet1.Cells.Item($intRowSoft, 1) = $server

        $Sheet1.Cells.Item($intRowSoft, 2) = "YES"
    $intRow = $intRow + 1


}

    else {
    $Sheet1.Cells.Item($intRowSoft, 1) = $server

    $Sheet1.Cells.Item($intRowSoft, 2) = "NO"

    $intRow = $intRow + 1
}

}

1 个答案:

答案 0 :(得分:2)

问题是你引用的是$ computers而不是$ server。

$reply = Invoke-WebRequest http://$server":1055" | Select-Object statusdescription