【问题标题】:Getting multiple values from remote computers using vbscript使用 vbscript 从远程计算机获取多个值
【发布时间】:2017-05-22 07:26:43
【问题描述】:

在环境中使用 vbScript(我已经多年没有接触过)在没有 PowerShell 的情况下工作。

尝试使用以下方法获取信息:

    strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery ("Select * from CIM_Datafile Where Name = 'c:\\windows\\system32\\drivers\\srv.sys'")
Set oss = objWMIService.ExecQuery ("Select caption from Win32_OperatingSystem")
Set wshShell = CreateObject( "WScript.Shell" )
strUserDomain = wshShell.ExpandEnvironmentStrings( "%USERDOMAIN%" )
For Each objFile in colFiles
    Wscript.Echo strComputer & "," & strUserDomain & "," & oss & "," & objFile.Version
Next

除了操作系统(来自 oss)之外,我可以得到所有东西:

script.vbs(8, 5) Microsoft VBScript 运行时错误:错误数量 参数或无效的属性分配

任何帮助将不胜感激。

【问题讨论】:

    标签: vbscript wmi


    【解决方案1】:

    将查询更改为:

    Set oss = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
    

    现在您已经安装了所有操作系统的集合,您可以使用标题属性并将其存储在一个数组中(以防有多个操作系统)

    Dim arrCap()
    Dim intCtr: intCtr=-1
    For each os in oss
        intCtr=intCtr+1
        Redim preserve arrCap(intCtr)
        arrCap(intCtr) = os.Caption
    Next
    

    现在数组包含所有操作系统的操作系统版本。如果您只有一个操作系统,则可以使用该数组的第 0 个元素,如下所示:

    Wscript.Echo arrCap(0)
    

    您的最终代码应如下所示:

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colFiles = objWMIService.ExecQuery ("Select * from CIM_Datafile Where Name = 'c:\\windows\\system32\\drivers\\srv.sys'")
    Set oss = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
    Set wshShell = CreateObject( "WScript.Shell" )
    
    Dim arrCap()
    Dim intCtr: intCtr=-1
    For each os in oss
        intCtr=intCtr+1
        Redim preserve arrCap(intCtr)
        arrCap(intCtr) = os.Caption
    Next
    
    strUserDomain = wshShell.ExpandEnvironmentStrings( "%USERDOMAIN%" )
    For Each objFile in colFiles
        Wscript.Echo strComputer & "," & strUserDomain & "," & arrCap(0) & "," & objFile.Version
    Next
    

    这是输出:

    【讨论】:

    • 感谢 Kira,感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多