用于确定操作系统版本和ServicePack的VBScript IF语句

用于确定操作系统版本和ServicePack的VBScript IF语句,vbscript,wmi,Vbscript,Wmi,我正在为Office 2010和其他几个应用程序编写部署脚本,我们在测试中遇到的问题之一是一些计算机仍然有XP SP2,因此我想为此编写一个安全措施代码 我想到了这个 Set colOperatingSystem = objWMIService.ExecQuery("Select * from Win32_OperatingSystem") For Each objOperatingSystem in colOperatingSystem ServicePack = objOperatingS

我正在为Office 2010和其他几个应用程序编写部署脚本,我们在测试中遇到的问题之一是一些计算机仍然有XP SP2,因此我想为此编写一个安全措施代码

我想到了这个

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

For Each objOperatingSystem in colOperatingSystem
ServicePack = objOperatingSystem.ServicePackMajorVersion
Next

IF not ServicePack = "3" Then

MsgBox "WARNING: prerequisite to installing Microsoft Office 2010 Professional you must first install service pack 3" & VbCrlf & "your current Service Pack Version is " & ServicePack

ELSE

'Do Nothing

END IF
我将其插入XP SP2机器,并在WindowLoad上获得了警告弹出窗口,因此我很高兴,但当我将其插入windows 7机器时,它会抛出相同的消息,深入powershell一点,我意识到,由于windows 7将其ServicePackMajorVersion号报告为“1”,因此它不符合条件

希望有人知道如何编写IF/Conditional语句来绕过Windows 7 PC,我查看了版本号7601,但不确定如何嵌套这些

签出:

首先查找操作系统版本,如果XP查找SP 3,如果Win 7查找SP 1。

请检查:


首先查找操作系统版本,然后如果XP查找SP 3,如果Win 7查找SP 1。

要测试您是否在Windows XP下运行,必须检查
Win32\u OperatingSystem
WMI类的
version
属性是否以
5.1

检查一下这个样品

strComputer = "."
 Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")        
Set colOperatingSystem = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

For Each objOperatingSystem in colOperatingSystem
ServicePack = objOperatingSystem.ServicePackMajorVersion
Version = objOperatingSystem.Version

Next

IF Mid(Version,1,3)="5.1" And  not ServicePack = "3" Then

MsgBox "WARNING: prerequisite to installing Microsoft Office 2010 Professional you must first install service pack 3" & VbCrlf & "your current Service Pack Version is " & ServicePack

ELSE

'Do Nothing

END IF

要测试是否在Windows XP下运行,必须检查
Win32\u OperatingSystem
WMI类的
Version
属性是否以
5.1

检查一下这个样品

strComputer = "."
 Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")        
Set colOperatingSystem = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

For Each objOperatingSystem in colOperatingSystem
ServicePack = objOperatingSystem.ServicePackMajorVersion
Version = objOperatingSystem.Version

Next

IF Mid(Version,1,3)="5.1" And  not ServicePack = "3" Then

MsgBox "WARNING: prerequisite to installing Microsoft Office 2010 Professional you must first install service pack 3" & VbCrlf & "your current Service Pack Version is " & ServicePack

ELSE

'Do Nothing

END IF

我的完美主义者真的想更改代码以测试低于3的service pack,但我意识到这可能是出于自愿,因为不会有SP4。我的完美主义者真的想更改代码以测试低于3的service pack,但我意识到这可能是出于自愿,因为不会有SP4。