【发布时间】:2020-09-24 09:33:50
【问题描述】:
我正在寻求有关脚本的帮助,该脚本将读取包含服务器名称的文本文件并解析 IP 地址并将其导出到 csv 文件中。我为此使用 powershell 和 Test-Connection 命令。请参阅下面的代码 - 我收到错误 - 命令管道位置 1 的 cmdlet ForEach-Object 提供以下参数的值:Process[0]:
(删除了我的用户名并换成了 ***)
$array=@()
$computer=Get-Content -Path c:\Users\****\Desktop\ping_IP_host\computers.txt
ForEach ($server in $computer){
if(Test-Connection $server -Quiet)
{
try {
$IP=
[System.net.dns]::GetHostEntry($server).AddressList | %
{$_.IpAddressTostring}
}
catch {"Invalid HostName" - $server}
$obj = New-Object PSObject -Property @{
Hostname=$server
IP=$IP
}
$array += $obj
else {
$IP="Invalid Host"
}
$obj = New-Object PSObject -Property @{
Hostname=$server
IP=$IP
}
$array += $obj
}
}
$array | Export-Csv C:\Users\****\Desktop\ping_IP_host\results.csv
【问题讨论】:
-
如果您缩进代码并正确设置括号,您可能会发现错误。因为现在是
else块在if块完成之前出现,并且结束括号太多。 -
感谢缩进提醒 - 设法识别错误:)
标签: powershell