OpsMgr.2012.Self.Maintenance.Search.Workflows.By.DisplayName.Write.Action (WriteActionModuleType)

Element properties:

TypeWriteActionModuleType
IsolationAny
AccessibilityInternal
RunAsDefault
InputTypeSystem.BaseData

Member Modules:

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

Overrideable Parameters:

IDParameterTypeSelector
WorkFlowDisplayNamestring$Config/WorkFlowDisplayName$
TimeoutSecondsint$Config/TimeoutSeconds$

Source Code:

<WriteActionModuleType ID="OpsMgr.2012.Self.Maintenance.Search.Workflows.By.DisplayName.Write.Action" Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="WorkFlowDisplayName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="TimeoutSeconds" type="xsd:integer"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="WorkFlowDisplayName" Selector="$Config/WorkFlowDisplayName$" ParameterType="string"/>
<OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<WriteAction ID="Script" TypeID="Windows!Microsoft.Windows.PowerShellWriteAction">
<ScriptName>GetWFNameAgentTask.ps1</ScriptName>
<ScriptBody><Script>#==========================================================================
# Script Name: GetWFNameAgentTask.ps1
# DATE: 13/06/2014
# Version: 1.0
# COMMENT: - Script used by Get Workflow name agent task
#==========================================================================
Param ([Parameter(Mandatory=$true)][String]$WorkFlowDisplayName)

#region FunctionLibs
function Load-SDK()
{
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.EnterpriseManagement.OperationsManager.Common") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.EnterpriseManagement.OperationsManager") | Out-Null
}
#endregion

#region Main
Load-SDK
$ManagementServer = $env:COMPUTERNAME
$MGConnSetting = New-Object Microsoft.EnterpriseManagement.ManagementGroupConnectionSettings($ManagementServer)
$MG = New-Object Microsoft.EnterpriseManagement.ManagementGroup($MGConnSetting)

#Search Criteria
$strSearchCriteria = "DisplayName = '$WorkFlowDisplayName'"

#Get monitors
$MonitorCriteria = New-Object Microsoft.EnterpriseManagement.Configuration.MonitorCriteria($strSearchCriteria)
$Monitors = $MG.getmonitors($MonitorCriteria)
If ($Monitors.count -gt 0)
{
Write-Host "Found the following Monitors:"
Foreach ($Monitor in $Monitors)
{
$MPDisplayName = ($Monitor.GetManagementPack()).DisplayName
Write-Host " - Monitor Name: `"$($Monitor.Name)`""
Write-Host " - From Management Pack: `"$MPDisplayname`""
Write-Host " - Monitor Type: $($Monitor.XmlTag)"
}
Write-Host ""
}
#Get rules
$RuleCriteria = New-Object Microsoft.EnterpriseManagement.Configuration.MonitoringRuleCriteria($strSearchCriteria)
$Rules = $MG.GetMonitoringRules($RuleCriteria)
If ($Rules.count -gt 0)
{
Write-Host "Found the following Rules:"
Foreach ($Rule in $Rules)
{
$MPDisplayName = ($Rule.GetManagementPack()).DisplayName
Write-Host " - Rule Name: `"$($Rule.Name)`""
Write-Host " - From Management Pack: `"$MPDisplayname`""
}
Write-Host ""
}

#Get discoveries
$DiscoveryCriteria = New-Object Microsoft.EnterpriseManagement.Configuration.MonitoringDiscoveryCriteria($strSearchCriteria)
$Discoveries = $MG.GetMonitoringDiscoveries($DiscoveryCriteria)
If ($Discoveries.count -gt 0)
{
Write-Host "Found the following Discoveries:"
Foreach ($Discovery in $Discoveries)
{
$MPDisplayName = ($Discovery.GetManagementPack()).DisplayName
Write-Host " - Discovery Name: `"$($Discovery.Name)`""
Write-Host " - From Management Pack: `"$MPDisplayname`""
}
Write-Host ""
}

If ($Monitors.count -eq 0 -and $Rules.count -eq 0 -and $Discoveries.count -eq 0)
{
Write-Host "No monitors, rules and discoveries found!"
}</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>WorkFlowDisplayName</Name>
<Value>$Config/WorkFlowDisplayName$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
</WriteAction>
</MemberModules>
<Composition>
<Node ID="Script"/>
</Composition>
</Composite>
</ModuleImplementation>
<InputType>System!System.BaseData</InputType>
</WriteActionModuleType>