Create Event by PowerShell

VKernel.CapacityAnalyzer.PRO.PowerShellCreateEvent (WriteActionModuleType)

Writes event to Event Log using PowerShell script

Element properties:

TypeWriteActionModuleType
IsolationAny
AccessibilityInternal
RunAsDefault
InputTypeSystem.BaseData

Member Modules:

ID Module Type TypeId RunAs 
PSCreateEvent WriteAction Microsoft.Windows.PowerShellWriteAction Default

Overrideable Parameters:

IDParameterTypeSelectorDisplay NameDescription
EventParam3string$Config/EventParam3$Event Parameter 3Parameter No 3 of the log event
EventParam2string$Config/EventParam2$Event Parameter 2Event Parameter 2
EventParam1string$Config/EventParam1$Event Parameter 1Event Parameter 1
EventTypestring$Config/EventType$Event TypeEvent Type
EventIDint$Config/EventID$Event IDID of the event
EventSourcestring$Config/EventSource$Event SourceEvent source for the log entry

Source Code:

<WriteActionModuleType ID="VKernel.CapacityAnalyzer.PRO.PowerShellCreateEvent" Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element name="EventSource" type="xsd:string"/>
<xsd:element name="EventID" type="xsd:int"/>
<xsd:element name="EventType" type="xsd:string"/>
<xsd:element name="EventParam1" type="xsd:string"/>
<xsd:element name="EventParam2" type="xsd:string"/>
<xsd:element name="EventParam3" type="xsd:string"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="EventSource" Selector="$Config/EventSource$" ParameterType="string"/>
<OverrideableParameter ID="EventID" Selector="$Config/EventID$" ParameterType="int"/>
<OverrideableParameter ID="EventType" Selector="$Config/EventType$" ParameterType="string"/>
<OverrideableParameter ID="EventParam1" Selector="$Config/EventParam1$" ParameterType="string"/>
<OverrideableParameter ID="EventParam2" Selector="$Config/EventParam2$" ParameterType="string"/>
<OverrideableParameter ID="EventParam3" Selector="$Config/EventParam3$" ParameterType="string"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<WriteAction ID="PSCreateEvent" TypeID="Windows!Microsoft.Windows.PowerShellWriteAction">
<ScriptName>PowerShellCreateEvent</ScriptName>
<ScriptBody><Script>
Param($EventSource, $EventID, $EventType, $EventParam1, $EventParam2, $EventParam3)

if ($EventSource -eq $null)
{
throw "EventSource script argument is not defined.";
}

if ($EventID -eq $null)
{
throw "EventID script argument is not defined.";
}

if ($EventType -eq $null)
{
throw "EventType script argument is not defined.";
}

if ($EventParam1 -eq $null)
{
throw "EventParam1 script argument is not defined.";
}

if ($EventParam2 -eq $null)
{
throw "EventParam2 script argument is not defined.";
}

if ($EventParam3 -eq $null)
{
throw "EventParam3 script argument is not defined.";
}

$EventType = $EventType.ToLower();

switch ($EventType)
{
"error" {$EventType = [System.Diagnostics.EventLogEntryType]::Error;}
"warning" {$EventType = [System.Diagnostics.EventLogEntryType]::Warning; }
"information" {$EventType = [System.Diagnostics.EventLogEntryType]::Information }
default {throw "Unknow event type value: " + $EventType;}
}

$logName = "Operations Manager"

# Registering event source if it is not registered yet
if (![System.Diagnostics.EventLog]::SourceExists($EventSource))
{
[System.Diagnostics.EventLog]::CreateEventSource($EventSource, $logName);
}

$log = New-Object System.Diagnostics.EventLog($logName);
$log.Source = $EventSource;

$eventInst = New-Object System.Diagnostics.EventInstance($EventID, 0, $EventType);
$EventParams = $EventParam1, $EventParam2, $EventParam3

$log.WriteEvent($eventInst, $EventParams);
$log.Close();
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>EventSource</Name>
<Value>$Config/EventSource$</Value>
</Parameter>
<Parameter>
<Name>EventID</Name>
<Value>$Config/EventID$</Value>
</Parameter>
<Parameter>
<Name>EventType</Name>
<Value>$Config/EventType$</Value>
</Parameter>
<Parameter>
<Name>EventParam1</Name>
<Value>$Config/EventParam1$</Value>
</Parameter>
<Parameter>
<Name>EventParam2</Name>
<Value>$Config/EventParam2$</Value>
</Parameter>
<Parameter>
<Name>EventParam3</Name>
<Value>$Config/EventParam3$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>300</TimeoutSeconds>
</WriteAction>
</MemberModules>
<Composition>
<Node ID="PSCreateEvent"/>
</Composition>
</Composite>
</ModuleImplementation>
<InputType>System!System.BaseData</InputType>
</WriteActionModuleType>