Что нового

Поиск фиксов, установленных в ОС (Win7)

gora

Знающий
Сообщения
315
Репутация
19
Требуется получить массив с именами, установленных в ОС фиксов, в формате (KB971033 KB2425227 KB2446710 и т.д.), но можно и просто номера.
Скрипт нужен только для Win7 (x64\x86).
Можно наверно распарсить вывод SystemInfo.exe, но для меня это трудновато. Возможно есть и другие способы!?

Надеюсь на вашу помощь.
Спасибо.
 

VladUs

Скриптер
Сообщения
621
Репутация
181
Попробуйте так :

Код:
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2") 
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_QuickFixEngineering") 
For $objItem in $colItems 
    ConsoleWrite("=============================" & @CRLF)
    ConsoleWrite ("Name: " & $objItem.Name & @CRLf)
    ConsoleWrite("Description: " & $objItem.Description & @CRLf)
    ConsoleWrite("HotFixID: " & $objItem.HotFixID  & @CRLf)
    ConsoleWrite("ServicePackInEffect: " & $objItem.ServicePackInEffect & @CRLF)
    
Next
 
Автор
G

gora

Знающий
Сообщения
315
Репутация
19
VladUs
Ваш вариант работает, но выводит только обновления самой системы, а обновления дополнительных компонентов не выводит.
Например, выводится обновление KB2478662 относящееся к .Net 3.5.1, а обновления KB2478663, относящегося к .Net 4.0, в списке нет. Однако KB2478663 установлено и отображается системой в списке "Установленные обновления".
Можно ли получить полный список обновлений, которые отображает система?
 

VladUs

Скриптер
Сообщения
621
Репутация
181
Ну... не знаю , у меня вроде все исправления выводит...
Попробуйте через коммандлет - Get-HotFix из Powershell . Команда выводит все исправления установленные в системе
Вот так

Код:
get-hotfix |Select-Object "HotFixID", "ServicePackInEffect" , "Description" | Out-Host -Paging

Вообще все записи об обновлениях и исправлениях Windows хранит в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates
 
Верх