Microsoft.Exchange.15.Custom.BackupHost.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.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>