System Service Discovery Probe Action
MECM.SystemService.Discovery.PA (ProbeActionModuleType)
This probe finds the TFTP service used by the PXE service point.
Element properties:
Member Modules:
Overrideable Parameters:
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 > 3 ? $.Arguments(3) : undefined;
var roleName = numArgs > 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>