WMIクエリは、サービスパックのリストを取得します
-
13-09-2019 - |
質問
これは、WMIを使用してWindows 2000マシンにインストールされているサービスパックを見つけることは可能ですか?
解決
WMIを使用してインストールしたソフトウェアを取得する提案の方法があります - ではないすべてのソフトウェアがアップ示しているが、あなたがする必要があると思いますので...
1)それを試してみて、彼らはすべてに表示されますかどうかを確認
2)の結果をフィルタリングする例を調節するようにのみサービスパック示す
strHost = "."
Const HKLM = &H80000002
Set objReg = GetObject("winmgmts://" & strHost & _
"/root/default:StdRegProv")
Const strBaseKey = _
"Software\Microsoft\Windows\CurrentVersion\Uninstall\"
objReg.EnumKey HKLM, strBaseKey, arrSubKeys
For Each strSubKey In arrSubKeys
intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _
"DisplayName", strValue)
If intRet <> 0 Then
intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _
"QuietDisplayName", strValue)
End If
If (strValue <> "") and (intRet = 0) Then
WScript.Echo strValue
End If
Next
他のヒント
はい、WMIクラスのWin32_OperatingSystemは、この情報のすべてが含まれています。私は私のローカルマシンをチェックするためのPowerShellを使用してこの情報を確認見ることができます:
PS c:\> get-wmiobject win32_operatingsystem | `
select BuildNumber, ServicePackMajorVersion, `
ServicePackMinorVersion | format-table -auto
BuildNumber ServicePackMajorVersion ServicePackMinorVersion
----------- ----------------------- -----------------------
7100 0 0
注:PowerShellは唯一XP以降で動作しますが、あなたは-WmiObjectコマンドを取得するには - コンピュータのパラメータを渡すことによって、リモートシステムを確認することができます。
。からVBScriptの例さん、こんにちは!>シリーズます:
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 objOperatingSystem.ServicePackMajorVersion _
& "." & objOperatingSystem.ServicePackMinorVersion
Next
所属していません StackOverflow