在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
我假设你是不是保存了这些,你可以通过 “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
嗨,感谢您的帮助。那正是我想要做的。将“Wscript.echo”的输出保存到一个变量中,以便我可以将这些信息用作If then else语句的一部分。任何额外的帮助表示赞赏。正如你所看到的,我是VB脚本的新手。 – user3163888
我已经在这个脚本中为你完成了。我将这些值保存为“osVersion”“osCSDVersion”和“osArchitecture” – Damien
非常感谢。 – user3163888
“if”陈述在哪里? 'for'循环的结果是什么? – codemonkeh