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

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

 

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

 

<?xml version="1.0" encoding="UTF-8"?>

-<ars>

<info active="2" exts="169" disk_free="514455" disk_total="603623" mem_free="263" mem_total="1023"/>

</ars>

 

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

注意$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

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



本文转自 yoke88 51CTO博客,原文链接:http://blog.51cto.com/yoke88/1845494

上一篇:[OpenSource]ScriptLoader: 轻松管理你的js 类库


下一篇:动手使用ABAP Channel开发一些小工具,提升日常工作效率