달력

2

« 2025/2 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

VBS VBScript SCOM System Center Operations Manager
성능 수집 시간과 OM DB 인서트 시간에 많은 차이가 나는 서버 목록 쿼리

Dim TimeGap, objCN, strConnection, objRS, strSQLQuery
TimeGap = 15

Set objCN = CreateObject("ADODB.Connection")
strConnection = "Driver={SQL Server};Server=.;Trusted_Connection=TRUE"
objCN.Open strConnection
strSQLQuery= "USE OperationsManager"
strSQLQuery= strSQLQuery & " select"
strSQLQuery= strSQLQuery & " vme.path"
strSQLQuery= strSQLQuery & ", max(vpd.TimeAdded) as TimeAdded"
strSQLQuery= strSQLQuery & ", max(vpd.TimeSampled) as TimeSampled"
strSQLQuery= strSQLQuery & ", DATEDIFF(MINUTE, max(vpd.TimeSampled), max(vpd.TimeAdded)) as TimeGap"
strSQLQuery= strSQLQuery & ", Dateadd(HOUR, 9, max(vpd.TimeAdded)) as LocalTimeAdded"
strSQLQuery= strSQLQuery & ", Dateadd(HOUR, 9, max(vpd.TimeSampled)) as LocalTimeSampled"
strSQLQuery= strSQLQuery & " from PerformanceDataInsertView as vpd"
strSQLQuery= strSQLQuery & " join PerformanceCounterView as vpc on vpc.PerformanceSourceInternalId = vpd.PerformanceSourceInternalId"
strSQLQuery= strSQLQuery & " join ManagedEntityGenericView as vme on vme.Id = vpc.ManagedEntityId"
strSQLQuery= strSQLQuery & " where DATEDIFF(MINUTE, vpd.TimeSampled, vpd.TimeAdded) >= " & TimeGap
strSQLQuery= strSQLQuery & " group by vme.path"
objRS=CreateObject("ADODB.Recordset")
Set objRS = objCN.Execute(strSQLQuery)
strMsg = "다음 서버(들)의 성능 수집 시간과 데이터베이스 입력 시간의 차이가 " & TimeGap &"분 이상입니다. 컴퓨터의 시간 설정을 확인해 보시기 바랍니다. "
strServerList = ""
Do Until objRS.EOF
strServerList = strServerList & objRS(0) & "(시간 차: " & objRS(3) & "분), "
objRS.MoveNext
Loop
objRS.Close
objCN.Close
If strServerList <> "" Then
strServerList = Left(strServerList, Len(strServerList)-2)
End If

WScript.Echo strMsg & strServerList

:
Posted by 커널64