在VB脚本中使用WMI对象来决定运行哪些程序

时间:2014-01-06 01:43:40

标签: vbscript wmic

我有一个vbscript,它将找到操作系统,Service Pack和OS体系结构,但是当我尝试在If then语句中使用该对象时,我没有定义,我尝试声明它但是没有用。我想要完成的是创建一个脚本,它将定义操作系统,Service Pack以及系统是x86还是x64以及执行一个程序,该程序将安装特定于该系统的更新但我被卡住了。

Set dtmConvertedDate = CreateObject("WbemScripting.SWbemDateTime")

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

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

For Each objOperatingSystem in colOperatingSystems
    Wscript.Echo "Version: " & objOperatingSystem.Version
    Wscript.Echo "Service Pack: " & objOperatingSystem.CSDVersion
    Wscript.Echo "CPU Bit: " & objOperatingSystem.OSArchitecture
Next

1 个答案:

答案 0 :(得分:0)

我假设你没有存储你用“wscript.echo”回应的变量..

您可以使用此示例(或制作案例陈述):

Set dtmConvertedDate = CreateObject("WbemScripting.SWbemDateTime")

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

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

For Each objOperatingSystem in colOperatingSystems
   osVersion      = objOperatingSystem.Version
   osCSDVersion   = objOperatingSystem.CSDVersion
   osArchitecture = objOperatingSystem.OSArchitecture
Next

Wscript.Echo "Version: "  & osVersion
Wscript.Echo "Service Pack: " & osCSDVersion
Wscript.Echo "CPU Bit: " & osArchitecture


If InStr(LCase(osArchitecture), "64-bit") Then
    wscript.echo "64-bit"
    ' .... Do stuff here ....
Else
    wscript.echo "not 64-bit"
    ' .... Do stuff here ....
End If