ConfigMgr 2012 Client Discovery Step 2

ConfigMgr.2012.Client.Discovery.ConfigMgr.2012.Client.Application.Discovery.Step.2 (Discovery)

This discovery discovers the remaining properties of the ConfigMgr 2012 client using a VBScript.

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.Application.Discovery.Step.2" 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.Application"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedScript.DiscoveryProvider">
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
<ScriptName>CM12ClientPropertyDiscovery.vbs</ScriptName>
<Arguments>$MPElement$ $Target/Id$ $Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Arguments>
<ScriptBody><Script>'===================================================================================
' AUTHOR: Tao Yang
' Script Name: CM12ClientPropertyDiscovery.vbs
' DATE: 04/07/2013
' Version: 1.0
' COMMENT: Script to discover ConfigMgr 2012 client properties
'===================================================================================

Option Explicit
'On Error Resume Next

'Declare variables
const HKEY_LOCAL_MACHINE = &amp;H80000002
Dim oArgs, SCCMClient, Result
Dim SiteCodeFromClient, LogsLocation, Version
Dim GUID, CacheLocation, CacheSize, EnableAutoAssignment
Dim AllowLocalAdminOverride, IsBDP
Dim oAPI, oDiscoveryData, oInst
Dim objWMIService,col, item, objRegistry, strValueName, strValue
Dim sh, strKeyPath, DPRole
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)

Set sh = Wscript.CreateObject("Wscript.Shell")

'Discover SCCM Site code
Set SCCMClient = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\ccm:SMS_Client")
Set Result = SCCMClient.ExecMethod_("GetAssignedSite")
SiteCodeFromClient = result.sSiteCode

'Discover client version, AllowLocalAdminOverride, EnableAutoAssignment
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\ccm")
Set col = objWMIService.ExecQuery _
("Select * from SMS_Client")
For Each item in col
Version = item.ClientVersion
AllowLocalAdminOverride = item.AllowLocalAdminOverride
EnableAutoAssignment = item.EnableAutoAssignment
Next

'Discover Client Log location
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\ccm\Policy\Machine")
Set col = objWMIService.ExecQuery _
("Select * from CCM_Logging_GlobalConfiguration WHERE DummyKey = '1'")
For Each item in col
LogsLocation = item.LogDirectory
Next

'Discover GUID
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\ccm")
Set col = objWMIService.ExecQuery _
("Select * from CCM_Client")
For Each item in col
GUID = Replace(item.ClientID,"GUID:","")
Next

'Discover Cache location and size
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\ccm\SoftMgmtAgent")
Set col = objWMIService.ExecQuery _
("Select * from CacheConfig")
For Each item in col
CacheLocation = item.Location
CacheSize = item.Size
Next

'Submit discovery data
Set oAPI = CreateObject("MOM.ScriptAPI")
set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceID, ManagedEntityId)
set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='C2CL!ConfigMgr.2012.Client.Library.ConfigMgr.2012.Client.Application']$")
Call oInst.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", TargetComputer)
Call oInst.AddProperty("$MPElement[Name='C2CL!ConfigMgr.2012.Client.Library.ConfigMgr.2012.Client.Application']/SiteCode$", SiteCodeFromClient)
Call oInst.AddProperty("$MPElement[Name='C2CL!ConfigMgr.2012.Client.Library.ConfigMgr.2012.Client.Application']/LogsLocation$", LogsLocation)
Call oInst.AddProperty("$MPElement[Name='C2CL!ConfigMgr.2012.Client.Library.ConfigMgr.2012.Client.Application']/Version$", Version)
Call oInst.AddProperty("$MPElement[Name='C2CL!ConfigMgr.2012.Client.Library.ConfigMgr.2012.Client.Application']/AllowLocalAdminOverride$", AllowLocalAdminOverride)
Call oInst.AddProperty("$MPElement[Name='C2CL!ConfigMgr.2012.Client.Library.ConfigMgr.2012.Client.Application']/EnableAutoAssignment$", EnableAutoAssignment)
Call oInst.AddProperty("$MPElement[Name='C2CL!ConfigMgr.2012.Client.Library.ConfigMgr.2012.Client.Application']/GUID$", GUID)
Call oInst.AddProperty("$MPElement[Name='C2CL!ConfigMgr.2012.Client.Library.ConfigMgr.2012.Client.Application']/CacheLocation$", CacheLocation)
Call oInst.AddProperty("$MPElement[Name='C2CL!ConfigMgr.2012.Client.Library.ConfigMgr.2012.Client.Application']/CacheSize$", CacheSize)

Call oDiscoveryData.AddInstance(oInst)
'Submit the discovery data to the management group
oAPI.Return(oDiscoveryData)
'**************END SCRIPT********************

</Script></ScriptBody>
<TimeoutSeconds>120</TimeoutSeconds>
</DataSource>
</Discovery>