Nagios 在 Windows Server 2008+ 上检查 wuauserv

Nagios 在 Windows Server 2008+ 上检查 wuauserv

从 Windows Server 2008 开始,wuauserv 不再是一直运行的服务,而是作为计划任务运行。我不确定计划任务的具体创建方式,因为计划似乎是由另一个服务生成和编辑的。在此之前,我们设置了 nagios 来检查正在运行的服务,以确保它正在接受更新。

我的问题是,如何利用 nagios 来跟踪 Windows Server 2008+ 中 wuauserv 服务的正确执行/运行,以确保它正在接受更新?

答案1

看起来有很多插件Nagios 交易所检查可用的更新--例如,这个. 我用过这个我相信在过去是这样。不过,这并不是您要问的确切问题;您问的是是否存在更新,而您问的是系统是否正在检查更新。

更接近您所寻找的是类似以下 PowerShell 脚本的内容:

$lastcheck = Get-ItemProperty -Path Registry::"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Detect" 

$lastdate=[datetime]$lastcheck.LastSuccessTime
$currdate = (Get-Date)
$status = new-timespan -start $lastdate -end $currdate


If ($status.days -eq 0 -and $lastcheck.LastError -eq 0) {
    Write-Host "OK:  Wuauserv last ran $lastdate."
    $exitcode = $status.Days
}
elseif ($status.days -eq 1 -and $lastcheck.LastError -eq 0) {
    Write-Host "WARNING:  Wuauserv last ran $lastdate."
    $exitcode = $status.Days
} else {
    Write-Host "CRITICAL:  Wuauserv last ran $lastdate."
    $exitcode = 2
}
exit $exitcode

(您需要检查日期是否在过去 24 小时内(默认间隔为 22 小时)并且最后的错误是否为 0。)

相关内容