System Center Initiate Install Enterprise Agent

AVIcode.DotNet.SystemCenter.InitiateInstallEnterpriseAgent (WriteActionModuleType)

Element properties:

TypeWriteActionModuleType
IsolationAny
AccessibilityPublic
RunAsDefault
InputTypeSystem.BaseData
OutputTypeSystem.BaseData

Member Modules:

ID Module Type TypeId RunAs 
InitiateInstallEnterpriseModeWA WriteAction Microsoft.Windows.ScriptWriteAction Default

Overrideable Parameters:

IDParameterTypeSelectorDisplay NameDescription
IISResetbool$Config/IISReset$IIS ResetIndicates whether IIS reset should be automatically done.

Source Code:

<WriteActionModuleType ID="AVIcode.DotNet.SystemCenter.InitiateInstallEnterpriseAgent" Accessibility="Public" Batching="false">
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="IISReset" type="xsd:boolean"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="IISReset" Selector="$Config/IISReset$" ParameterType="bool"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<WriteAction ID="InitiateInstallEnterpriseModeWA" TypeID="Windows!Microsoft.Windows.ScriptWriteAction">
<ScriptName>InitiateInstallEnterpriseMode.vbs</ScriptName>
<Arguments>"$Config/IISReset$"</Arguments>
<ScriptBody><Script>
Option Explicit
On Error Resume Next

SetLocale("en-us")
HandleErrorContinue("Cannot set en-us locale")

Dim oAPI
Dim message : message = "Enterprise agent is being installed." &amp; vbcrlf _
&amp; "To check refer to Enterprise .NET Monitoring Agent instance under " &amp; vbcrlf _
&amp; """AVIcode .NET Application Monitoring\Monitoring Agent State"" view."
WScript.StdOut.WriteLine message
Set oAPI = CreateObject("MOM.ScriptAPI")
If WScript.Arguments(0) = "true" Then
Call oAPI.LogScriptEvent("AVIcode .NET Enterprise Management Pack for OpsMgr 2007", 19999, 0, message)
Else
Call oAPI.LogScriptEvent("AVIcode .NET Enterprise Management Pack for OpsMgr 2007", 19998, 0, message)
End If

Sub HandleError(customMessage)
If Not (Err.number = 0) Then
LogError customMessage
Wscript.Quit 0
End If
End Sub

Function HandleErrorContinue(customMessage)
HandleErrorContinue = False
If Not (Err.number = 0) Then
LogError customMessage
Err.Clear
HandleErrorContinue = True
End If
End Function

Sub LogError(customMessage)
Dim msg
If Not (Err.number = 0) Then
msg = Replace(" Error: #P1# Description: #P2# ", "#P1#", CStr(Err.number) )
msg = Replace(msg, "#P2#", Err.Description )
msg = customMessage &amp; VbCrLf &amp; msg &amp; VbCrLf
If UCase(Hex(Err.number)) = UCase("80041006") Then
msg = msg &amp; "WMI Error. Not enough memory for the operation." &amp; VbCrLf
End If
WScript.StdOut.WriteLine msg
msg = msg &amp; " [" &amp; ScriptInfo() &amp; "]"
LogEvent msg, 1
End If
End Sub

Function ScriptInfo()
Dim commandLineInfo : commandLineInfo = WScript.ScriptFullName
Dim argument
For Each argument In WScript.Arguments
commandLineInfo = commandLineInfo &amp; " """ &amp; argument &amp; """"
Next
ScriptInfo = commandLineInfo
End Function

Sub LogEvent (message, eventType)
Dim errorEventId : errorEventId = 20000
Dim oAPI0 : Set oAPI0 = CreateObject("MOM.ScriptAPI")
Call oAPI0.LogScriptEvent("AVIcode .NET Enterprise Management Pack for OpsMgr 2007", errorEventId, eventType, message)
End Sub
</Script></ScriptBody>
<TimeoutSeconds>300</TimeoutSeconds>
</WriteAction>
</MemberModules>
<Composition>
<Node ID="InitiateInstallEnterpriseModeWA"/>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.BaseData</OutputType>
<InputType>System!System.BaseData</InputType>
</WriteActionModuleType>