尝试在SCOM 2012 R2中设置一个简单的双状态脚本监视器,以检查服务器上是否存在特定文件。我的代码如下:
$API = new-object -comObject ‘MOM.ScriptAPI’
$Bag = $API.CreatePropertyBag()
$Exists = Test-Path ‘c:\temp\testfile.txt’
if ($Exists)
{
$Bag.addValue(‘State,’YES’)
}
else
{
$Bag.addvalue(‘State’,’NO’)
}
$Bag
如果我创建监视器并为给定服务器启用它,它会注册并具有初始健康状态。如果返回的结果为“是”,则状态应更改为运行状况不佳。但是,如果我创建测试文件,监视器永远不会更改状态。它的目标是Windows 2008 R2服务器,并设置为每隔5分钟运行一次。如果我在服务器上的PS窗口中手动执行命令,它将返回适当的数据。我用来将结果返回监视器的参数是:
Property[@Name=’State’] equals YES (unhealthy)
or NO (healthy)
我知道我错过了一些愚蠢的东西..这台显示器并不多见。有什么想法吗?
TIA。
答案 0 :(得分:0)
尝试在条件检测中指定数据类型,例如
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name="State"]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">YES</Value>
</ValueExpression>
</SimpleExpression>
</Expression>