使用 vbscript 从远程计算机获取多个值
Getting multiple values from remote computers using vbscript
通过使用 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
除了OS(来自oss),我可以得到所有的东西:
script.vbs(8, 5) Microsoft VBScript runtime error: Wrong number of
arguments or invalid property assignment
如有任何帮助,我们将不胜感激。
将查询更改为:
Set oss = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
现在您已经安装了所有 OS 中的 collection,您可以使用标题 属性 然后存储在数组中(以防万一,有多个 OS)
Dim arrCap()
Dim intCtr: intCtr=-1
For each os in oss
intCtr=intCtr+1
Redim preserve arrCap(intCtr)
arrCap(intCtr) = os.Caption
Next
现在数组中包含了所有操作系统的操作系统版本。如果你只有一个 OS,你可以使用这个数组的第 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
这是输出:
通过使用 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
除了OS(来自oss),我可以得到所有的东西:
script.vbs(8, 5) Microsoft VBScript runtime error: Wrong number of arguments or invalid property assignment
如有任何帮助,我们将不胜感激。
将查询更改为:
Set oss = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
现在您已经安装了所有 OS 中的 collection,您可以使用标题 属性 然后存储在数组中(以防万一,有多个 OS)
Dim arrCap()
Dim intCtr: intCtr=-1
For each os in oss
intCtr=intCtr+1
Redim preserve arrCap(intCtr)
arrCap(intCtr) = os.Caption
Next
现在数组中包含了所有操作系统的操作系统版本。如果你只有一个 OS,你可以使用这个数组的第 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
这是输出: