'========================================================================== ' ' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.0 ' ' NAME: MOM Console Connection Audit ' ' AUTHOR: Pete Zerger , AKOS Technology Services ' DATE : 04/24/2006 ' ' COMMENT: Measures the number of console connections per-mgmt server ' ' SCRIPT PARAMETERS: MOMDatabaseServer - NetBIOS name of MOM database Server ' ' Script is intended to run against the MOM database server ' ' Adjust the "If strNumberofConsoleConn > 14" string to match your desired ' warning level for MOM console connections ' ' '========================================================================== 'Get the script parameters SQL_DSN = ScriptContext.Parameters.Get("MOMDatabaseServer") 'declare variables Dim cn Dim rs Dim strSQLQuery, strMgmtServer, strNumberOfConsoleConn Dim SQL_DSN 'declare constants (map event types & numbers to friendly names) Const MOM_SCRIPT_EVENT_ID = 5005 Const EVENT_TYPE_SUCCESS = 0 Const EVENT_TYPE_ERROR = 1 Const EVENT_TYPE_WARNING = 2 Const EVENTLOG_INFORMATION_TYPE = 4 Const EVENTLOG_AUDIT_SUCCESS = 8 Const EVENTLOG_AUDIT_FAILURE = 16 Const SCRIPT_FAILURE_EVENT = 91005 InitSQL() getConsoleConns() 'Log an error if script fails If err.number <> 0 Then LogEvent SCRIPT_FAILURE_EVENT,EVENT_TYPE_ERROR,"MOM Admin Script Error: " & vbCrLf & "err.number: " & err.number & vbCrLf & "err.description: " & err.description End If 'clear connection and recordset objects Set cn = Nothing Set rs = Nothing '*********************************************** 'InitSQL() Create connection '*********************************************** Sub InitSQL() Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=OnePoint;Data Source=" & SQL_DSN & "" End Sub '*********************************************** 'Query server for console counts '*********************************************** Sub getConsoleConns() strSQLQuery = "SELECT hostname, program_name, count(*) as ConnCount FROM Master.DBO.sysprocesses WHERE ecid=0 and program_name='Microsoft Operations Manager - DAS Operations Console' GROUP BY hostname,program_name ORDER BY count(*) desc" 'wscript.echo strSQLQuery 'populate the SQL query Set rs = cn.Execute(strSQLQuery) '*********************************************** 'Loop through console connections '*********************************************** While not rs.eof strMgmtServerName = rs("hostname") strNumberOfConsoleConn = rs("ConnCount") 'If console connections hits 15 on 1 mgmt server, fire a warning event If strNumberofConsoleConn > 14 Then CreateEvent MOM_SCRIPT_EVENT_ID ,EVENT_TYPE_WARNING, "High MOM Console Connections", "There are currently " & strNumberOfConsoleConn & " connections on management server " & strMgmtServerName & "." Set objPerfData = ScriptContext.CreatePerfData() 'Populate perfdata objPerfData.ObjectName = "MOM Console Connections" objPerfData.CounterName = "Number of Operator Consoles" objPerfData.InstanceName = strMgmtServerName 'ScriptContext.ManagementServerName objPerfData.SampleLocalTime = Now() objPerfData.SourceComputer = ScriptContext.TargetNetbiosComputer objPerfData.SourceDomain = ScriptContext.TargetNetbiosDomain objPerfData.Value = strNumberOfConsoleConn ScriptContext.Submit(objPerfData) rs.MoveNext Wend End Sub Sub LogEvent(lEventID, lEventType, lEventMessage) Dim oEvent 'On Error Resume Next Set oEvent = ScriptContext.CreateEvent oEvent.EventNumber = lEventID oEvent.EventType = lEventType oEvent.Message = lEventMessage ScriptContext.Submit oEvent Set oEvent = Nothing Set objShell = CreateObject("WScript.Shell") objShell.LogEvent 4, "MOM Script: " & ScriptContext.Name & " MOMEventID: " & lEventID & " MOMEventType: " & lEventType & " MOMEventMsg: " & lEventMessage Set objShell = Nothing End Sub Sub CreateEvent(intEventNumber,intEventType,strEventSource,strEventMessage) Set objEvent = ScriptContext.CreateEvent() objEvent.EventNumber = intEventNumber objEvent.EventType = intEventType objEvent.EventSource = strEventSource objEvent.Message = strEventMessage ScriptContext.Submit objEvent End Sub