Microsoft.Exchange.2010.EdgeTransportComponent.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.EdgeTransportComponent.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/MicrosoftExchangeEdgeTransportComponentDiscovery.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>MicrosoftExchangeEdgeTransportComponentDiscovery.js</Name>
<Contents><Script>
// ----------------------------------------------------------------------
// Script to discover EdgeTransportComponent entities.
// ----------------------------------------------------------------------

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 = "MicrosoftExchangeEdgeTransportComponentDiscovery.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 = "EdgeTransportComponent 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);

// ----------------------------------------------------------------------
// Instantiate EdgeTransportComponent classes.
// ----------------------------------------------------------------------
//
// Construct the EdgeTransportRole class's Name key property.
var edgeTransportRoleName = computerNetbiosName + " (Edge Transport)";

if (computerActiveDirectorySite != "")
{
edgeTransportRoleName = edgeTransportRoleName.concat(" - ", computerActiveDirectorySite);
}

// Create the EdgeTransportAgentsAddressRewrite instance.
var oEdgeAgentsAddressRewrite = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportAgentsAddressRewrite']$");
oEdgeAgentsAddressRewrite.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oEdgeAgentsAddressRewrite.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", edgeTransportRoleName);
oEdgeAgentsAddressRewrite.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Agents Address Rewrite - " + edgeTransportRoleName);
discoveryData.AddInstance(oEdgeAgentsAddressRewrite);

// Create the EdgeTransportAgentsAttachmentFilter instance.
var oEdgeAgentsAttachmentFilter = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportAgentsAttachmentFilter']$");
oEdgeAgentsAttachmentFilter.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oEdgeAgentsAttachmentFilter.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", edgeTransportRoleName);
oEdgeAgentsAttachmentFilter.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Agents Attachment Filter - " + edgeTransportRoleName);
discoveryData.AddInstance(oEdgeAgentsAttachmentFilter);

// Create the EdgeTransportAgentsConnectionFilter instance.
var oEdgeAgentsConnectionFilter = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportAgentsConnectionFilter']$");
oEdgeAgentsConnectionFilter.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oEdgeAgentsConnectionFilter.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", edgeTransportRoleName);
oEdgeAgentsConnectionFilter.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Agents Connection Filter - " + edgeTransportRoleName);
discoveryData.AddInstance(oEdgeAgentsConnectionFilter);

// Create the EdgeTransportAgentsContentFilter instance.
var oEdgeAgentsContentFilter = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportAgentsContentFilter']$");
oEdgeAgentsContentFilter.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oEdgeAgentsContentFilter.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", edgeTransportRoleName);
oEdgeAgentsContentFilter.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Agents Content Filter - " + edgeTransportRoleName);
discoveryData.AddInstance(oEdgeAgentsContentFilter);

// Create the EdgeTransportAgentsProtocolAnalysis instance.
var oEdgeAgentsProtocolAnalysis = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportAgentsProtocolAnalysis']$");
oEdgeAgentsProtocolAnalysis.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oEdgeAgentsProtocolAnalysis.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", edgeTransportRoleName);
oEdgeAgentsProtocolAnalysis.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Agents Protocol Analysis - " + edgeTransportRoleName);
discoveryData.AddInstance(oEdgeAgentsProtocolAnalysis);

// Create the EdgeTransportAgentsRecipientFilter instance.
var oEdgeAgentsRecipientFilter = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportAgentsRecipientFilter']$");
oEdgeAgentsRecipientFilter.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oEdgeAgentsRecipientFilter.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", edgeTransportRoleName);
oEdgeAgentsRecipientFilter.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Agents Recipient Filter - " + edgeTransportRoleName);
discoveryData.AddInstance(oEdgeAgentsRecipientFilter);

// Create the EdgeTransportAgentsSenderFilter instance.
var oEdgeAgentsSenderFilter = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportAgentsSenderFilter']$");
oEdgeAgentsSenderFilter.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oEdgeAgentsSenderFilter.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", edgeTransportRoleName);
oEdgeAgentsSenderFilter.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Agents Sender Filter - " + edgeTransportRoleName);
discoveryData.AddInstance(oEdgeAgentsSenderFilter);

// Create the EdgeTransportAgentsSenderId instance.
var oEdgeAgentsSenderId = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportAgentsSenderId']$");
oEdgeAgentsSenderId.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oEdgeAgentsSenderId.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", edgeTransportRoleName);
oEdgeAgentsSenderId.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Agents Sender Id - " + edgeTransportRoleName);
discoveryData.AddInstance(oEdgeAgentsSenderId);

// Create the EdgeTransportDsn instance.
var oEdgeDsn = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportDsn']$");
oEdgeDsn.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oEdgeDsn.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", edgeTransportRoleName);
oEdgeDsn.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "DSN - " + edgeTransportRoleName);
discoveryData.AddInstance(oEdgeDsn);

// Create the EdgeTransportMessageSecurity instance.
var oEdgeMessageSecurity = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportMessageSecurity']$");
oEdgeMessageSecurity.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oEdgeMessageSecurity.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", edgeTransportRoleName);
oEdgeMessageSecurity.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Message Security - " + edgeTransportRoleName);
discoveryData.AddInstance(oEdgeMessageSecurity);

// Create the EdgeTransportQueues instance.
var oEdgeQueues = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportQueues']$");
oEdgeQueues.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oEdgeQueues.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", edgeTransportRoleName);
oEdgeQueues.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Queues - " + edgeTransportRoleName);
discoveryData.AddInstance(oEdgeQueues);

// Create the EdgeTransportServiceMonitoring instance.
var oEdgeServiceMonitoring = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportServiceMonitoring']$");
oEdgeServiceMonitoring.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oEdgeServiceMonitoring.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", edgeTransportRoleName);
oEdgeServiceMonitoring.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Services - " + edgeTransportRoleName);
discoveryData.AddInstance(oEdgeServiceMonitoring);


// ----------------------------------------------------------------------
// Instantiate CommonComponent classes hosted by EdgeTransportRole.
// ----------------------------------------------------------------------
//
// Construct the CommonRole class's Name key property.
var commonRoleName = computerNetbiosName + " (Common)";

if (computerActiveDirectorySite != "")
{
commonRoleName = commonRoleName.concat(" - ", computerActiveDirectorySite);
}

// Create the CommonAllServerRoles instance.
var oCommonAllServerRoles = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.CommonAllServerRoles']$");
oCommonAllServerRoles.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oCommonAllServerRoles.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", commonRoleName);
oCommonAllServerRoles.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Server - " + commonRoleName);
discoveryData.AddInstance(oCommonAllServerRoles);

// Create the CommonBestPracticeAnalyzer instance.
var oCommonBpa = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.CommonBestPracticeAnalyzer']$");
oCommonBpa.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oCommonBpa.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", commonRoleName);
oCommonBpa.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "ExBPA - " + commonRoleName);
discoveryData.AddInstance(oCommonBpa);

// Create the CommonExtensibleStorageEngine instance.
var oCommonEse = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.CommonExtensibleStorageEngine']$");
oCommonEse.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oCommonEse.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", commonRoleName);
oCommonEse.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "ESE - " + commonRoleName);
discoveryData.AddInstance(oCommonEse);

// Create the CommonProblemAnalysis instance.
var oCommonProblemAnalysis = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.CommonProblemAnalysis']$");
oCommonProblemAnalysis.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oCommonProblemAnalysis.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", commonRoleName);
oCommonProblemAnalysis.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Watson Events - " + commonRoleName);
discoveryData.AddInstance(oCommonProblemAnalysis);

// Create the CommonTransport instance.
var oCommonTransport = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.CommonTransport']$");
oCommonTransport.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oCommonTransport.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", commonRoleName);
oCommonTransport.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Transport - " + commonRoleName);
discoveryData.AddInstance(oCommonTransport);

// Create the CommonTransportAgents instance.
var oCommonTransportAgents = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.CommonTransportAgents']$");
oCommonTransportAgents.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oCommonTransportAgents.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", commonRoleName);
oCommonTransportAgents.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Transport Agents - " + commonRoleName);
discoveryData.AddInstance(oCommonTransportAgents);

// Create the CommonTransportLogSearch instance.
var oCommonTransportLogSearch = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.CommonTransportLogSearch']$");
oCommonTransportLogSearch.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oCommonTransportLogSearch.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", commonRoleName);
oCommonTransportLogSearch.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Transport Log Search - " + commonRoleName);
discoveryData.AddInstance(oCommonTransportLogSearch);

// Create the CommonServer instance.
var oCommonServer = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.CommonServer']$");
oCommonServer.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oCommonServer.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", commonRoleName);
oCommonServer.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Disk - " + commonRoleName);
discoveryData.AddInstance(oCommonServer);

// Create the CommonServiceMonitoring instance.
var oCommonServiceMonitoring = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.CommonServiceMonitoring']$");
oCommonServiceMonitoring.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", computerPrincipalName);
oCommonServiceMonitoring.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.ServerRole']/RoleName$", commonRoleName);
oCommonServiceMonitoring.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Component']/ComponentName$", "Common Services - " + commonRoleName);
discoveryData.AddInstance(oCommonServiceMonitoring);


// ----------------------------------------------------------------------
// Instantiate org level service classes related to EdgeTransportComponent.
// ----------------------------------------------------------------------
//
// Create the EdgeTransportService instance.
var oEdgeService = discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportService']$");

var edgeTransportServiceName = "Edge Transport Service";
if (computerActiveDirectorySite != "")
{
edgeTransportServiceName = edgeTransportServiceName.concat(" - ", computerActiveDirectorySite);
}

oEdgeService.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Service']/ServiceName$", edgeTransportServiceName);
if(computerActiveDirectorySite != "")
{
oEdgeService.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Service']/InstanceName$", computerActiveDirectorySite);
oEdgeService.AddProperty("$MPElement[Name='Microsoft.Exchange.2010.Service']/ActiveDirectorySite$", computerActiveDirectorySite);
}
discoveryData.AddInstance(oEdgeService);


// ----------------------------------------------------------------------
// Create relationships from org level services to EdgeTransportComponent.
// ----------------------------------------------------------------------
//
// Create containment relationship from EdgeTransportService to EdgeAgentsAddressRewrite.
var oEdgeServiceContainsEdgeAgentsAddressRewrite = discoveryData.CreateRelationshipInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportService.Contains.Microsoft.Exchange.2010.EdgeTransportComponent']$");
oEdgeServiceContainsEdgeAgentsAddressRewrite.Source = oEdgeService;
oEdgeServiceContainsEdgeAgentsAddressRewrite.Target = oEdgeAgentsAddressRewrite;
discoveryData.AddInstance(oEdgeServiceContainsEdgeAgentsAddressRewrite);

// Create containment relationship from EdgeTransportService to EdgeAgentsAttachmentFilter.
var oEdgeServiceContainsEdgeAgentsAttachmentFilter = discoveryData.CreateRelationshipInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportService.Contains.Microsoft.Exchange.2010.EdgeTransportComponent']$");
oEdgeServiceContainsEdgeAgentsAttachmentFilter.Source = oEdgeService;
oEdgeServiceContainsEdgeAgentsAttachmentFilter.Target = oEdgeAgentsAttachmentFilter;
discoveryData.AddInstance(oEdgeServiceContainsEdgeAgentsAttachmentFilter);

// Create containment relationship from EdgeTransportService to EdgeAgentsConnectionFilter.
var oEdgeServiceContainsEdgeAgentsConnectionFilter = discoveryData.CreateRelationshipInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportService.Contains.Microsoft.Exchange.2010.EdgeTransportComponent']$");
oEdgeServiceContainsEdgeAgentsConnectionFilter.Source = oEdgeService;
oEdgeServiceContainsEdgeAgentsConnectionFilter.Target = oEdgeAgentsConnectionFilter;
discoveryData.AddInstance(oEdgeServiceContainsEdgeAgentsConnectionFilter);

// Create containment relationship from EdgeTransportService to EdgeAgentsContentFilter.
var oEdgeServiceContainsEdgeAgentsContentFilter = discoveryData.CreateRelationshipInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportService.Contains.Microsoft.Exchange.2010.EdgeTransportComponent']$");
oEdgeServiceContainsEdgeAgentsContentFilter.Source = oEdgeService;
oEdgeServiceContainsEdgeAgentsContentFilter.Target = oEdgeAgentsContentFilter;
discoveryData.AddInstance(oEdgeServiceContainsEdgeAgentsContentFilter);

// Create containment relationship from EdgeTransportService to EdgeAgentsProtocolAnalysis.
var oEdgeServiceContainsEdgeAgentsProtocolAnalysis = discoveryData.CreateRelationshipInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportService.Contains.Microsoft.Exchange.2010.EdgeTransportComponent']$");
oEdgeServiceContainsEdgeAgentsProtocolAnalysis.Source = oEdgeService;
oEdgeServiceContainsEdgeAgentsProtocolAnalysis.Target = oEdgeAgentsProtocolAnalysis;
discoveryData.AddInstance(oEdgeServiceContainsEdgeAgentsProtocolAnalysis);

// Create containment relationship from EdgeTransportService to EdgeAgentsRecipientFilter.
var oEdgeServiceContainsEdgeAgentsRecipientFilter = discoveryData.CreateRelationshipInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportService.Contains.Microsoft.Exchange.2010.EdgeTransportComponent']$");
oEdgeServiceContainsEdgeAgentsRecipientFilter.Source = oEdgeService;
oEdgeServiceContainsEdgeAgentsRecipientFilter.Target = oEdgeAgentsRecipientFilter;
discoveryData.AddInstance(oEdgeServiceContainsEdgeAgentsRecipientFilter);

// Create containment relationship from EdgeTransportService to EdgeAgentsSenderFilter.
var oEdgeServiceContainsEdgeAgentsSenderFilter = discoveryData.CreateRelationshipInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportService.Contains.Microsoft.Exchange.2010.EdgeTransportComponent']$");
oEdgeServiceContainsEdgeAgentsSenderFilter.Source = oEdgeService;
oEdgeServiceContainsEdgeAgentsSenderFilter.Target = oEdgeAgentsSenderFilter;
discoveryData.AddInstance(oEdgeServiceContainsEdgeAgentsSenderFilter);

// Create containment relationship from EdgeTransportService to EdgeAgentsSenderId.
var oEdgeServiceContainsEdgeAgentsSenderId = discoveryData.CreateRelationshipInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportService.Contains.Microsoft.Exchange.2010.EdgeTransportComponent']$");
oEdgeServiceContainsEdgeAgentsSenderId.Source = oEdgeService;
oEdgeServiceContainsEdgeAgentsSenderId.Target = oEdgeAgentsSenderId;
discoveryData.AddInstance(oEdgeServiceContainsEdgeAgentsSenderId);

// Create containment relationship from EdgeTransportService to EdgeDsn.
var oEdgeServiceContainsEdgeDsn = discoveryData.CreateRelationshipInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportService.Contains.Microsoft.Exchange.2010.EdgeTransportComponent']$");
oEdgeServiceContainsEdgeDsn.Source = oEdgeService;
oEdgeServiceContainsEdgeDsn.Target = oEdgeDsn;
discoveryData.AddInstance(oEdgeServiceContainsEdgeDsn);

// Create containment relationship from EdgeTransportService to EdgeMessageSecurity.
var oEdgeServiceContainsEdgeMessageSecurity = discoveryData.CreateRelationshipInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportService.Contains.Microsoft.Exchange.2010.EdgeTransportComponent']$");
oEdgeServiceContainsEdgeMessageSecurity.Source = oEdgeService;
oEdgeServiceContainsEdgeMessageSecurity.Target = oEdgeMessageSecurity;
discoveryData.AddInstance(oEdgeServiceContainsEdgeMessageSecurity);

// Create containment relationship from EdgeTransportService to EdgeQueues.
var oEdgeServiceContainsEdgeQueues = discoveryData.CreateRelationshipInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportService.Contains.Microsoft.Exchange.2010.EdgeTransportComponent']$");
oEdgeServiceContainsEdgeQueues.Source = oEdgeService;
oEdgeServiceContainsEdgeQueues.Target = oEdgeQueues;
discoveryData.AddInstance(oEdgeServiceContainsEdgeQueues);

// Create containment relationship from EdgeTransportService to EdgeServiceMonitoring.
var oEdgeServiceContainsEdgeServiceMonitoring = discoveryData.CreateRelationshipInstance("$MPElement[Name='Microsoft.Exchange.2010.EdgeTransportService.Contains.Microsoft.Exchange.2010.EdgeTransportComponent']$");
oEdgeServiceContainsEdgeServiceMonitoring.Source = oEdgeService;
oEdgeServiceContainsEdgeServiceMonitoring.Target = oEdgeServiceMonitoring;
discoveryData.AddInstance(oEdgeServiceContainsEdgeServiceMonitoring);

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>