Dim oAPI, oDiscoveryData, oInst
Set oAPI = CreateObject("MOM.ScriptAPI")
set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceId, ManagedEntityId)
' Create/Open a log file for writing error logs
If LogLevel <> 0 Then
Dim tfolder, fileSize
Dim strFileName, strOutFile
strFileName = "Dell-Connections-MP-Errors.log"
Const ForAppending = 8
Const ForWriting = 2
Const MaxFileSize = 524288 'File Size is limited to 512 KB
Set objLogFSO = CreateObject("Scripting.FileSystemObject")
tfolder = "C:\Temp"
If Not objLogFSO.FolderExists(tfolder) Then
objLogFSO.CreateFolder(tfolder)
End If
strOutFile = tfolder &"\"& strFileName
Set objLogTextFile = objLogFSO.OpentextFile(strOutFile, ForAppending, True)
fileSize = objLogFSO.GetFile(strOutFile).Size
If (fileSize > MaxFileSize) Then
objLogTextFile.Close
Set objLogTextFile = objLogFSO.OpentextFile(strOutFile, ForWriting, True)
End If
LogMessage = Now & ", Dell Server OM Services Discovery"
MOMDebugLog 1, LogMessage
Err.Clear
End If
serviceType = getOMServices()
If serviceType=1 Then
set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='Dell.WindowsServer.OMServices']$")
call oInst.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", TargetComputer)
call oInst.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.LogicalDevice']/DeviceID$", TargetComputer)
call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "OpenManage Services")
call oDiscoveryData.AddInstance(oInst)
End If
' Submit the data
Call oAPI.Return(oDiscoveryData)
Set oDiscoveryData = Nothing
Set oAPI = Nothing
' Close file used for logs
If LogLevel <> 0 Then
objLogTextFile.Close
Set objLogTextFile = Nothing
Set objLogFSO = Nothing
End If
Function getOMServices()
On Error Resume Next
Dim strComputer, WbemServices, wbemObjectSet, wbemObject, sQuery, flag
strComputer="."
flag = 0
Set WbemServices = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
If IsEmpty(WbemServices) Or (Err.Number <> 0) Then
LogMessage = "Unable to open WMI Namespace root-cimv2. Check to see if the WMI service is enabled and running, and ensure this WMI namespace exists." & Err.Description
MOMDebugLog 1, LogMessage
Else
sQuery = "SELECT * FROM Win32_Service WHERE Name = 'omsad'"
Set wbemObjectSet = wbemServices.ExecQuery(sQuery)
If IsEmpty(wbemObjectSet) Or Err.Number <> 0 Then
LogMessage = "The Query '" & sQuery & "' returned an invalid result set. Please check to see if this is a valid WMI Query." & Err.Description
MOMDebugLog 1, LogMessage
Err.Clear
Else
For Each wbemObject In wbemObjectSet
If Err.Number <> 0 Then
ErrorMessage = "Win32_Service SubObjectQuery Error Number:" & Err.Number & "Description:" & Err.Description
MOMDebugLog 1, ErrorMessage
Err.Clear
Else
flag = 1
End If
Next
End If
Set wbemObjectSet = Nothing
sQuery = "SELECT * FROM Win32_Service WHERE Name = 'Server Administrator'"
Set wbemObjectSet = wbemServices.ExecQuery(sQuery)
If IsEmpty(wbemObjectSet) Or Err.Number <> 0 Then
ErrorMessage = "The Query '" & sQuery & "' returned an invalid result set. Please check to see if this is a valid WMI Query." & Err.Description
MOMDebugLog 1, ErrorMessage
Err.Clear
Else
For Each wbemObject In wbemObjectSet
If Err.Number <> 0 Then
ErrorMessage = "Win32_Service SubObjectQuery Error Number:" & Err.Number & "Description:" & Err.Description
MOMDebugLog 1, ErrorMessage
Err.Clear
Else
flag = 1
End If
Next
End If
Set wbemObjectSet = Nothing
sQuery = "SELECT * FROM Win32_Service WHERE Name = 'dcstor32'"
Set wbemObjectSet = wbemServices.ExecQuery(sQuery)
If IsEmpty(wbemObjectSet) Or Err.Number <> 0 Then
ErrorMessage = "The Query '" & sQuery & "' returned an invalid result set. Please check to see if this is a valid WMI Query." & Err.Description
MOMDebugLog 1, ErrorMessage
Err.Clear
Else
For Each wbemObject In wbemObjectSet
If Err.Number <> 0 Then
ErrorMessage = "Win32_Service SubObjectQuery Error Number:" & Err.Number & "Description:" & Err.Description
MOMDebugLog 1, ErrorMessage
Err.Clear
Else
flag = 1
End If
Next
End If
Set wbemObjectSet = Nothing
sQuery = "SELECT * FROM Win32_Service WHERE Name = 'dcevt32'"
Set wbemObjectSet = wbemServices.ExecQuery(sQuery)
If IsEmpty(wbemObjectSet) Or Err.Number <> 0 Then
ErrorMessage = "The Query '" & sQuery & "' returned an invalid result set. Please check to see if this is a valid WMI Query." & Err.Description
MOMDebugLog 1, ErrorMessage
Err.Clear
Else
For Each wbemObject In wbemObjectSet
If Err.Number <> 0 Then
ErrorMessage = "Win32_Service SubObjectQuery Error Number:" & Err.Number & "Description:" & Err.Description
MOMDebugLog 1, ErrorMessage
Err.Clear
Else
flag = 1
End If
Next
End If
sQuery = "SELECT * FROM Win32_Service WHERE Name = 'dcstor64'"
Set wbemObjectSet = wbemServices.ExecQuery(sQuery)
If IsEmpty(wbemObjectSet) Or Err.Number <> 0 Then
ErrorMessage = "The Query '" & sQuery & "' returned an invalid result set. Please check to see if this is a valid WMI Query." & Err.Description
MOMDebugLog 1, ErrorMessage
Err.Clear
Else
For Each wbemObject In wbemObjectSet
If Err.Number <> 0 Then
ErrorMessage = "Win32_Service SubObjectQuery Error Number:" & Err.Number & "Description:" & Err.Description
MOMDebugLog 1, ErrorMessage
Err.Clear
Else
flag = 1
End If
Next
End If
Set wbemObjectSet = Nothing
sQuery = "SELECT * FROM Win32_Service WHERE Name = 'dcevt64'"
Set wbemObjectSet = wbemServices.ExecQuery(sQuery)
If IsEmpty(wbemObjectSet) Or Err.Number <> 0 Then
ErrorMessage = "The Query '" & sQuery & "' returned an invalid result set. Please check to see if this is a valid WMI Query." & Err.Description
MOMDebugLog 1, ErrorMessage
Err.Clear
Else
For Each wbemObject In wbemObjectSet
If Err.Number <> 0 Then
ErrorMessage = "Win32_Service SubObjectQuery Error Number:" & Err.Number & "Description:" & Err.Description
MOMDebugLog 1, ErrorMessage
Err.Clear
Else
flag = 1
End If
Next
End If
sQuery = "SELECT * FROM Win32_Service WHERE Name = 'mr2kserv'"
Set wbemObjectSet = wbemServices.ExecQuery(sQuery)
If IsEmpty(wbemObjectSet) Or Err.Number <> 0 Then
ErrorMessage = "The Query '" & sQuery & "' returned an invalid result set. Please check to see if this is a valid WMI Query." & Err.Description
MOMDebugLog 1, ErrorMessage
Err.Clear
Else
For Each wbemObject In wbemObjectSet
If Err.Number <> 0 Then
ErrorMessage = "Win32_Service SubObjectQuery Error Number:" & Err.Number & "Description:" & Err.Description
MOMDebugLog 1, ErrorMessage
Err.Clear
Else
flag = 1
End If
Next
End If
Set wbemObjectSet = Nothing
End If ' end of initial root-cimv2 connect success call
getOMServices = flag
End Function
Function MOMDebugLog (Message)
On Error resume next
If LogLevel <> 0 Then
objLogTextFile.WriteLine(Message)
Err.Clear
End If
End Function </Script></ScriptBody>
<TimeoutSeconds>300</TimeoutSeconds>
</DataSource>
</MemberModules>
<Composition>
<Node ID="DS"/>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>