QND.Hyperv.2012R2.WhosMonitoringMe (Rule)

Element properties:

TargetQND.Hyperv.2012R2.VM
CategoryCustom
EnabledFalse
Alert GenerateFalse
RemotableTrue

Member Modules:

ID Module Type TypeId RunAs 
Scheduler DataSource System.SimpleScheduler Default
WriteEvent WriteAction Microsoft.Windows.PowerShellWriteAction Default

Source Code:

<Rule ID="QND.Hyperv.2012R2.WhosMonitoringMe" Target="QND.Hyperv.2012R2.VM" ConfirmDelivery="false" DiscardLevel="100" Enabled="false" Remotable="true" Priority="Normal">
<Category>Custom</Category>
<DataSources>
<DataSource ID="Scheduler" TypeID="System!System.SimpleScheduler">
<IntervalSeconds>60</IntervalSeconds>
<SyncTime/>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WriteEvent" TypeID="Windows!Microsoft.Windows.PowerShellWriteAction">
<ScriptName>Write-Me.ps1</ScriptName>
<ScriptBody><Script>param([string]$VMName=$(throw 'must have a value'))

[Threading.Thread]::CurrentThread.CurrentCulture = "en-US"
[Threading.Thread]::CurrentThread.CurrentUICulture = "en-US"

$g_Api = New-Object -comObject 'MOM.ScriptAPI'
$HVHost= gwmi -Class win32_computersystem
$g_API.LogScriptEvent('Write-Me.ps1',1022,4, "I'm $VMName and I'm being monitored by $($hvhost.name) in domain $($hvhost.domain)")</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>VMName</Name>
<Value>$Target/Property[Type='QND.Hyperv.2012R2.VM']/VirtualMachineName$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>30</TimeoutSeconds>
</WriteAction>
</WriteActions>
</Rule>