'========================================================================== ' NAME: RegValueCheck.vbs ' AUTHORS: Pete Zerger, System Center Forum ' ' DATE : 06/17/2008 ' COMMENT: 'This is script is designed for use in a 2-state monitor in Operations Manager 2007. Its function is to 'verify the value of a user-defined registry key and expected value in the Windows Registry. This example 'Checks the startup type of the Print Spooler service for a value of 2 (automatic). ' 'Script Parameter '================= 'strRegTarget- Registry key to be retrieved 'strRegValue - Expected value of the key '========================================================================== Option Explicit 'On Error Resume Next '================= 'Declare Variables '================= Dim WshShell, RegValue, strRegValue, strRegTarget, ReadRegValue Dim objMOMAPI, objBag, StateDataType '==================================================== '******IMPORTANT: Set the desired registry key and value '==================================================== 'strRegTarget = "HKLM\SYSTEM\CurrentControlSet\Services\Spooler\Start" strRegValue = 2 '================= 'Declare Constants '================= 'Registry-related Constants const HKEY_CURRENT_USER = &H80000001 const HKEY_LOCAL_MACHINE = &H80000002 'OpsMgr Event-related Constants Const EVENT_TYPE_ERROR = 1 Const EVENT_TYPE_WARNING = 2 Const EVENT_TYPE_INFORMATION = 4 '================================= 'Instantiate OpsMgr Scripting Runtime '================================= Set objMOMAPI = CreateObject("MOM.ScriptAPI") Set objBag = objMOMAPI.CreateTypedPropertyBag(StateDataType) '================= 'Script logic '================= On Error Resume Next Set WshShell = WScript.CreateObject("WScript.Shell") ReadRegValue = WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Services\Spooler\Start") wscript.echo ReadRegValue wscript.echo RegValue If Err.number <> 0 Then Wscript.echo Err.Description Call objMOMAPI.LogScriptEvent("RegValueCheck.vbs",4005, EVENT_TYPE_ERROR , Err.Description) Call objBag.AddValue("State","BAD") Call objMOMAPI.Return(objBag) wscript.quit() Else If strRegValue = ReadRegValue Then Call objBag.AddValue("State","GOOD") Call objMOMAPI.Return(objBag) wcript.quit() Else Call objBag.AddValue("State","BAD") Call objMOMAPI.Return(objBag) wcript.quit() End If End If