Agent Management Groups Discovery

Agent.Management.Groups.Application.Discovery (Discovery)

Element properties:

TargetMicrosoft.SystemCenter.Agent
EnabledTrue
Frequency300
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.TimedPowerShell.DiscoveryProvider System.PrivilegedMonitoringAccount

Source Code:

<Discovery ID="Agent.Management.Groups.Application.Discovery" Enabled="true" Target="SC!Microsoft.SystemCenter.Agent" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Agent.Management.Groups.Application.Class">
<Property TypeID="Agent.Management.Groups.Application.Class" PropertyID="ManagementGroups"/>
</DiscoveryClass>
</DiscoveryTypes>
<DataSource ID="DS" RunAs="System!System.PrivilegedMonitoringAccount" TypeID="Windows!Microsoft.Windows.TimedPowerShell.DiscoveryProvider">
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<ScriptName>DiscoverManagementGroups.ps1</ScriptName>
<ScriptBody><Script>
Param
(
[Parameter(Mandatory=$false)][string]$ClassID
,[Parameter(Mandatory=$false)][string]$ClassInstanceId
,[Parameter(Mandatory=$true)][string]$PrincipalName
)


#Write event
#$api = New-Object -comObject "MOM.ScriptAPI"
#$api.LogScriptEvent("ScriptName.ps1",999,4,"EventMessage")

$object=New-Object -ComObject "AgentConfigManager.MgmtSvcCfg"
$MGs=$object.GetManagementGroups()
foreach ($MG in $MGs) {$MGList=$MGList + $MG.managementGroupName + ", "}
$MGlist=$MGlist.TrimEnd(", ")
$MGList


$api = new-object -comObject 'MOM.ScriptAPI'
$discoveryData = $api.CreateDiscoveryData(0, $ClassID, $ClassInstanceId)
$instance = $discoveryData.CreateClassInstance("$MPElement[Name='Agent.Management.Groups.Application.Class']$")
$instance.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $PrincipalName)
$instance.AddProperty("$MPElement[Name="System!System.Entity"]/DisplayName$", $PrincipalName)
$instance.AddProperty("$MPElement[Name='Agent.Management.Groups.Application.Class']/ManagementGroups$", $MGList)
$discoveryData.AddInstance($instance)
$discoveryData
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>ClassID</Name>
<Value>$MPElement$</Value>
</Parameter>
<Parameter>
<Name>ClassInstanceID</Name>
<Value>$Target/Id$</Value>
</Parameter>
<Parameter>
<Name>PrincipalName</Name>
<Value>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>300</TimeoutSeconds>
</DataSource>
</Discovery>