那些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>

 

image

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

3c36bbd1-88ec-4f62-a911-9a3c9ef8f55asnip



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

相关文章
|
Web App开发 前端开发 JavaScript
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2