Microsoft.Exchange.15.Custom.BackupHost.Discovery (Discovery)
Element properties:
Object Discovery Details:
Member Modules:
Source Code:
<Discovery ID="Microsoft.Exchange.15.Custom.BackupHost.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.BackupHost"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedPowerShell.DiscoveryProvider">
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
<ScriptName>DiscoverExc15.BackupHost.ps1</ScriptName>
<ScriptBody><Script>
#Set variables
$DISCOVERY_STARTED_INF_ID = 1570;
$DISCOVERY_ENDED_INF_ID = 1571;
$DISCOVERY_PROGRESS_INF_ID = 1572;
$EVENT_SOURCE = 'MicrosoftExchangeMailboxBackupHostdiscovery.ps1';
$EVENT_TYPE_ERROR = 1;
$EVENT_TYPE_WARNING = 2;
$EVENT_TYPE_INFORMATION = 4;
$infoOutput = "Exchange Server Backup Target 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 Backup Host for Mailbox Server"
$api = New-Object -comObject MOM.ScriptAPI
$message=$infoOutput + "Discovery Script (Backup Host ) 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)
$dName="ExcBackup-"+$computerNetbiosName
$excserver=Get-ExchangeServer -Identity $computerNetbiosName
#debug
$sDiscoveredItems = "`nDiscovered Databases:`n"
#enddebug
IF($excserver.IsMailboxServer)
{
$disc = $discovery.CreateClassInstance("$MPElement[Name='Microsoft.Exchange.15.Custom.BackupHost']$");
$version = $excserver.AdminDisplayVersion.Major.ToString()+ '.' + $excserver.AdminDisplayVersion.Minor.ToString() + '.' + $excserver.AdminDisplayVersion.Build.ToString()+ '.' + $excserver.AdminDisplayVersion.Revision.ToString();
$description = "Exchange 2013 Mailbox Server Backup - " +$excserver.Identity
$disc.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $computerPrincipalName);
$disc.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $dName);
$disc.AddProperty("$MPElement[Name='Microsoft.Exchange.15.Custom.BackupHost']/Name$", $dName);
$disc.AddProperty("$MPElement[Name='Microsoft.Exchange.15.Custom.BackupHost']/Datapath$", $excserver.Datapath.Pathname);
$disc.AddProperty("$MPElement[Name='Microsoft.Exchange.15.Custom.BackupHost']/Edition$", $excserver.Edition);
$disc.AddProperty("$MPElement[Name='Microsoft.Exchange.15.Custom.BackupHost']/IsHubTransportServer$", $excserver.IsHubTransportServer);
$disc.AddProperty("$MPElement[Name='Microsoft.Exchange.15.Custom.BackupHost']/IsClientAccessServer$", $excserver.IsClientAccessServer);
$disc.AddProperty("$MPElement[Name='Microsoft.Exchange.15.Custom.BackupHost']/IsMailboxServer$", $excserver.IsMailboxServer);
$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>