Windows Update: jak pobrać aktualizacje z Wiersza poleceń?
Windows zawiera trzy mechanizmy aktualizacji: Microsoft Update, Microsoft Store oraz WinGet. Tylko jedno z nich dostarcza mechanizm Wiersza poleceń dostępny dla użytkownika, ale każde z nich taki posiada, na wewnętrzny użytek.
10.04.2024 | aktual.: 10.04.2024 07:08
Głównym narzędziem do sprawdzania aktualizacji w Windows jest aplikacja Ustawienia i sekcja Windows Update. Jest ona całkowicie interaktywna: wymaga obsługi przez użytkownika. Wiadomo jednak, że aktualizacje są sprawdzane automatycznie w ramach Harmonogramu Zadań, a także że własne, tekstowe mechanizmy do sprawdzania aktualizacji stosuje Windows Server. Zatem w systemie są dostępne narzędzia umożliwiające sprawdzanie aktualizacji z Wiersza poleceń.
Dalsza część artykułu pod materiałem wideo
Windows Update
Wewnętrznym poleceniem służącym do wyszukiwania i instalowania aktualizacji jest UsoClient. Narzędzie to jest nieudokumentowane, a Microsoft informuje, że użytkownicy nie powinni do stosować, a zamiast tego wykorzystywać narzędzie graficzne. UsoClient jest jednak wykorzystywany przez sam system Windows. Służy do wydawania rozkazów usłudze Windows Update Orchestrator. Zachowanie to można wywołać samodzielnie, następnymi poleceniami:
UsoClient StartScan
UsoClient StartDownload
UsoClient StartInstall
Ponieważ UsoClient jest jedynie zleceniodawcą, jedyne co robi, to zmienia stan Windows Update. Oznacza to, że zażądanie pobrania (StartDownload) nie powiedzie się, gdy trwa jeszcze wyszukiwanie (StartScan), a instalacja (ScanInstall) nie będzie możliwa, gdy dalej trwa pobieranie.
Jest to charakterystyczne dla wszystkich narzędzi Windows Update. Radzi sobie z tym wbudowane w Windows Server narzędzie SConfig, ono jednak stosuje skomplikowaną interakcję skryptową z modelem COM Microsoft.Update.Session. Dla chcących mieć więcej kontroli nad tekstową obsługą Windows Update istnieje moduł PSWindowsUpdate autorstwa Michała Gajdy.
Sklep w Windows
Aktualizacja aplikacji Microsoft Store jest nieco trudniejsza. Wymaga interakcji z obiektami CIM Instance, co jest możliwe tylko dla kont administracyjnych. Oznacza to, że zażądanie aktualizacji aplikacji sklepowych jest możliwe tylko z Wiersza poleceń uruchomionego jako administrator i wymaga środowiska PowerShell. Oto polecenie, które "klika" przycisk "Aktualizuj wszystkie" w aplikacji Microsoft Store:
Get-CimInstance `
-Namespace "Root\cimv2\mdm\dmmap" `
-ClassName "MDM_EnterpriseModernAppManagement_AppManagement01" `
| Invoke-CimMethod -MethodName UpdateScanMethod
Najłatwiejsze jest sprawdzenie aktualizacji za pomocą narzędzia WinGet, zwanego często niepoprawnie "menedżerem pakietów Windows". Niestety, Microsoft zdecydował się, zamiast usprawnić Sklep, czyniąc z niego coś na kształt repozytorium, stworzyć równoległe rozwiązanie, w postaci bazy pakietów WinGet.
Dopiero od pewnego czasu możliwe jest stosowanie Microsoft Store jako źródła informacji dla WinGet. W dalszym ciągu jednak niemożliwe jest wykonanie aktualizacji zainstalowanych aplikacji sklepowych, ponieważ API Microsoft Store dla WinGet nie dostarcza numerów wersji. Te aplikacje, którymi winget umie zarządzać, da się zaktualizować prostym:
winget upgrade
Winget jest jednak wciąż bardzo zawodnym narzędziem, niespełniającym pokładanych w nim oczekiwań. Daleko mu jakościowo rozwiązań znanych ze świata Linuksa, jak pakiety RPM i Flatpak (lub DEB i Snap). Sytuacja ta ulega bardzo powolnej poprawie.
Kamil J. Dudek, współpracownik redakcji dobreprogramy.pl