Descoberta de Acumulação de Data Warehouse do Service Manager

Microsoft.SystemCenter.ServiceManager.DwManagementGroup.Discovery (Discovery)

Detecta as propriedades do Grupo de Gerenciamento de Data Warehouse

Knowledge Base article:

Resumo

Desabilitar essa descoberta impedirá que as instâncias de Data Warehouse do Service Manager sejam populadas no modo de exibição de diagrama. A descoberta é executada logo depois de ser importada, seguida de outra execução às 14:00, o horário de ativação da descoberta inicial. Depois disso, ela será executada em um intervalo de 24 horas. O horário da descoberta inicial, o Intervalo em Segundos e o tempo limite podem ser alterados. Não convém alterar os argumentos.

Element properties:

TargetMicrosoft.SystemCenter.ServiceManager.DwManagementServer
EnabledTrue
Frequency86400
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:
Discovered relationships and their attribuets:

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.TimedScript.DiscoveryProvider Default

Source Code:

<Discovery ID="Microsoft.SystemCenter.ServiceManager.DwManagementGroup.Discovery" Enabled="true" Target="SM!Microsoft.SystemCenter.ServiceManager.DwManagementServer" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="SM!Microsoft.SystemCenter.ServiceManager.DwManagementServer"/>
<DiscoveryClass TypeID="SM!Microsoft.SystemCenter.ServiceManager.DwManagementGroup"/>
<DiscoveryClass TypeID="SM!Microsoft.SystemCenter.ServiceManager.Application"/>
<DiscoveryRelationship TypeID="SM!Microsoft.SystemCenter.ServiceManager.DwMgtGroupContainsDwMgtServer"/>
<DiscoveryRelationship TypeID="SM!Microsoft.SystemCenter.ServiceManager.SmContainsMgGroups"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedScript.DiscoveryProvider">
<IntervalSeconds>86400</IntervalSeconds>
<SyncTime>02:00</SyncTime>
<ScriptName>DwManagementGroupDiscovery.vbs</ScriptName>
<Arguments>$MPElement$ $Target/Id$ $Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$ $Target/Property[Type="SM!Microsoft.SystemCenter.ServiceManager.ManagementServer"]/Version$</Arguments>
<ScriptBody><Script>'*************************************************************************
' ScriptName: DwManagementGroupDiscovery.vbs
'
' Purpose - Populate properties of DW Management Server Group
'
' Parameters - 0 - discovery id
' 1 - Target managed entity id
' 2 - Host Computer Principal Name
' 3 - Version
'*************************************************************************
Option Explicit
SetLocale("en-us")
Dim sourceId,managedEntityId,oAPI,strKeyPath,principalName, version, oDiscoveryData


Set oAPI = CreateObject("MOM.ScriptAPI")
sourceId = WScript.Arguments(0)
managedEntityId = WScript.Arguments(1)
principalName = WScript.Arguments(2)
version = WScript.Arguments(3)

' Fetching Data Warehouse Management Group using WMI

Call oAPI.LogScriptEvent("DwManagementGroupDiscovery.vbs", 3000, 4, "Starting discovery of Service Manager DataWarehouse Management Group.")
Set oDiscoveryData = oAPI.CreateDiscoveryData(0, sourceId, managedEntityId)

Dim oReg, iResult, arrSubKeys, managementGroupName
Set oReg = GetObject("winmgmts:\\" &amp; principalName &amp; "\root\default:StdRegProv")
If Err &lt;&gt; 0 Then
Call oAPI.LogScriptEvent("SmManagementServerDiscovery.vbs", 3000, 4, "Unable to bind to WMI registry provider on " &amp; principalName &amp; ". Terminating Discovery.")
Call oAPI.Return(oDiscoveryData)
WScript.Quit
End if
Const HKLM = &amp;H80000002

If version = "2010" or version = "2012" then

iResult = oReg.Enumkey(HKLM, "SOFTWARE\Microsoft\Microsoft Operations Manager\3.0\Server Management Groups", arrSubKeys)
If iResult = 0 then
Call oAPI.LogScriptEvent("DwManagementGroupDiscovery.vbs", 3000, 4, "Discovered SCSM " &amp; version &amp;" DataWarehouse Group.")
Dim dwMgName,oMgtServerInst,oMgGroupInst,oRelMgGroupContainsMgServer,oSmAppInst,oRelSmContainsMg
dwMgName = arrSubKeys(0)

' Instantiate Data Warehouse Management Server instance
If version = "2010" then
Set oMgtServerInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='SM!Microsoft.SystemCenter.ServiceManager.DwManagementServer.2010']$")
ElseIf version = "2012" then
Set oMgtServerInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='SM!Microsoft.SystemCenter.ServiceManager.DwManagementServer.2012']$")

End If
Call oMgtServerInst.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", principalName)
Call oDiscoveryData.AddInstance(oMgtServerInst)

' Management Group Creation

Set oMgGroupInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='SM!Microsoft.SystemCenter.ServiceManager.DwManagementGroup']$")
Call oMgGroupInst.AddProperty("$MPElement[Name='SM!Microsoft.SystemCenter.ServiceManager.ManagementGroup']/GroupName$", dwMgName)
Call oMgGroupInst.AddProperty("$MPElement[Name='SM!Microsoft.SystemCenter.ServiceManager.ManagementGroup']/Version$", version)
Call oMgGroupInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$",dwMgName)
Call oDiscoveryData.AddInstance(oMgtServerInst)

' Management Group Contains Managment Server Relationship Creation

Set oRelMgGroupContainsMgServer = oDiscoveryData.CreateRelationshipInstance("$MPElement[Name='SM!Microsoft.SystemCenter.ServiceManager.DwMgtGroupContainsDwMgtServer']$")
oRelMgGroupContainsMgServer.Source = oMgGroupInst
oRelMgGroupContainsMgServer.Target = oMgtServerInst
Call oDiscoveryData.AddInstance(oRelMgGroupContainsMgServer)

' Instantiate SM class

Set oSmAppInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='SM!Microsoft.SystemCenter.ServiceManager.Application']$")
Call oSmAppInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "Service Manager")
Call oSmAppInst.AddProperty("$MPElement[Name='SM!Microsoft.SystemCenter.ServiceManager.Application']/InstanceName$", "Microsoft System Center Service Manager")
Call oDiscoveryData.AddInstance(oSmAppInst)

' SM contains Management Groups

Set oRelSmContainsMg = oDiscoveryData.CreateRelationshipInstance("$MPElement[Name='SM!Microsoft.SystemCenter.ServiceManager.SmContainsMgGroups']$")
oRelSmContainsMg.Source = oSmAppInst
oRelSmContainsMg.Target = oMgGroupInst
Call oDiscoveryData.AddInstance(oRelSmContainsMg)

End If
End If

Call oAPI.LogScriptEvent("DwManagementGroupDiscovery.vbs", 3000, 4, "Ending discovery of Service Manager DataWarehouse Group.")
Call oAPI.Return(oDiscoveryData)
WScript.Quit</Script></ScriptBody>
<TimeoutSeconds>300</TimeoutSeconds>
</DataSource>
</Discovery>