ConfigMgr 2012 Client Software Update Agent Discovery

ConfigMgr.2012.Client.Discovery.ConfigMgr.2012.Client.App.Component.Software.Update.Agent.Discovery (Discovery)

Discovers the enabled ConfigMgr 2012 client Software Update Agent

Element properties:

TargetConfigMgr.2012.Client.Library.ConfigMgr.2012.Client.Application
EnabledTrue
Frequency43200
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:

Member Modules:

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

Source Code:

<Discovery ID="ConfigMgr.2012.Client.Discovery.ConfigMgr.2012.Client.App.Component.Software.Update.Agent.Discovery" Target="C2CL!ConfigMgr.2012.Client.Library.ConfigMgr.2012.Client.Application" Enabled="true" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="C2CL!ConfigMgr.2012.Client.Library.ConfigMgr.2012.Client.App.Component.Software.Update.Agent">
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedScript.DiscoveryProvider">
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
<ScriptName>CM12ClientSUAgentDiscovery.vbs</ScriptName>
<Arguments>$MPElement$ $Target/Id$ $Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Arguments>
<ScriptBody><Script>Option Explicit
'On Error Resume Next

Dim oArgs, SUAgentEnabled, SUAgentVersion
Dim oAPI, oDiscoveryData, oInst
Dim objWMIService,col, item
Dim SourceID, ManagedEntityId, TargetComputer

Set oArgs = WScript.Arguments
if oArgs.Count &lt; 3 Then
Wscript.Quit -1
End If
SourceId = oArgs(0)
ManagedEntityId = oArgs(1)
TargetComputer = oArgs(2)

'Discover Machine Policy AcutalConfig for Software Update Agent settings
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" + TargetComputer + "\root\ccm\Policy\Machine\ActualConfig")
Set col = objWMIService.ExecQuery _
("Select * from CCM_SoftwareUpdatesClientConfig WHERE SiteSettingsKey = 1")
For Each item in col
SUAgentEnabled = item.Enabled
Next

'Discover Software Update Agent Version if it is enabled
If SUAgentEnabled = True Then
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" + TargetComputer + "\root\ccm")
Set col = objWMIService.ExecQuery _
("Select * from CCM_InstalledComponent WHERE Name = 'SmsSoftwareUpdate'")
For Each item in col
SUAgentVersion = item.Version
Next
End if

'Submit discovery data
Set oAPI = CreateObject("MOM.ScriptAPI")
set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceID, ManagedEntityId)

If SUAgentEnabled = True Then
set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='C2CL!ConfigMgr.2012.Client.Library.ConfigMgr.2012.Client.App.Component.Software.Update.Agent']$")
Call oInst.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", TargetComputer)
Call oInst.AddProperty("$MPElement[Name='C2CL!ConfigMgr.2012.Client.Library.ConfigMgr.2012.Client.App.Component.Software.Update.Agent']/Version$", SUAgentVersion)
Call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", TargetComputer)
Call oDiscoveryData.AddInstance(oInst)
End If
'Submit the discovery data to the management group.
oAPI.Return(oDiscoveryData)
</Script></ScriptBody>
<TimeoutSeconds>120</TimeoutSeconds>
</DataSource>
</Discovery>