【发布时间】:2013-05-30 01:40:04
【问题描述】:
我正在努力解决一个问题,即 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)
没有防火墙正在运行,出于测试目的,所有端口都对服务器开放。
非常感谢任何建议。
迈克
【问题讨论】:
-
您是否为 $servername 使用 FQDN? NRPE 代理 rus 具有高权限(以管理员身份运行)?
-
嗨 C.B.,感谢您的 cmets。在这种情况下,它是不在域中的独立服务器。如果我使用我在 Nagios 主机文件中引用的 IP 地址、主机名或别名调用脚本,它们都适用于其他脚本 - 而不是那些涉及 WMI 的脚本。至于以管理员身份运行 NRPE,您能详细说明一下吗?它作为本地服务运行,其他依赖于管理员权限的脚本已经按预期运行。感谢您的帮助。
标签: powershell windows-server-2008 wmi nagios