WMS Publishing Point start/stop toggle (script)

Custom.Windows.WMS.Publishing.Point.ToggleState (WriteActionModuleType)

Element properties:

TypeWriteActionModuleType
IsolationAny
AccessibilityInternal
RunAsDefault
InputTypeSystem.BaseData
OutputTypeSystem.CommandOutput

Member Modules:

ID Module Type TypeId RunAs 
Custom.Windows.WMS.Publishing.Point.ToggleState.Script WriteAction System.CommandExecuter Default

Source Code:

<WriteActionModuleType ID="Custom.Windows.WMS.Publishing.Point.ToggleState" Accessibility="Internal" Batching="false">
<Configuration>
<IncludeSchemaTypes>
<SchemaType>System!System.ParamListSchema</SchemaType>
</IncludeSchemaTypes>
<xsd:element name="Arguments" type="xsd:string"/>
<xsd:element name="SecureInput" minOccurs="0" maxOccurs="1">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="256"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="TimeoutSeconds" type="xsd:integer"/>
</Configuration>
<OverrideableParameters>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<WriteAction ID="Custom.Windows.WMS.Publishing.Point.ToggleState.Script" TypeID="System!System.CommandExecuter">
<ApplicationName>%windir%\system32\cscript.exe</ApplicationName>
<WorkingDirectory/>
<CommandLine>/nologo "Custom.Windows.WMS.Publishing.Point.ToggleState.vbs" $Config/Arguments$</CommandLine>
<SecureInput>$Config/SecureInput$</SecureInput>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
<RequireOutput>true</RequireOutput>
<Files>
<File>
<Name>Custom.Windows.WMS.Publishing.Point.ToggleState.vbs</Name>
<Contents><Script><![CDATA['*************************************************************************
' Script Name - Custom.Windows.WMS.Publishing.Point.ToggleState.vbs
'
' Purpose - Starts/stops a Windows Media Services Publishing Points
'
' Assumptions - based on WMS V9 SDK documentation
' works only for publishing points of type broadcast
'
' Parameters 1 - PP Name (string)
' 2 - Action (string) - Start
' - Stop
'
' Date - 28.09.2007 Raphael Burri / [email protected]
'*************************************************************************
Option Explicit

Const WMS_PUBLISHING_POINT_TYPE_ON_DEMAND = 1
Const WMS_PUBLISHING_POINT_TYPE_BROADCAST = 2
Const WMS_PUBLISHING_POINT_TYPE_CACHE_PROXY_ON_DEMAND = 3
Const WMS_PUBLISHING_POINT_TYPE_CACHE_PROXY_BROADCAST = 4

Dim objArgs, objWMSrv, objPubPoints, objPubPoint
Dim iPP
Dim strPPName, strAction

'get the parameters from the management pack
Set objArgs = WScript.Arguments
If objArgs.Count < 2 Then
WScript.Quit -1
End If
strPPName = objArgs(0)
strAction = LCase(objArgs(1))

If Not strAction = "start" And Not strAction = "stop" Then
WScript.Quit -1
End If

Set objWMSrv = CreateObject("WMSServer.server","localhost")
Set objPubPoints = objWMSrv.PublishingPoints

'get name for each publishing point that exists
For iPP = 0 To objPubPoints.Count - 1
Set objPubPoint = objPubPoints.Item(iPP)
If objPubPoint.Name = strPPName And objPubPoint.Type = WMS_PUBLISHING_POINT_TYPE_BROADCAST Then
Select Case strAction
Case "start"
objPubPoint.Start()
Case "stop"
objPubPoint.Stop()
End Select
Exit For
End If
Next

Set objWMSrv = Nothing
Set objPubPoints = Nothing
Set objArgs = Nothing]]></Script></Contents>
<Unicode>true</Unicode>
</File>
</Files>
</WriteAction>
</MemberModules>
<Composition>
<Node ID="Custom.Windows.WMS.Publishing.Point.ToggleState.Script"/>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.CommandOutput</OutputType>
<InputType>System!System.BaseData</InputType>
</WriteActionModuleType>