Community.PowerShellMonitoring.PageSet.Template.PowerShellEventCollection (UIPageSet)

Element properties:

Type DefinitionCommunity.PowerShellMonitoring.Template.PowerShellRule.EventCollection

Source Code:

<UIPageSet ID="Community.PowerShellMonitoring.PageSet.Template.PowerShellEventCollection" TypeDefinitionID="Community.PowerShellMonitoring.Template.PowerShellRule.EventCollection">
<UIPageReferences>
<UIPageReference ID="Community.PowerShellMonitoring.PageSet.Template.PowerShellEventCollection.General" PageID="MSR!Microsoft.SystemCenter.RuleTemplates.RuleGeneralPage" Usage="CreationOnly">
<InputParameters/>
<InputTransform>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:element name="Category">
<xsl:copy>EventCollection</xsl:copy>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
</InputTransform>
</UIPageReference>
<UIPageReference ID="Community.PowerShellMonitoring.PageSet.Template.PowerShellEventCollection.Schedule" PageID="System!System.SimpleSchedulerPage" Usage="CreationOnly">
<InputTransform>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:element name="SimpleReccuringSchedule">
<xsl:element name="Interval"><xsl:attribute name="Unit">Minutes</xsl:attribute>15
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
</InputTransform>
</UIPageReference>
<UIPageReference ID="Community.PowerShellMonitoring.PageSet.Template.PowerShellEventCollection.Script" PageID="Windows!Microsoft.Windows.ScriptPage" Usage="CreationOnly">
<InputParameters>
<ScriptName>MyEventCollectionScript.ps1</ScriptName>
<ScriptBody><Script># Any Arguments specified will be sent to the script as a single string.
# If you need to send multiple values, delimit them with a space, semicolon or other seperator and then use split.
param([string]$Arguments)

$ScomAPI = New-Object -comObject "MOM.ScriptAPI"
$PropertyBag = $ScomAPI.CreatePropertyBag()

# Enter a script that outputs the required data to generate the event using a property bag
# Example script that returns three properties:

$PropertyBag.AddValue("EventID", 10)
$PropertyBag.AddValue("EventParam1","SomeText")
$PropertyBag.AddValue("EventParam2","SomeText")

# Send output to SCOM
$PropertyBag
</Script></ScriptBody>
</InputParameters>
<InputTransform>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:copy-of select="/ScriptName"/>
<xsl:copy-of select="/Arguments"/>
<xsl:copy-of select="/ScriptBody"/>
<xsl:copy-of select="/TimeOutSeconds"/>
</xsl:template>
</xsl:stylesheet>
</InputTransform>
</UIPageReference>
<UIPageReference ID="Community.PowerShellMonitoring.PageSet.Template.PowerShellEventCollection.Mapper" PageID="Windows!Microsoft.Windows.EventMapperPage" Usage="CreationOnly">
<InputParameters>
<EventNumber>$Data/Property[@Name='EventID']$</EventNumber>
<PublisherName>CustomScript</PublisherName>
<Channel>CustomScript</Channel>
<EventCategory>0</EventCategory>
<Params>
<Param>$Data/Property[@Name='EventParam1']$</Param>
<Param>$Data/Property[@Name='EventParam2']$</Param>
</Params>
</InputParameters>
<InputTransform/>
<Title ID="Title"/>
<TabName ID="TabName"/>
</UIPageReference>
</UIPageReferences>
<OutputTransform>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:element name="Configuration">
<xsl:copy-of select="/ID"/>
<xsl:copy-of select="/Name"/>
<xsl:copy-of select="/Enabled"/>
<xsl:copy-of select="/Description[1]"/>
<xsl:copy-of select="/Target"/>
<xsl:copy-of select="/Category"/>
<xsl:copy-of select="/LocaleId"/>
<xsl:element name="IntervalSeconds">
<xsl:variable name="RawInterval" select="/SimpleReccuringSchedule/Interval"/>
<xsl:variable name="Units" select="/SimpleReccuringSchedule/Interval/@Unit"/>
<xsl:choose>
<xsl:when test="not(boolean($Units)) or $Units='Seconds'">
<xsl:value-of select="$RawInterval"/>
</xsl:when>
<xsl:when test="$Units='Minutes'">
<xsl:value-of select="$RawInterval*60"/>
</xsl:when>
<xsl:when test="$Units='Hours'">
<xsl:value-of select="$RawInterval*3600"/>
</xsl:when>
<xsl:when test="$Units='Days'">
<xsl:value-of select="$RawInterval*86400"/>
</xsl:when>
</xsl:choose>
</xsl:element>
<xsl:element name="SyncTime">
<xsl:value-of select="/SimpleReccuringSchedule/SyncTime"/>
</xsl:element>
<xsl:element name="ScriptName">
<xsl:value-of select="/ScriptName[1]"/>
</xsl:element>
<xsl:element name="Arguments">
<xsl:value-of select="/Arguments[1]"/>
</xsl:element>
<xsl:element name="ScriptBody">
<xsl:value-of select="/ScriptBody[1]"/>
</xsl:element>
<xsl:element name="TimeoutSeconds">
<xsl:value-of select="/TimeoutSeconds[1]"/>
</xsl:element>
<xsl:copy-of select="/EventOriginId"/>
<xsl:copy-of select="/PublisherId"/>
<xsl:copy-of select="/PublisherName"/>
<xsl:copy-of select="/Channel"/>
<xsl:copy-of select="/LoggingComputer"/>
<xsl:copy-of select="/EventNumber"/>
<xsl:copy-of select="/EventCategory"/>
<xsl:copy-of select="/EventLevel"/>
<xsl:copy-of select="/UserName"/>
<xsl:element name="EventDescription">
<xsl:copy-of select="/Description[2]"/>
</xsl:element>
<xsl:copy-of select="/Params"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
</OutputTransform>
</UIPageSet>