MOMScriptAPI.CreateDiscoveryData Method
Applies To: Operations Manager 2007 R2, Operations Manager 2007 SP1, System Center Operations Manager 2007
Creates a new MOMDiscoveryData object, which stores discovery data and is used to submit the collected data back to the management server.
MOMScriptAPI.CreateDiscoveryData(dwSourceType, bstrSourceId, bstrManagedEntityId)
Parameters
Parameter | Type | Description |
---|---|---|
dwSourceType |
Long |
The source type. The value 0 (Rule) should always be used for the source type. |
bstrSourceId |
String |
The ID of the source monitoring class. |
bstrManagedEntityId |
String |
The ID of the monitoring object. |
Return Value
Type | Description |
---|---|
Object |
A new instance of the MOMDiscoveryData object. |
Remarks
To create discovery data, you must first create a MOMScriptAPI object.
After a MOMScriptAPI object is created, you can create a discovery data object. The MOMScriptAPI.CreateDiscoveryData method takes three parameters—dwSourceType, bstrSourceId, and bstrManagedEntityId.
The GUID of the discovery object that launched the script is passed into the script as $MPElement$ and the GUID of the object that the script is executing against is passed in as $Target/Id$.
After the MOMDiscoveryData object is created, you can create instances and relationships to be submitted to Operations Manager.
Requirements
Platforms: Requires Windows Server 2003, Windows Vista, or Windows Server 2008
Version: Requires Operations Manager 2007
Example
This example creates a discovery data object as identified by the input parameters and adds property values to any files in the identified folder on the target computer.
Option Explicit
Dim oArgs
Set oArgs = WScript.Arguments
Dim oAPI
Set oAPI = CreateObject("MOM.ScriptAPI")
Dim SourceId, ManagedEntityId, targetComputer
' SourceId is the GUID of the discovery object that runs the script.
SourceId = oArgs(0)
' ManagedEntityId is the GUID of the computer class that is targeted by the script.
ManagedEntityId = oArgs(1)
' targetComputer is the Fully Qualified Domain Name
' of the computer targeted by the script. The FQDN
' is in Arg(2) of the command prompt.
targetComputer = oArgs(2)
Dim oFSO, oDiscoveryData, oInst
Set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceId, ManagedEntityId)
Set oFSO = CreateObject("Scripting.FileSystemObject")
If (oFSO.FolderExists("C:Appy")) Then
' Create the application instance.
Set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Demo.Scripting.Appy']$")
' Define the property values.
Call oInst.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", targetComputer)
Call oInst.AddProperty("$MPElement[Name='Microsoft.Demo.Scripting.AppY']/Version$", "2.0")
Call oInst.AddProperty("$MPElement[Name='Microsoft.Demo.Scripting.AppY']/Path$", "C:\AppY")
Call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "Application Y")
Call oDiscoveryData.AddInstance(oInst)
' Discover the application's components.
Dim oFolder, ofile
Set oFolder = oFSO.GetFolder("C:\Appy")
' Create a separate class instance for each file in the folder.
For Each oFile in oFolder.Files
Set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Demo.Scripting.AppYComponent']$")
' Define the property values for the class.
' The available properties are detemined by the
'Management Pack that defines the class.
Call oInst.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", targetComputer)
Call oInst.AddProperty("$MPElement[Name='Microsoft.Demo.Scripting.AppYComponent']/ID$", StripExtension(oFile.Name))
Call oInst.AddProperty("$MPElement[Name='Microsoft.Demo.Scripting.AppYComponent']/FileName$", oFile.Name)
Call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$",StripExtension(oFile.Name))
Call oDiscoveryData.AddInstance(oInst)
Next
End If
' Submit the discovery data to the Operations Manager database.
Call oAPI.Return(oDiscoveryData)
' A helper function to remove the extension from a file name.
Function StripExtension (sFile)
StripExtension = Left(sFile, Len(sFile) -4)
End Function