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 检查给定进程是不是以提升的权限运行

Get-WmiObject 不能在 PowerShell (x86) 但在 PowerShell 上执行

微服务RPC框架选美