#Set variables to be used in logging events
$whoami = whoami
$StartTime = Get-Date
#Log an event that our script is starting
$api.LogScriptEvent("ATADistributedApplicationDiscovery.ps1",3280,0,"v1.8-ATA Distributed Application Discovery Script is starting. Running as $whoami.")
#$api.LogScriptEvent("ATADistributedApplicationDiscovery.ps1",3283,0,"v1.8-ATA Distributed Application Discovery Script. sourceId is $sourceId.")
#$api.LogScriptEvent("ATADistributedApplicationDiscovery.ps1",3283,0,"v1.8-ATA Distributed Application Discovery Script. managedEntityId as $managedEntityId.")
$CenterInstance = $DiscoveryData.CreateClassInstance("$MPElement[Name='Microsoft.AdvancedThreatAnalytics.1_8.Center']$")
$CenterInstance.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $CenterClassInstance.DisplayName)
$CenterInstance.AddProperty("$MPElement[Name='Microsoft.AdvancedThreatAnalytics.1_8.Center']/ServerName$", $CenterClassInstance.DisplayName)
$CenterInstance.AddProperty("$MPElement[Name='Microsoft.AdvancedThreatAnalytics.1_8.Center']/ServiceIP$", $CenterClassInstance.'[Microsoft.AdvancedThreatAnalytics.1_8.Center].ServiceIP'.Value)
#$api.LogScriptEvent("ATADistributedApplicationDiscovery.ps1",3282,0,"v1.8-ATA Distributed Application Discovery Script. Center Instance is $CenterInstance")
$ServiceRelationshipInstance = $DiscoveryData.CreateRelationshipInstance("$MPElement[Name='Microsoft.AdvancedThreatAnalytics.1_8.Service.contains.Microsoft.AdvancedThreatAnalytics.1_8.Center']$")
$ServiceRelationshipInstance.Source = $ServiceInstance
$ServiceRelationshipInstance.Target = $CenterInstance
$DiscoveryData.AddInstance($ServiceRelationshipInstance)
#api.LogScriptEvent("ATADistributedApplicationDiscovery.ps1",3282,0,"v1.8-ATA Distributed Application Discovery Script. Service Relationship is $ServiceRelationshipInstance")
IF ($StandaloneGatewayClassInstances) {
ForEach ($StandaloneGatewayClassInstance in $StandaloneGatewayClassInstances) {
If ($CenterClassInstance.'[Microsoft.AdvancedThreatAnalytics.1_8.Center].ServiceIP'.Value -eq $StandaloneGatewayClassInstance.'[Microsoft.AdvancedThreatAnalytics.1_8.Gateway].ServiceProxyServicePrimaryDnsEndpointAddress'.Value) {
IF ($LightWeightGatewayClassInstances) {
ForEach ($LightWeightGatewayClassInstance in $LightWeightGatewayClassInstances) {
If ($CenterClassInstance.'[Microsoft.AdvancedThreatAnalytics.1_8.Center].ServiceIP'.Value -eq $LightWeightGatewayClassInstance.'[Microsoft.AdvancedThreatAnalytics.1_8.Gateway].ServiceProxyServicePrimaryDnsEndpointAddress'.Value) {
}
}
IF ($ERROR) {$api.LogScriptEvent("ATADistributedApplicationDiscovery.ps1",3284,2,"v1.8-Error is $ERROR")}
$DiscoveryData
#$api.LogScriptEvent("ATADistributedApplicationDiscovery.ps1",3282,0,"v1.8-ATA Distributed Application Discovery Script. Discovery Data is $DiscoveryData")
#Log an event for script ending and total execution time.
$EndTime = Get-Date
$ScriptTime = ($EndTime - $StartTime).TotalSeconds
$ScriptTime = ($EndTime - $StartTime).TotalSeconds
$api.LogScriptEvent("ATADistributedApplicationDiscovery.ps1",3281,0,"v1.8-ATA Distributed Application Discovery Script is complete. Total runtime ($ScriptTime) seconds.")
IF ($ERROR) {$api.LogScriptEvent("ATADistributedApplicationDiscovery.ps1",3284,2,"v1.8-Error is $ERROR")}</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>SourceID</Name>
<Value>$MPElement$</Value>
</Parameter>
<Parameter>
<Name>ManagedEntityID</Name>
<Value>$Target/Id$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>60</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="PowerShell">
<Node ID="Scheduler"/>
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>