monitors:winupd

no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


monitors:winupd [2009/11/23 06:12] (current) – created - external edit 127.0.0.1
Line 1: Line 1:
 +====== Windows Update Check  ======
 +
 +^ Author | [[ plennon@automated-knowledge.com | Padraig Lennon ]] |
 +^ Compatibility | Xymon 4.2+ |
 +^ Requirements | Windows Update API (Should be installed by default) |
 +^ Download | winupd.vbs |
 +^ Last Update | 2009-06-26 |
 +
 +===== Description =====
 +Simple check to see if there are any pending reboot required to finish applying system updates (patches)
 + 
 +===== Installation =====
 +Copy the code below to a file called **winupd.vbs** in the **BBWIN_HOME/ext folder**
 +
 +Add the following to bbwin.cfg in the **<externals>** section
 +<code>
 + <load value="cscript //B ..\ext\winupd.vbs" timer="120s" /> 
 +</code>
 +
 +=== Client side ===
 +
 +=== Server side ===
 +
 +===== Source =====
 +==== winupd.vbs ====
 +<hidden onHidden="Show Code ⇲" onVisible="Hide Code ⇱">
 +<code>
 +'==========================================================================
 +' NAME: Windows Update Check
 +' COMMENT: Simple Check for Pending Reboots to finish applying updates
 +' AUTHOR: Padraig Lennon 
 +' EMAIL: padraig.lennon@pioneerinvestments.com
 +' HISTORY
 +' VERSION : 1.00 25/06/2009 Initial Development
 +' Requires :  No Requirements at present
 +'==========================================================================
 + 
 +On Error Resume Next
 + 
 +Dim objShell
 +Dim typelib,ServerName,boolValid
 +Dim strLayout,strSize,strLine,intStart,strFail,strCmd
 + 
 +' Set Variables and get the Server Name
 +Set objShell = WScript.CreateObject("WScript.Shell")
 +
 + 
 +ServerName = objShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
 + 
 +' User definable section
 + 
 +strTestName = "winupd" ' Change this to what you want the test column to be.
 + 
 +strAlarmState = "green"
 +strOutput   = ""
 +
 +Set oShell = WScript.CreateObject("WScript.Shell")
 +' Check to see If used with BBWin or Big Brother client and set extPath.
 +extPath = oShell.RegRead("HKLM\SOFTWARE\BBWin\tmpPath")
 +If extPath = "" Then
 + extPath = oShell.RegRead("HKLM\SOFTWARE\Quest Software\BigBrother\bbnt\ExternalPath\")
 +End If
 +
 +
 +' ========================================
 +' Main Code Starts Here
 + 
 +strOutput = strOutput & vbcrlf & "<h2>Windows Update Check</h2>" & vbcrlf 
 +
 +Set objSysInfo = CreateObject("Microsoft.Update.SystemInfo")
 +
 +If objSysInfo.RebootRequired Then
 + strAlarmState = "red"
 + strOutput = strOutput & vbcrlf & "&" & strAlarmState & " Reboot Required to finish applying updates" & vbcrlf & vbcrlf
 +Else
 + strAlarmState = "green"
 + strOutput = strOutput & vbcrlf & "&" & strAlarmState & " All updates applied. NO reboot required" & vbcrlf & vbcrlf
 +End If
 +
 +
 +' Write the file for BB
 +WriteFile extPath, strTestName, strAlarmState, strOutput
 + 
 +'===========================================================
 +' FUNCTIONS and SUBS start here
 + 
 +' This SUB is used for outputting the file to the external's directory in bbwin
 +SUB WriteFile(strExtPath, strTestName, strAlarmState, strOutput)
 +    Set fso = CreateObject("Scripting.FileSystemObject")
 +    strOutput = strAlarmState & " " & Date & " " & LCase(Time) & " " & LCase(ServerName) & vbcrlf & strOutput & vbcrlf
 +    Set f = fso.OpenTextFile(strExtPath & "\" & strTestName , 8 , TRUE)
 +    f.Write strOutput
 +    f.Close
 +    Set fso = Nothing
 +END Sub
 +</code>
 +</hidden>
 +
 +===== Known  Bugs and Issues =====
 +None known at present
 +
 +===== To Do =====
 +  * Enhance to check for outstanding critical updates not applied
 +  * Allow configurable thresholds for outstanding patches before alerting
 +
 +===== Credits =====
 +
 +===== Changelog =====
 +
 +  * **2009-06-26**
 +    * Initial release
  
  • monitors/winupd.txt
  • Last modified: 2009/11/23 06:12
  • by 127.0.0.1