Microsoft.Exchange.15.Custom.transportServer.Discovery (Discovery)

Element properties:

TargetMicrosoft.Exchange.15.Server
EnabledFalse
Frequency43200
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.TimedPowerShell.DiscoveryProvider Default

Source Code:

<Discovery ID="Microsoft.Exchange.15.Custom.transportServer.Discovery" Enabled="false" Target="Exc15!Microsoft.Exchange.15.Server" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Microsoft.Exchange.15.Custom.TransportServer"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedPowerShell.DiscoveryProvider">
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
<ScriptName>DiscoverExc15.transportRole.ps1</ScriptName>
<ScriptBody><Script>

#Set variables
$DISCOVERY_STARTED_INF_ID = 1470;
$DISCOVERY_ENDED_INF_ID = 1471;
$DISCOVERY_PROGRESS_INF_ID = 1472;

$EVENT_SOURCE = 'MicrosoftExchangeTransportServeriscovery.ps1';
$EVENT_TYPE_ERROR = 1;
$EVENT_TYPE_WARNING = 2;
$EVENT_TYPE_INFORMATION = 4;
$infoOutput = "Exchange Server Transport Role Discovery Script`n" `


$computerPrincipalName = "$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$"
$computerNetbiosName = "$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetbiosComputerName$"
$sourceId = "$MPElement$"
$managedEntityId = "$Target/Id$"
$verboseLoggingString="True"
$description = "Exchange 2013 Transport Server"



$api = New-Object -comObject MOM.ScriptAPI


$message=$infoOutput + "Discovery Script started "+$sourceId+" "+$managedEntityId+" "+$computerPrincipalName


$api.LogScriptEvent($EVENT_SOURCE, $eventId, 4, $message);



Function Load-ExchangeSnapin
{
if (! (Get-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 -ErrorAction:SilentlyContinue) )
{
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
}
}
Load-ExchangeSnapin


$discovery = $api.CreateDiscoveryData(0, $sourceId, $managedEntityId)



$excserver=Get-ExchangeServer -Identity $computerNetbiosName

#debug
$sDiscoveredItems = "`nDiscovered Databases:`n"
#enddebug
IF($excserver.IsHubTransportServer)
{
$disc = $discovery.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.15.Custom.TransportServer']$");


$version = $excserver.AdminDisplayVersion.Major.ToString()+ '.' + $excserver.AdminDisplayVersion.Minor.ToString() + '.' + $excserver.AdminDisplayVersion.Build.ToString()+ '.' + $excserver.AdminDisplayVersion.Revision.ToString();
$description = "Exchange 2013 Mailbox Server - " +$excserver.Identity

$disc.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $computerPrincipalName);
$disc.AddProperty("$MPElement[Name='Microsoft.Exchange.15.Custom.TransportServer']/ExchRole$", $description);
$disc.AddProperty("$MPElement[Name='Microsoft.Exchange.15.Custom.TransportServer']/Datapath$", $excserver.Datapath.Pathname);
$disc.AddProperty("$MPElement[Name='Microsoft.Exchange.15.Custom.TransportServer']/Edition$", $excserver.Edition);
$disc.AddProperty("$MPElement[Name='Microsoft.Exchange.15.Custom.TransportServer']/Site$", $excserver.Site.Name);
$disc.AddProperty("$MPElement[Name='Microsoft.Exchange.15.Custom.TransportServer']/AdminDisplayVersion$", $version);
$disc.AddProperty("$MPElement[Name='Microsoft.Exchange.15.Custom.TransportServer']/IsHubTransportServer$", $excserver.IsHubTransportServer);
$disc.AddProperty("$MPElement[Name='Microsoft.Exchange.15.Custom.TransportServer']/IsClientAccessServer$", $excserver.IsClientAccessServer);
$disc.AddProperty("$MPElement[Name='Microsoft.Exchange.15.Custom.TransportServer']/IsMailboxServer$", $excserver.IsMailboxServer);
$disc.AddProperty("$MPElement[Name='Microsoft.Exchange.15.Custom.TransportServer']/IsExchangeTrialEdition$", $excserver.IsExchangeTrialEdition);
$disc.AddProperty("$MPElement[Name='Microsoft.Exchange.15.Custom.TransportServer']/IsExpiredExchangeTrialEdition$", $excserver.IsExpiredExchangeTrialEdition);


$discovery.AddInstance($disc);


}
$message=$infoOutput + "Discovery finished started "


$api.LogScriptEvent($EVENT_SOURCE, $eventId, 4, $message);


#return discovery
$discovery

</Script></ScriptBody>
<TimeoutSeconds>300</TimeoutSeconds>
</DataSource>
</Discovery>