Service Management Automation Performance Data Source Web Service Properties

Microsoft.SystemCenter.ServiceManagementAutomation.2012R2.DataSource.DiscoverWebServiceProperties (DataSourceModuleType)

Data source module containing script to discover properties of Service Management Automation web service.

Element properties:

TypeDataSourceModuleType
IsolationAny
AccessibilityInternal
RunAsDefault
OutputTypeSystem.Discovery.Data

Member Modules:

ID Module Type TypeId RunAs 
Script DataSource Microsoft.Windows.TimedPowerShell.DiscoveryProvider Default

Overrideable Parameters:

IDParameterTypeSelectorDisplay NameDescription
IntervalSecondsint$Config/IntervalSeconds$IntervalSecondsNumber of seconds between times that the discovery is run.
Debugbool$Config/Debug$DebugIf true, debug events are written to agent event log.

Source Code:

<DataSourceModuleType ID="Microsoft.SystemCenter.ServiceManagementAutomation.2012R2.DataSource.DiscoverWebServiceProperties" Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="IntervalSeconds" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="0" name="SyncTime" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="ComputerName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="SiteName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="Port" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="SSL" type="xsd:boolean"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="Debug" type="xsd:boolean"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int"/>
<OverrideableParameter ID="Debug" Selector="$Config/Debug$" ParameterType="bool"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="Script" TypeID="Windows!Microsoft.Windows.TimedPowerShell.DiscoveryProvider">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<SyncTime>$Config/SyncTime$</SyncTime>
<ScriptName>DiscoverWebService.ps1</ScriptName>
<ScriptBody><Script>param($sourceId,$managedEntityId,$computerName,$iisSiteName,$webServicePort,$iisUseSsl,$debug)

#Constants used for event logging
$SCRIPT_NAME = 'DiscoverWebService.ps1'
$EVENT_LEVEL_ERROR = 1
$VENT_LEVEL_WARNING = 2
$EVENT_LEVEL_INFO = 4

$SCRIPT_STARTED = 841
$DISCOVERYITEM_ADDED = 842
$SCRIPT_ENDED = 845

function Log-Event
{
param($eventNo,$severity,$message)

$message = "`n" + $message
$api.LogScriptEvent($SCRIPT_NAME,$eventNo,$severity,$message)
}

function Log-DebugEvent
{
param($eventNo,$message)

if ($debug -eq $true)
{
Log-Event -eventNo $eventNo -severity $EVENT_LEVEL_INFO -message $message
}
}

function ExitWithError
{
param($eventNo,$message,$discoveryData)

Log-Event -eventNo $eventNo -severity $EVENT_LEVEL_ERROR -message $message
Exit
}

$api = New-Object -comObject 'MOM.ScriptAPI'
$discoveryData = $api.CreateDiscoveryData(0, $sourceId, $managedEntityId)

Log-DebugEvent -eventNo $SCRIPT_STARTED -message 'Script started.'

$urlBase = $computerName + ':' + $webServicePort

if ($iisUseSsl -eq $true)
{ $url = 'https://' + $urlBase }
else
{ $url = 'http://' + $urlBase }

$instance = $discoveryData.CreateClassInstance("$MPElement[Name='Microsoft.SystemCenter.ServiceManagementAutomation.2012R2.Server.Web']$")
$instance.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", $computerName)
$instance.AddProperty("$MPElement[Name='SMA!Microsoft.SystemCenter.ServiceManagementAutomation.Server.Web']/URL$", $url)

$discoveryData.AddInstance($instance)

$message = 'Created Microsoft.SystemCenter.ServiceManagementAutomation.2012R2.Server.Web class.' + "`n" + `
'Computer Name: ' + $computerName + "`n" +
'URL: ' + $url

Log-DebugEvent $DISCOVERYITEM_ADDED $message

$discoveryData
Log-DebugEvent -eventNo $SCRIPT_ENDED -message 'Script ended.'</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>$Config/ComputerName$</Value>
</Parameter>
<Parameter>
<Name>iisSiteName</Name>
<Value>$Config/SiteName$</Value>
</Parameter>
<Parameter>
<Name>webServicePort</Name>
<Value>$Config/Port$</Value>
</Parameter>
<Parameter>
<Name>iisUseSsl</Name>
<Value>$Config/SSL$</Value>
</Parameter>
<Parameter>
<Name>debug</Name>
<Value>false</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>300</TimeoutSeconds>
</DataSource>
</MemberModules>
<Composition>
<Node ID="Script"/>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>