Est-il possible de connaître les Service Packs installés sur une machine Windows 2000 à l'aide de WMI?Requête WMI pour obtenir la liste des Service Packs
0
A
Répondre
2
Il y a un moyen suggéré d'obtenir un logiciel installé à l'aide WMI - mais pas tous les logiciels apparaît, de sorte que vous auriez à ...
1) Essayez et voir si elles apparaissent tout
2) Régler l'exemple pour filtrer les résultats afin que les service packs montrent
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
0
Oui, la Win32_OperatingSystem de classe contient wmi toutes ces informations. Je peux voir vérifier ces informations en utilisant Powershell pour vérifier ma machine locale:
PS c:\> get-wmiobject win32_operatingsystem | `
select BuildNumber, ServicePackMajorVersion, `
ServicePackMinorVersion | format-table -auto
BuildNumber ServicePackMajorVersion ServicePackMinorVersion
----------- ----------------------- -----------------------
7100 0 0
Note: Powershell ne fonctionne que sur XP ou plus, mais vous pouvez vérifier les systèmes à distance en passant un paramètre -Ordinateur pour obtenir-wmiobject.
0
Un exemple de VBScript Hey, Scripting Guy! série:
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