Главная

Thursday, 19 October 2023

Что нам скажет Get-HotFix?


Привет всем.

Все любят обновляться. А Вы еще не поставили последний патч? Уууу, тогда мы идем к Вам!))

Могу допустить что вам сегодня это не так критично, но мне стало интересно как получить список того что в очередной раз моя Windows 10  на себя накатила. И по быстрому.

Ок, идем в Powershell и запускаем милый командлет Get-HotFix. На экран весело выплывает список из 5 апдейтов. Всего то? Я сомневаюсь, иду в  Control Panel -> installed Updates  и вижу список в два раза больше. Подозреваю что  Get-HotFix показывает только то что относится к самой ОС.


Ок, пробую запрос через WMI: 

Get-WmiObject -class Win32_QuickFixEngineering -namespace "root\cimv2" | Select-Object -Property HotFixID | Out-String

Те же 5 апдейтов в результате. 

Утилита systeminfo.exe также настаивает на пяти. Совсем печаль. Получается что возможность увидеть всех сразу либо через Settings -> Updates and Security -> Update History либо вот таким кодом:

$Session = New-Object -ComObject "Microsoft.Update.Session"

$Searcher = $Session.CreateUpdateSearcher()

$historyCount = $Searcher.GetTotalHistoryCount()

$UpdateHistory = $Searcher.QueryHistory(0, $historyCount)

$KBs = @()

foreach ($Update in $UpdateHistory) { 

                [regex]::match($Update.Title,'(KB[0-9]{6,7})').value | Where-Object {$_ -ne ""} | foreach { 

                    $KB = New-Object -TypeName PSObject 

                    $KB | Add-Member -MemberType NoteProperty -Name KB -Value $_ 

                    $KB | Add-Member -MemberType NoteProperty -Name Title -Value $Update.Title  

                    $KB | Add-Member -MemberType NoteProperty -Name Description -Value $Update.Description

                    $KB | Add-Member -MemberType NoteProperty -Name Date -Value $Update.Date    

                    $KBs += $KB

                } 

            } 

$KBs | Select Date,KB,Title,Description 

Если честно, то от Get-HotFix я ожидал большего.

Удачи.


1 comment:

  1. get-hotfix | Sort-Object -Descending -Property InstalledOn -ErrorAction SilentlyContinue

    ReplyDelete

А что вы думаете по этому поводу?