0

Office 2010 およびその他のいくつかのアプリケーションの展開スクリプトを作成中です。テストで遭遇した問題の 1 つは、一部のコンピューターがまだ 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 マシンにプラグインすると、警告ポップアップ On_WindowLoad が表示されたので満足しましたが、Windows 7 マシンにプラグインするとすぐに同じメッセージがスローされ、powershell を少し調べてみると、Windows 7 以降ServicePackMajorVersion 番号が「1」と報告されているため、条件を満たしていません。

誰かが Windows 7 PC をバイパスする IF / 条件ステートメントを作成する方法を知っていることを期待して、ビルド番号 7601 を調べましたが、これらをネストする方法がわかりません

4

2 に答える 2

6

Windows XP で実行しているかどうかをテストするにVersionは、WMI クラスのプロパティが次でWin32_OperatingSystem始まるかどうかを確認する必要があります。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
于 2012-04-11T02:14:46.107 に答える
0

チェックアウト: http://www.tek-tips.com/viewthread.cfm?qid=1249039

最初に OS バージョンを探し、XP の場合は SP 3 を探し、Win 7 の場合は SP 1 を探します。

于 2012-04-11T01:30:30.083 に答える