Search Exchange

Search All Sites

Nagios Live Webinars

Let our experts show you how Nagios can help your organization.

Contact Us

Phone: 1-888-NAGIOS-1
Email: sales@nagios.com

Login

Remember Me

check_win_updates

Rating
0 votes
Favoured:
0
Current Version
1.0
Last Release Date
2018-06-29
Compatible With
  • Nagios 1.x
  • Nagios 2.x
  • Nagios 3.x
  • Nagios 4.x
Twitter Handle
binfalse
License
GPL
Hits
183
Network Monitoring Software - Download Nagios XI
Log Management Software - Nagios Log Server - Download
Netflow Analysis Software - Nagios Network Analyzer - Download
Neat VBscript to check if windows machines require an update (and/or a subsequent reboot). Windows 7 and 10 and others maybe ;-)

Check for Updates

To check for updates, this script creates an update searcher of an Microsoft.Update.Session object and filters for updates, which are
  • assigned to the machine (IsAssigned=1)
  • are not hidden to the users (IsHidden=0)
  • are not yet installed (IsInstalled=0)
In case of matches, it outputs the number of uninstalled updates and list the details as performance data.

Check for Reboot

The check for required reboots is performed using an Microsoft.Update.SystemInfo object.

Installation

The installation of course depends on your infrastructure. For example, if your running your checks using the NSClient++, you may save the script as C:Program FilesNSClient++scriptscheck_win_updates.wsf and then add something like that to your C:Program FilesNSClient++nsclient.ini:
[/settings/external scripts/wrappings]
wsf=cscript.exe //T:40 //NoLogo scripts%SCRIPT% %ARGS%

[/settings/external scripts/wrapped scripts]
check_updates = check_win_updates.wsf
The timeout of 40 is primarily for Windows 7 systems, which actually need a lot of time to search through installed updates... Also make sure that your call of the nrpe tool at the monitoring server waits long enough for the answer! To properly parse the details about pending updates, you may also need to add
[/settings/external scripts/scripts/default]
ignore perfdata = true
This line tells the NSClient++ to not interprete the update details as performance data, and instead just forwards the details.