脚本工作正常,直到我使用变量作为服务器名称

时间:2014-10-28 17:36:04

标签: powershell

此脚本完美无缺,直到我将$Server作为计算机名称而不是实际的计算机名称。请指教。我得到的错误是ERROR: Exception calling "DownloadFile" with "2" argument(s): "URI formats are not supported."

$Servers = Get-Content -Path C:\temp\servers.txt

foreach ($Server in $Servers)
{
  $web = New-Object System.Net.WebClient
  $web.DownloadFile("http://$server:1055/sinfo?gr=1","c:\temp\Test.xml")

  [xml] $xdoc = Get-Content c:\Temp\test.xml
  $properties = @{
    Serialnumber = $xdoc.sinfo.systeminfo.bios.SerialNumber;
           Model = $xdoc.sinfo.systeminfo.sys.Model;
    Manufacturer = $xdoc.sinfo.systeminfo.sys.Manufacturer;
    ComputerName = $xdoc.sinfo.systeminfo.sys.Name;
          Domain = $xdoc.sinfo.systeminfo.sys.Domain;
  }
}

$obj = new-object psobject -property $properties 
$obj | Select-Object model, manufacturer, ComputerName, domain, SerialNumber | export-csv c:\temp\results.csv -NoTypeInformation -Append

1 个答案:

答案 0 :(得分:1)

冒号是PowerShell中的scope operator。您的脚本正在查找变量$server:1055,这意味着它正在$1055的范围或命名空间中查找server

尝试:

"http://$server`:1055/sinfo?gr=1"

或者:

"http://$($server):1055/sinfo?gr=1"

或者:

"http://${server}:1055/sinfo?gr=1"