为了偷懒,利用powershell中的ScriptBlock,然后用了个循环来输出多个Performance data 类似格式的PropertyBag。

 

脚本从一个web页面取xml 文件信息,xml内存类似下面。

 

-

 

那些SCOM 管理包开发中遇到的坑1–Powershell scriptBlock Invoke执行结果的类型_第1张图片

注意$bag.addvalue(“value”,$($dict[$item]).invoke()[0])这行,之前的坑是写成了$bag.addvalue(“value”,$($dict[$item]).invoke())

然后死活这个powershell 脚本在addvalue时,value一直为Null。在控制台进行调试,$($dict[$item]).invoke() 又能输出正确的值。

 

但是当查看invoke输出的对象类型时,问题漏出来了,invoke()的输出结果是一个集合对象,在powershell 控制台print 时,虽然显示的是正确的值,但是在addvalue时,这个结果却是null