System Service Discovery Probe Action

MECM.SystemService.Discovery.PA (ProbeActionModuleType)

This probe finds the TFTP service used by the PXE service point.

Element properties:

TypeProbeActionModuleType
IsolationAny
AccessibilityPublic
RunAsDefault
InputTypeSystem.BaseData
OutputTypeSystem.Discovery.Data

Member Modules:

ID Module Type TypeId RunAs 
PA ProbeAction MECM.Script.Discovery.PA Default

Overrideable Parameters:

IDParameterTypeSelectorDisplay NameDescription
LogLevelint$Config/LogLevel$LogLevel (0, 1, 2)

Source Code:

<ProbeActionModuleType ID="MECM.SystemService.Discovery.PA" Accessibility="Public" Batching="false" PassThrough="false">
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="LogLevel" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="Arguments" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="TimeoutSeconds" type="xsd:integer"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="LogLevel" Selector="$Config/LogLevel$" ParameterType="int"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<ProbeAction ID="PA" TypeID="MECM.Script.Discovery.PA">
<ScriptName>SystemServiceDiscovery.js</ScriptName>
<LogLevel>$Config/LogLevel$</LogLevel>
<Arguments>$Config/Arguments$</Arguments>
<ScriptBody><Script><!-- $IncludeFileContent/"../../../Scripts/Discovery/ServiceWmi.js"$ --><!-- $IncludeFileContent/"../../../Scripts/Discovery/_Return.js"$ -->(function ($, cim, data) {
// BEGIN Discovery(MEF $, WMI sccm, DiscoveryData data)

var roleClassMap = $("ConfigMgr.RoleClassMap");

var numArgs = $.Arguments.Count();
// ParseToInt
var serviceName = numArgs &gt; 3 ? $.Arguments(3) : undefined;
var roleName = numArgs &gt; 4 ? $.Arguments(4) : undefined;
var targetServerFqdn = cim.CurrentServer;

var roleClass = roleClassMap(roleName);

if (roleClass != undefined) {
var roleDef = data.CreateClassInstance(roleClass);
roleDef.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", targetServerFqdn);

data.AddInstance(roleDef);

// service query
var serviceQuery = $.Format("\
SELECT Name, DisplayName from Win32_Service \n\
WHERE Name='{0}'", serviceName);

cim.Query(serviceQuery, function () {

var svcDef = data.CreateClassInstance("$MPElement[Name='MECM.SystemService']$");
svcDef.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", targetServerFqdn);
svcDef.AddProperty("$MPElement[Name='MECM.SystemService']/ServiceName$", serviceName);
svcDef.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", this.DisplayName);

data.AddInstance(svcDef);

var relationship = data.CreateRelationshipInstance("$MPElement[Name='MECM.SiteRoleContainsSystemService']$")
relationship.Source = roleDef;
relationship.Target = svcDef;

data.AddInstance(relationship);
});
}

// END Discovery(MEF $, WMI sccm, DiscoveryData data)
})($, $("CIMv2"), $("DiscoveryData"));


$.Return($("DiscoveryData"));

</Script></ScriptBody>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="PA"/>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
<InputType>System!System.BaseData</InputType>
</ProbeActionModuleType>