0

Hello, i have created powershell monitoring script but looks like it does work properly on target machine.

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

function RegisterSnapIn($snapIn, $visibleName)
{
if(Get-Module $snapIn)
{
return
}

$nstPath = “HKLM:\SOFTWARE\Microsoft\Microsoft Dynamics NAV\130\Service”

$snapInAssembly = Join-Path (Get-ItemProperty -path $nstPath).Path “\$snapIn.psd1”
if(!(Test-Path $snapInAssembly)) { $snapInAssembly = Join-Path (Get-ItemProperty -path $nstPath).Path “\$snapIn.dll” }
Import-Module $snapInAssembly -ErrorVariable errorVariable -ErrorAction SilentlyContinue
if (Check-ErrorVariable -eq $true)
{
if ((Get-PSSnapin -Name $snapIn -ErrorAction SilentlyContinue) -eq $null)
{
if ((Get-PSSnapin -Registered $snapIn -ErrorAction SilentlyContinue) -eq $null)
{
write-host -fore Red “Couldn’t register $visibleName”
write-host -fore Red “Some cmdlets may not be available`n”
}
else
{
Add-PSSnapin $snapIn
}
}
}
}
function Check-ErrorVariable
{
return ($errorVariable -ne $null -and $errorVariable.Count -gt 0)
}

RegisterSnapIn “Microsoft.Dynamics.Nav.Management” “Microsoft Dynamics NAV Management Snap-in”
RegisterSnapIn “Microsoft.Dynamics.Nav.Apps.Management” “Microsoft Dynamics NAV App Management Snap-in”

$State=Get-NAVTenant -ServerInstance Dev1|select State

$PropertyBag.AddValue(“state”,[string]$State)

# Send output to SCOM
$PropertyBag

 

 

I have tried to use $PropertyBag.AddValue(‘state’,$State)

but with this I got error The Microsoft Operations Manager Expression Filter Module failed to #query the delivered item, item was dropped.

Property Expression: Property[@Name=’state’]

The script itself, started from powershell console, works fine on target machine.

In Windows Powershell log i can see that powershell starting every 2 mins, right on schedule.

Right now the state is Mounted and it should be Critical, but it is Marked as Healthy.

 

Skovsen answered