Microsoft.Exchange.2010.MonitoringCorrelationEngine.DiscoveryDS (DataSourceModuleType)

Element properties:

TypeDataSourceModuleType
IsolationAny
AccessibilityInternal
RunAsDefault
OutputTypeSystem.Discovery.Data

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource System.CommandExecuterDiscoveryDataSource Default

Overrideable Parameters:

IDParameterTypeSelector
IntervalSecondsint$Config/IntervalSeconds$
VerboseLoggingbool$Config/VerboseLogging$

Source Code:

<DataSourceModuleType ID="Microsoft.Exchange.2010.MonitoringCorrelationEngine.DiscoveryDS" Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="IntervalSeconds" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="VerboseLogging" type="xsd:boolean"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int"/>
<OverrideableParameter ID="VerboseLogging" Selector="$Config/VerboseLogging$" ParameterType="bool"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="DS" TypeID="System!System.CommandExecuterDiscoveryDataSource">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<ApplicationName>%windir%\System32\cscript.exe</ApplicationName>
<WorkingDirectory/>
<CommandLine>//Nologo $file/MicrosoftExchangeMonitoringCorrelationEngineDiscovery.js$ 0 $MPElement$ $Target/Id$ $Target/Host/Property[Type='Windows!Microsoft.Windows.Computer']/PrincipalName$ "$Target/Host/Property[Type='Windows!Microsoft.Windows.Computer']/NetbiosComputerName$" "$Target/Host/Property[Type='Windows!Microsoft.Windows.Computer']/ActiveDirectorySite$" "$Config/VerboseLogging$"</CommandLine>
<TimeoutSeconds>900</TimeoutSeconds>
<RequireOutput>true</RequireOutput>
<Files>
<File>
<Name>MicrosoftExchangeMonitoringCorrelationEngineDiscovery.js</Name>
<Contents><Script>
// ----------------------------------------------------------------------
// Script to discover CorrelationEngine.
// ----------------------------------------------------------------------

var EXPECTED_ARGUMENT_COUNT = 7;
var UNEXPECTED_ARGUMENT_COUNT_ERROR_ID = 101;

var DISCOVERY_STARTED_INF_ID = 1470;
var DISCOVERY_ENDED_INF_ID = 1471;
var DISCOVERY_PROGRESS_INF_ID = 1472;

var EVENT_SOURCE = "MicrosoftExchangeMonitoringCorrelationEngineDiscovery.js";
var EVENT_TYPE_ERROR = 1;
var EVENT_TYPE_WARNING = 2;
var EVENT_TYPE_INFORMATION = 4;

var oAPI = new ActiveXObject("Mom.ScriptAPI");

var argumentsStr = "";
for (var i = 0; i &lt; WScript.Arguments.length; i++)
{
argumentsStr = argumentsStr.concat("\"", WScript.Arguments(i), "\" ");
}


if (WScript.Arguments.length != EXPECTED_ARGUMENT_COUNT)
{
oAPI.LogScriptEvent(
EVENT_SOURCE,
UNEXPECTED_ARGUMENT_COUNT_ERROR_ID,
EVENT_TYPE_ERROR,
"Expected " + EXPECTED_ARGUMENT_COUNT + " arguments. But there were " + WScript.Arguments.length + " arguments. Exiting script.\n Arguments: " + argumentsStr);

WScript.Quit(-1);
}

var sourceType = WScript.Arguments(0);
var sourceId = WScript.Arguments(1);
var managedEntityId = WScript.Arguments(2);
var computerPrincipalName = WScript.Arguments(3);
var computerNetbiosName = WScript.Arguments(4);
var computerActiveDirectorySite = WScript.Arguments(5);
var verboseLoggingString = WScript.Arguments(6);

// Convert variables from string to bool.
var verboseLogging = (verboseLoggingString.toLowerCase() == "true") ? true : false;

var infoOutput = "CorrelationEngine Discovery script \n"
+ " Message: ";

main();

function main()
{
LogEvent(DISCOVERY_STARTED_INF_ID, EVENT_TYPE_INFORMATION, infoOutput + "Discovery Script started.\n Arguments: " + argumentsStr);

var discoveryData = oAPI.CreateDiscoveryData(sourceType, sourceId, managedEntityId);

// Construct the CorrelationEngineRole class's Name key property.
var correlationEngineRoleName = computerNetbiosName + " (Correlation Engine) - " + computerActiveDirectorySite;

// Create the MonitoringCorrelationEngine instance.
var oCE = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.MonitoringCorrelationEngine']$");
oCE.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oCE.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.MonitoringRole']/RoleName$", correlationEngineRoleName);
oCE.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "Correlation Engine - " + correlationEngineRoleName);
discoveryData.AddInstance(oCE);

oAPI.Return(discoveryData);

LogEvent(DISCOVERY_ENDED_INF_ID, EVENT_TYPE_INFORMATION, infoOutput + "Exiting Discovery." );
}

//
// Log to EventLog if verboseLogging is set
//
function LogEvent(eventId, eventType, message)
{
if (verboseLogging)
{
oAPI.LogScriptEvent(EVENT_SOURCE, eventId, eventType, message);
}
}
</Script></Contents>
</File>
</Files>
</DataSource>
</MemberModules>
<Composition>
<Node ID="DS"/>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>