【发布时间】:2015-12-18 21:25:30
【问题描述】:
我是 PowerShell 新手。我遇到的一个问题是,当我对数百台服务器运行脚本时,其中一些服务器在 PowerShell 命令行中显示 RPC 不可用。
例如,如果我运行脚本:
$list = Get-Content "C:\Users\hostnames.txt"
foreach ($computer in $list) {
Try {
gwmi win32_networkadapterconfiguration -computername $computer -filter "ipenabled = 'true'" | select dnshostname,ipaddress,defaultipgateway,dnsserversearchorder,winsprimaryserver,winssecondaryserver | ft -property * -autosize | out-string -Width 4096 >>dnschgchecks.txt
}
Catch {
"$computer.name failed" >>dnschgchecks.txt
}
}
一些主机在命令行中报告以下内容:
gwmi : RPC 服务器不可用。 (HRESULT 的例外情况: 0x800706BA) 在 C:\Users\dnschgchecks.ps1:4 字符:1 + gwmi win32_networkadapterconfiguration -computername $computer -filter "ipenable ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [Get-WmiObject], COMException + FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
问题是,我无法从数百个主机中分辨出哪些主机未能完成 gwmi 命令。我不想检查日志以找出丢失的条目。那么,如何判断哪些主机失败了?我想我的选择是
- 以某种方式修改脚本?
- 首先使用另一个脚本测试 PowerShell 连接,但如何?
我正在为脚本使用 PowerShell 2 / 4。
【问题讨论】:
标签: powershell connection rpc connectivity