Get-WmiObject : RPC 服务器不可用。 (HRESULT 异常:0x80070 6BA
Posted
技术标签:
【中文标题】Get-WmiObject : RPC 服务器不可用。 (HRESULT 异常:0x80070 6BA【英文标题】:Get-WmiObject : The RPC server is unavailable. (Exception from HRESULT: 0x80070 6BA 【发布时间】:2012-09-27 21:37:11 【问题描述】:我有一个简单的脚本,它将连接到域中的所有服务器,并为每个服务器上运行的所有服务构建一个表。但是,当我尝试自动化脚本以获取 foreach 循环中的所有服务器时,我收到一个 RPC 错误。如果 $name 变量被替换为服务器 DNS 名称,一切都会按预期工作。我检查了我的系统 (win7) 和服务器 (2000 - 2008R2) 上的防火墙和 DCOM 服务,这些都已正确启用或禁用。所以,我在想剧本中的某些东西坏了。我仍在学习 powershell,所以任何提示都值得赞赏。
这是目前为止的脚本。 $servernames = get-adobject -Filter 'ObjectClass -eq "Computer" ' -Searchbase "OU=Servers,DC=E,DC=BENEFIS,DC=ORG"
foreach ($name in $servernames)
Get-WMIObject win32_service -computername $name -Property SystemName,Name,StartName,StartMode |
Format-table SystemName, Name, Startname >c:\serverservices.txt
【问题讨论】:
定义“适当启用或禁用”。 【参考方案1】:您返回的每个对象都有一个 name 属性,因此您需要将其值传递给 ComputerName 参数。另外,要获取计算机对象使用Get-ADComputer
cmdlet,您还需要在导出到文件时指定附加开关,否则内容将被覆盖,最终您将看到的只是最后一台计算机的输出。
$servernames = Get-ADComputer -SearchBase "OU=Servers,DC=E,DC=BENEFIS,DC=ORG" -Filter *
foreach ($name in $servernames)
Get-WMIObject win32_service -computername $name.Name -Property SystemName,Name,StartName,StartMode |
Format-table SystemName, Name, Startname | Out-File c:\serverservices.txt -Append
【讨论】:
好奇——为什么'Get-ADComputer'选项被指定了两次?以上是关于Get-WmiObject : RPC 服务器不可用。 (HRESULT 异常:0x80070 6BA的主要内容,如果未能解决你的问题,请参考以下文章
Powershell - 调用远程 WMI 对象 - RPC 错误 HRESULT:0x800706BA(RPC 服务器不可用)
Get-WmiObject:“未找到提供程序”(0x80041013)
如何使用 Get-WmiObject 返回最新版本的 java
使用 powershell 和 Get-WmiObject 检查给定进程是不是以提升的权限运行