Windows Azure Pack Websites Discovery

WindowsAzurePack.ManagementPack.Library.WindowsAzurePack.Library.WAPWebSitesDiscovery (Discovery)

Discovery for discovering WAP Websites

Element properties:

TargetWindowsAzurePack.Library.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="WindowsAzurePack.ManagementPack.Library.WindowsAzurePack.Library.WAPWebSitesDiscovery" Target="WindowsAzurePack.Library.Server" Enabled="true" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="WindowsAzurePack.Library.Server"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedPowerShell.DiscoveryProvider">
<IntervalSeconds>86400</IntervalSeconds>
<SyncTime>01:00</SyncTime>
<ScriptName>WAPWebsiteDiscovery.Ps1</ScriptName>
<ScriptBody><Script># WAPSitesDiscovery.ps1
# Written by Oskar Landman. All rights reserved.
param($SourceID, $ManagedEntityID, $ComputerName)

$scomapi = new-object -comObject "MOM.ScriptAPI"
$DiscData = $scomapi.CreateDiscoveryData(0, $SourceID, $ManagedEntityID)
Import-Module webadministration
$Websites = get-website | Where-Object {$_.physicalpath -Match "MgmtSvc"}

foreach ($Website in $Websites)

{

$binding_result = Get-WebBinding -Name $Website.name

$binding = $binding_result.bindinginformation
$protocol = $binding_result.protocol
$binding = $binding.split(":")
$measureObject = $binding[2] | Measure-Object -Character
$count = $measureObject.Characters

$Site = $Website.Name.split("-")
$Site = $Site[1]
if ($count -gt 1)
{
$full = $protocol + "://" + $binding[2] +":" + $binding[1]
}

if ($count -eq 0)
{
$full = $protocol + "://" + "Localhost" +":" + $binding[1]
}

if ($Website.Name -in ("MgmtSvc-WindowsAuthSite", "MgmtSvc-TenantSite", "MgmtSvc-AuthSite", "MgmtSvc-AdminSite"))
{
$Full = $full + "/federationmetadata/2007-06/federationmetadata.xml"
}

If ($Website.Name -eq "MgmtSvc-AdminAPI")
{

$WAPSite = $DiscData.CreateClassInstance("$MPElement[Name='WindowsAzurePack.Library.WAPSite.AdminAPI']$")
$WAPSite.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $ComputerName)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.AdminAPI']/Binding$", $full)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.AdminAPI']/PhysicalPath$", $Website.physicalPath)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.AdminAPI']/UniqueKey$", $ComputerName + "-AdminAPI")
$WAPSite.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $ComputerName + "-AdminAPI")

$DiscData.AddInstance($WAPSite)

}
If ($Website.Name -eq "MgmtSvc-AdminSite")
{

$WAPSite = $DiscData.CreateClassInstance("$MPElement[Name='WindowsAzurePack.Library.WAPSite.AdminSite']$")
$WAPSite.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $ComputerName)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.AdminSite']/Binding$", $full)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.AdminSite']/PhysicalPath$", $Website.physicalPath)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.AdminSite']/UniqueKey$", $ComputerName + "-AdminSite")
$WAPSite.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $ComputerName + "-AdminSite")

$DiscData.AddInstance($WAPSite)

}
If ($Website.Name -eq "MgmtSvc-AuthSite")
{

$WAPSite = $DiscData.CreateClassInstance("$MPElement[Name='WindowsAzurePack.Library.WAPSite.AuthSite']$")
$WAPSite.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $ComputerName)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.AuthSite']/Binding$", $full)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.AuthSite']/PhysicalPath$", $Website.physicalPath)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.AuthSite']/UniqueKey$", $ComputerName + "-AuthSite")
$WAPSite.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $ComputerName + "-AuthSite")

$DiscData.AddInstance($WAPSite)

}
If ($Website.Name -eq "MgmtSvc-ConfigSite")
{

$WAPSite = $DiscData.CreateClassInstance("$MPElement[Name='WindowsAzurePack.Library.WAPSite.ConfigSite']$")
$WAPSite.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $ComputerName)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.ConfigSite']/Binding$", $full)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.ConfigSite']/PhysicalPath$", $Website.physicalPath)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.ConfigSite']/UniqueKey$", $ComputerName + "-ConfigSite")
$WAPSite.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $ComputerName + "-ConfigSite")

$DiscData.AddInstance($WAPSite)

}
If ($Website.Name -eq "MgmtSvc-Monitoring")
{

$WAPSite = $DiscData.CreateClassInstance("$MPElement[Name='WindowsAzurePack.Library.WAPSite.Monitoring']$")
$WAPSite.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $ComputerName)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.Monitoring']/Binding$", $full)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.Monitoring']/PhysicalPath$", $Website.physicalPath)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.Monitoring']/UniqueKey$", $ComputerName + "-Monitoring")
$WAPSite.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $ComputerName + "-Monitoring")

$DiscData.AddInstance($WAPSite)

}
If ($Website.Name -eq "MgmtSvc-MYSQL")
{

$WAPSite = $DiscData.CreateClassInstance("$MPElement[Name='WindowsAzurePack.Library.WAPSite.MYSQL']$")
$WAPSite.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $ComputerName)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.MYSQL']/Binding$", $full)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.MYSQL']/PhysicalPath$", $Website.physicalPath)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.MYSQL']/UniqueKey$", $ComputerName + "-MYSQL")
$WAPSite.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $ComputerName + "-MYSQL")

$DiscData.AddInstance($WAPSite)

}
If ($Website.Name -eq "MgmtSvc-TenantAPI")
{

$WAPSite = $DiscData.CreateClassInstance("$MPElement[Name='WindowsAzurePack.Library.WAPSite.TenantAPI']$")
$WAPSite.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $ComputerName)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.TenantAPI']/Binding$", $full)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.TenantAPI']/PhysicalPath$", $Website.physicalPath)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.TenantAPI']/UniqueKey$", $ComputerName + "-TenantAPI")
$WAPSite.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $ComputerName + "-TenantAPI")

$DiscData.AddInstance($WAPSite)

}
If ($Website.Name -eq "MgmtSvc-TenantPublicAPI")
{

$WAPSite = $DiscData.CreateClassInstance("$MPElement[Name='WindowsAzurePack.Library.WAPSite.TenantPublicAPI']$")
$WAPSite.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $ComputerName)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.TenantPublicAPI']/Binding$", $full)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.TenantPublicAPI']/PhysicalPath$", $Website.physicalPath)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.TenantPublicAPI']/UniqueKey$", $ComputerName + "-TenantPublicAPI")
$WAPSite.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $ComputerName + "-TenantPublicAPI")

$DiscData.AddInstance($WAPSite)

}
If ($Website.Name -eq "MgmtSvc-Usage")
{

$WAPSite = $DiscData.CreateClassInstance("$MPElement[Name='WindowsAzurePack.Library.WAPSite.Usage']$")
$WAPSite.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $ComputerName)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.Usage']/Binding$", $full)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.Usage']/PhysicalPath$", $Website.physicalPath)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.Usage']/UniqueKey$", $ComputerName + "-Usage")
$WAPSite.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $ComputerName + "-Usage")

$DiscData.AddInstance($WAPSite)

}
If ($Website.Name -eq "MgmtSvc-UsageCollector")
{

$WAPSite = $DiscData.CreateClassInstance("$MPElement[Name='WindowsAzurePack.Library.WAPSite.UsageCollector']$")
$WAPSite.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $ComputerName)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.UsageCollector']/Binding$", $full)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.UsageCollector']/PhysicalPath$", $Website.physicalPath)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.UsageCollector']/UniqueKey$", $ComputerName + "-UsageCollector")
$WAPSite.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $ComputerName + "-UsageCollector")

$DiscData.AddInstance($WAPSite)

}
If ($Website.Name -eq "MgmtSvc-WepAppGallery")
{

$WAPSite = $DiscData.CreateClassInstance("$MPElement[Name='WindowsAzurePack.Library.WAPSite.WebAppGallery']$")
$WAPSite.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $ComputerName)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.WebAppGallery']/Binding$", $full)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.WebAppGallery']/PhysicalPath$", $Website.physicalPath)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.WebAppGallery']/UniqueKey$", $ComputerName + "-WebAppGallery")
$WAPSite.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $ComputerName + "-WebAppGallery")

$DiscData.AddInstance($WAPSite)

}
If ($Website.Name -eq "MgmtSvc-WindowsAuthSite")
{

$WAPSite = $DiscData.CreateClassInstance("$MPElement[Name='WindowsAzurePack.Library.WAPSite.WindowsAuthSite']$")
$WAPSite.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $ComputerName)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.WindowsAuthSite']/Binding$", $full)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.WindowsAuthSite']/PhysicalPath$", $Website.physicalPath)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.WindowsAuthSite']/UniqueKey$", $ComputerName + "-WindowsAuthSite")
$WAPSite.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $ComputerName + "-WindowsAuthSite")

$DiscData.AddInstance($WAPSite)

}
If ($Website.Name -eq "MgmtSvc-TenantSite")
{

$WAPSite = $DiscData.CreateClassInstance("$MPElement[Name='WindowsAzurePack.Library.WAPSite.TenantSite']$")
$WAPSite.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $ComputerName)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.TenantSite']/Binding$", $full)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.TenantSite']/PhysicalPath$", $Website.physicalPath)
$WAPSite.AddProperty("$MPElement[Name='WindowsAzurePack.Library.WAPSite.TenantSite']/UniqueKey$", $ComputerName + "-TenantSite")
$WAPSite.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $ComputerName + "-TenantSite")

$DiscData.AddInstance($WAPSite)

}
}
$DiscData
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>sourceId</Name>
<Value>$MPElement$</Value>
</Parameter>
<Parameter>
<Name>managedEntityId</Name>
<Value>$Target/Id$</Value>
</Parameter>
<Parameter>
<Name>ComputerName</Name>
<Value>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>300</TimeoutSeconds>
<StrictErrorHandling>true</StrictErrorHandling>
</DataSource>
</Discovery>