Nagios问题-gwmi:RPC服务器不可用

问题描述 投票:0回答:2

我正在为RPC服务器专门针对用PowerShell编写的Nagios脚本而无法使用的问题感到苦恼。

当脚本在本地运行时,它可以正常运行并按预期运行。通过NRPE代理程序调用它并由nscp服务运行时,它将失败,并显示以下错误:

gwmi : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
At C:\Program Files\NSClient++\scripts\check_win_uptime.ps1:30 char:8
+ $wmi = gwmi Win32_OperatingSystem -computer $ServerName
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Get-WmiObject], COMException
+ FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands
.GetWmiObjectCommand

脚本(或相关部分)的胆量是这个:

$wmi = gwmi Win32_OperatingSystem -computer $ServerName
$LBTime = $wmi.ConvertToDateTime($wmi.Lastbootuptime)
[TimeSpan]$uptime = New-TimeSpan $LBTime $(get-date)

没有防火墙正在运行,并且出于测试目的,所有端口都向服务器开放。

任何建议都将不胜感激。

麦克

powershell windows-server-2008 wmi nagios
2个回答
0
投票

RPC服务器不可用几乎总是未在Windows防火墙中启用正确的设置。请参阅我在WMI团队期间为MSDN撰写的这个非常古老的主题,以记录该问题。

Connecting thru Windows Firewall


0
投票

Get-wmiobject-计算机非常挑剔。这对我有用:

$c = get-credential
Get-WmiObject -Class win32_computersystem -ComputerName comp001 -Credential $c 

但是其他形式给出了“ Get-WmiObject:RPC服务器不可用。(来自HRESULT的异常:0x800706BA)”错误:

Get-WmiObject win32_computersystem -ComputerName comp001 -Credential $c 
Get-WmiObject -Class win32_computersystem -ComputerName comp001 # running as same domain user as creds

因此,看起来-Class和-Credential是必需的。

有时只有这样的作品:

Get-WmiObject -ComputerName comp001 -Credential "dom\js" -Query "SELECT * FROM Win32_ComputerSystem"
© www.soinside.com 2019 - 2024. All rights reserved.