Microsoft.Exchange.15.Custom.Queues.Discovery (Discovery)
Element properties:
Object Discovery Details:
Member Modules:
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>