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

问题描述:

我有一个vbscript可以找到操作系统,Service Pack和OS体系结构,但是当我尝试在if语句中使用该对象时,它未定义,我尝试宣布它,但没有奏效。我试图完成的是创建一个脚本,它将定义操作系统,Service Pack以及系统是x86还是x64,并执行一个程序来安装特定于系统的更新,但我被卡住了。任何帮助表示赞赏。在VB脚本中使用WMI对象来决定运行哪个程序

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 
+2

“if”陈述在哪里? 'for'循环的结果是什么? – codemonkeh

我假设你是不是保存了这些,你可以通过 “wscript.echo” 呼应变量..

您可以使用此示例(或作出case语句):

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 
+0

嗨,感谢您的帮助。那正是我想要做的。将“Wscript.echo”的输出保存到一个变量中,以便我可以将这些信息用作If then else语句的一部分。任何额外的帮助表示赞赏。正如你所看到的,我是VB脚本的新手。 – user3163888

+0

我已经在这个脚本中为你完成了。我将这些值保存为“osVersion”“osCSDVersion”和“osArchitecture” – Damien

+0

非常感谢。 – user3163888