App Controller Web Site Discovery

Microsoft.SystemCenter.2012.AppController.WebSite.Discovery (Discovery)

Discovers App Controller Web Sites

Knowledge Base article:

Summary

This Discovery discovers instances of the App Controller Web Site.

Element properties:

TargetMicrosoft.Windows.InternetInformationServices.2008.WebSite
EnabledTrue
Frequency21600
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:
Discovered relationships and their attribuets:

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.TimedScript.DiscoveryProvider Default

Source Code:

<Discovery ID="Microsoft.SystemCenter.2012.AppController.WebSite.Discovery" Target="WindowsInternetInformationServices.2008!Microsoft.Windows.InternetInformationServices.2008.WebSite" Enabled="true" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Microsoft.SystemCenter.2012.AppController.WebSite"/>
<DiscoveryRelationship TypeID="Microsoft.SystemCenter.2012.AppController.ServerContainsWebSite"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedScript.DiscoveryProvider">
<IntervalSeconds>21600</IntervalSeconds>
<SyncTime/>
<ScriptName>DiscoverWebSite.vbs</ScriptName>
<Arguments>$MPElement$ $Target/Id$ $Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$ $Target/Property[Type="WindowsInternetInformationServices!Microsoft.Windows.InternetInformationServices.WebSite"]/SiteID$ $Target/Property[Type="System!System.Entity"]/DisplayName$</Arguments>
<ScriptBody><Script>' Copyright (C) Microsoft. All rights reserved.
' DiscoverWebSite.vbs
Option Explicit
SetLocale("en-us")

Const StrWebSiteName = "AppController"

Dim oArgs
Set oArgs = WScript.Arguments
If oArgs.Count &lt; 5 Then
Wscript.Quit -1
End If

Dim oAPI
Set oAPI = CreateObject("MOM.ScriptAPI")

Dim SourceId, ManagedEntityId, TargetComputer, SiteID, DisplayName
SourceId = oArgs(0)
ManagedEntityId = oArgs(1)
TargetComputer = oArgs(2)
SiteID = oArgs(3)
DisplayName = oArgs(4)

Dim oDiscoveryData, oInst1, oInst2, oRelationship
Set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceId, ManagedEntityId)

' TODO: add validation to check for App Controller registry key(s)
If (DisplayName = StrWebSiteName) Then
Set oInst1 = oDiscoveryData.CreateClassInstance("$MPElement[Name='Microsoft.SystemCenter.2012.AppController.WebSite']$")
Call oInst1.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", TargetComputer)
Call oInst1.AddProperty("$MPElement[Name='WindowsInternetInformationServices!Microsoft.Windows.InternetInformationServices.WebSite']/SiteID$", SiteID)
Call oInst1.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", DisplayName)
Call oDiscoveryData.AddInstance(oInst1)

Set oInst2 = oDiscoveryData.CreateClassInstance("$MPElement[Name='Microsoft.SystemCenter.2012.AppController.Server']$")
Call oInst2.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", TargetComputer)
Call oDiscoveryData.AddInstance(oInst2)

Set oRelationship = oDiscoveryData.CreateRelationshipInstance("$MPElement[Name='Microsoft.SystemCenter.2012.AppController.ServerContainsWebSite']$")
oRelationship.Source = oInst2
oRelationship.Target = oInst1
Call oDiscoveryData.AddInstance(oRelationship)
End If

Call oAPI.Return(oDiscoveryData)
</Script></ScriptBody>
<TimeoutSeconds>300</TimeoutSeconds>
</DataSource>
</Discovery>