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

Element properties:

TargetMicrosoft.Exchange.15.Server
EnabledTrue
Frequency86400
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.Queues.Discovery" Enabled="true" Target="Exc15!Microsoft.Exchange.15.Server" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Microsoft.Exchange.15.Custom.Queues"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedPowerShell.DiscoveryProvider">
<IntervalSeconds>86400</IntervalSeconds>
<SyncTime/>
<ScriptName>DiscoverExc15.queue.ps1</ScriptName>
<ScriptBody><Script>

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

$EVENT_SOURCE = 'MicrosoftExchangeQueue.ps1';
$EVENT_TYPE_ERROR = 1;
$EVENT_TYPE_WARNING = 2;
$EVENT_TYPE_INFORMATION = 4;
$infoOutput = "Exchange Server Mailbox Database 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 Mailbox Database"
$excservername="$Target/Property[Type="Exc15!Microsoft.Exchange.15.Server"]/Name$"



$api = New-Object -comObject MOM.ScriptAPI

$message=$infoOutput + "Discovery Script started for .`n Server: " + $computerPrincipalName+" ; "+$sourceId+" "+$managedEntityId



$api.LogScriptEvent($EVENT_SOURCE,1400, 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)



# Get the ExchangeServer object.
$exchangeServer = Get-ExchangeServer -Identity $computerPrincipalName;
if ($exchangeServer -eq $null)
{
$message='Cannot find exchnage server'
$api.LogScriptEvent($EVENT_SOURCE,1403, 2, $message);


}


$count=0
IF($exchangeServer.IsHubTransportServer -eq 'True' -or $exchangeServer.IsEdgeServer -eq 'True')
{

$dName="Queues - "+$computerNetbiosName
$disc = $discovery.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.15.Custom.Queues']$");

$disc.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $computerPrincipalName);
$disc.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $dName);
$disc.AddProperty("$MPElement[Name='Exc15!Microsoft.Exchange.15.Server']/Name$", $excservername);
$discovery.AddInstance($disc);



$api.return($discovery);

$discovery



}






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