这是一个非常基本的程序,我想编写一个VB脚本,我将从命令行调用并传入一些参数,而VB脚本应该从WMI中获取参数并查询一些信息,代码就像这样:
1.strProperty = colNamedArguments.Item("Property") //this is to store the parameter
2.str..... some other parameters
3.Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & strNamespace)
4.Set colSWbemObjectSet = objSWbemServices.ExecQuery("SELECT * FROM " & strClass)
5.For Each objSWbemObject In colSWbemObjectSet
6. wscript.echo objSWbemObject.strProperty
1和2.是存储参数3.is以连接到WMI 4.is查询所需的数据5和6.是运行收集的数据并打印出来。我遇到的问题是,当我使用正确的参数运行脚本时,它什么都没打印出来,但是如果我用第5行中的strProperty替换实际参数我用命令传递它是否有效,并测试参数是否正确传递我有添加代码行,以便在获得有效参数时立即将其打印出来。我认为第5行使用“strProperty”作为匹配数据的属性,而不是strProperty的字符串值。
答案 0 :(得分:1)
如果你真的想要我从你的描述中收集的东西(访问在运行时指定的属性),这个
Dim sComputer : sComputer = "."
Dim sWQL : sWQL = "Select * from Win32_LogicalDisk"
Dim sProperty : sProperty = "Name" ' "DriveType"
Dim oWMIS : Set oWMIS = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & sComputer & "\root\cimv2")
Dim oColl, oItem
Set oColl = oWMIS.ExecQuery(sWQL)
For Each oItem in oColl
WScript.Echo sProperty & ":", oItem.Properties_(sProperty).Value
Next
输出:
Name: A:
Name: C:
Name: D:
Name: E:
Name: M:
或:
DriveType: 2
DriveType: 3
DriveType: 5
DriveType: 4
DriveType: 4
应该让你开始:使用项目的Properties_'字典'。