此脚本完美无缺,直到我将$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
答案 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"