Запрос WMI для получения списка пакетов обновления - PullRequest
0 голосов
/ 12 июня 2009

Можно ли узнать, какие пакеты обновления установлены на компьютере с Windows 2000 с помощью WMI?

Ответы [ 3 ]

2 голосов
/ 12 июня 2009

Существует рекомендуемый способ получения установленного программного обеспечения с использованием 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
0 голосов
/ 12 июня 2009

Пример VBScript от Эй, сценарист! series:

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
0 голосов
/ 12 июня 2009

Да, 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 или выше, но вы можете проверить удаленные системы, передав параметр -Computer в get-wmiobject.

...