无法通过ping服务器来获取远程服务器详细信息:
$servers = Get-Content C:\Users\list.txt
$collection = $()
foreach ($server in $servers)
{
$status = @{ "ServerName" = $server; "TimeStamp" = (Get-Date -f s); "NSLookUp" = (nslookup -a $server) };
if (Test-Connection $server -Count 1 -ea 0 -Quiet)
{
$status["Results"] = "Up"
}
else
{
$status["Results"] = "Down"
}
New-Object -TypeName PSObject -Property $status -OutVariable serverStatus
$collection += $serverStatus
}
$collection | Export-Csv C:\Users\status.csv -NoTypeInformation
无法从此“NSLookUp”获取远程服务器详细信息=(nslookup -a $ server)
任何建议.......伙计们
答案 0 :(得分:0)
我尝试了你的脚本,用out-gridview代替export-csv,它运行了。由于-a参数,我确实看到来自nslookup的错误,但它仍然有效。可能您已配置的DNS服务器不知道您的主机
这是使用FT的输出。我只是在这里展示NSLookup属性,否则很难阅读。
$collection|ft -auto
NSLookUp
--------
{Server: google-public-dns-a.google.com, Address: 8.8.8.8, , Name: google.com...}
{Server: google-public-dns-a.google.com, Address: 8.8.8.8, , Name: ibm.com...}
BTW,我正在使用PS 3.0
编辑:当我使用export-csv时,我看到system.object []。
我想我看到了问题。 .NSLookup成员是一个行数组。您需要将其转换为单个字符串。类似的东西:
$last = $collection.count -1
0..$last | % {$collection[$_].nslookup = -join $collection[$_].nslookup
答案 1 :(得分:0)
更改:
$collection = $()
至$collection = @()
变化:
New-Object -TypeName PSObject -Property $status -OutVariable serverStatus
$collection += $serverStatus
到
$collection += New-Object -TypeName PSObject -Property $status
nslookup -a $server
做什么...这是在命令提示符下运行的吗?
当元素是数组而不是字符串时,在输出中得到system.object []。