Jak zautomatyzować aktualizacje systemu Windows za pomocą programu PowerShell: krótki przegląd
Zarządzanie poprawkami stanowi kluczowy aspekt administracji infrastrukturą IT, podobnie jak Wykonać kopię zapasową stacji roboczej z systemem Windows. Dzięki odpowiedniemu rozwiązaniu do zarządzania poprawkami można ulepszyć system poprzez testowanie lub instalowanie najnowszych aktualizacji oprogramowania i poprawek. Poprawki są traktowane jako tymczasowe rozwiązania istniejących problemów, pojawiających się w okresie między pełnymi wydaniami oprogramowania. Skuteczne zarządzanie poprawkami pozwala na szybkie usuwanie luk w zabezpieczeniach systemu i ograniczanie potencjalnych zagrożeń.
System Windows oferuje własne rozwiązanie do zarządzania poprawkami – Windows Update. Jednak wielu administratorów IT nadal uważa proces zarządzania poprawkami za zbyt skomplikowany i czasochłonny. Co więcej, aktualizacje systemu mogą wpływać na przebieg pracy produkcyjnej, ponieważ często uruchamiają się automatycznie w godzinach pracy. Dzięki poleceniom cmdlet programu PowerShell można zautomatyzować aktualizacje systemu Windows, oszczędzając w ten sposób wysiłek i czas.
Ten wpis na blogu opisuje, w jaki sposób można używać programu PowerShell do instalowania aktualizacji systemu Windows, i zawiera listę przydatne polecenia PowerShell polecenia cmdlet służących do automatyzacji procesu zarządzania poprawkami. Instalowanie poprawek może zmniejszyć ryzyko wystąpienia błędów lub luk w zabezpieczeniach mających wpływ na system.
Czym jest PSWindowsUpdate?
Aby proces zarządzania poprawkami systemu Windows przebiegał sprawnie i łatwo, można skorzystać z modułu PSWindowsUpdate opracowanego przez Michała Gajdę. Moduł ten jest publicznie dostępny i można go bezpłatnie pobrać ze strony Galeria PowerShell. Głównym wymaganiem jest to, aby na komputerze działał system operacyjny Windows w wersji od Vista lub Windows Server 2008. Ponadto wymagana jest wersja PowerShell 2.0 lub nowsza.
Dzięki modułowi PSWindowsUpdate można sprawdzić, czy dla danego komputera są dostępne aktualizacje systemu Windows. Co więcej, moduł ten umożliwia scentralizowane zarządzanie aktualizacjami systemu Windows na różnych serwerach i stacjach roboczych z systemem Windows. W ten sposób można zdalnie kontrolować, które aktualizacje są instalowane, usuwane lub ukrywane.
Jak zautomatyzować aktualizacje systemu Windows za pomocą PowerShell
Poniżej przedstawimy proces konfiguracji modułu PSWindowsUpdate, w tym sposób pobrania i zainstalowania modułu, a także sposób sprawdzenia poleceń, które pomogą zautomatyzować aktualizacje systemu Windows.
Jak zainstalować moduł PSWindowsUpdate
Aby skutecznie zautomatyzować zarządzanie poprawkami systemu Windows, należy najpierw zainstalować moduł PSWindowsUpdate na komputerze. W tym celu otwórz okno PowerShell z uprawnieniami administratora i wprowadź następujące polecenie:
Install-Module -Name PSWindowsUpdate
Po uruchomieniu tego polecenia pojawi się pytanie, czy chcesz zainstalować wskazany moduł z serwisu PSGallery. Wybierz opcję „ Yes ”, jeśli chcesz kontynuować i zaakceptować wszystkie zmiany.

Po zainstalowaniu modułu musisz upewnić się, że masz zdalny dostęp do innych komputerów. Dzięki temu będziesz mógł instalować aktualizacje systemu Windows na komputerach zdalnych, co pozwoli Ci poświęcić na to minimalną ilość czasu i wysiłku. Aby moduł PSWindowsUpdate działał na komputerach zdalnych, musisz zapisać go na swoim komputerze i udostępnić w sieci.
Jeśli inne serwery mogą zaimportować i wdrożyć ten moduł, możesz skonfigurować automatyczne zarządzanie poprawkami systemu Windows. W tym celu uruchom następujący cmdlet:
Save-Module -Name PSWindowsUpdate -Path
W tym miejscu musisz zdefiniować parametr –Path , określając lokalizację, w której ma zostać zapisany moduł PSWindowsUpdate.
Jak korzystać z modułu PSWindowsUpdate
W kolejnym kroku dowiesz się, jak korzystać z tego modułu w celu zautomatyzowania aktualizacji systemu Windows za pomocą poleceń cmdlet programu PowerShell. Stanowi to ogromną zaletę dla administratorów IT, którzy muszą przeprowadzać proces zarządzania poprawkami na komputerach z trybem Server Core bez graficznego interfejsu użytkownika. Dzięki tym poleceniom cmdlet można zminimalizować złożoność administracji oraz sprawić, że proces ten będzie łatwiejszy i mniej podatny na błędy. Aby uzyskać pełną listę dostępnych aktualizacji systemu Windows, uruchom następujące polecenie w PowerShell:
Get-WindowsUpdate
Na ekranie powinien pojawić się wynik przedstawiony poniżej:
Dzięki tym informacjom będziesz mieć pewność, które oprogramowanie lub aplikacje wymagają aktualizacji. Następnie możesz zainstalować wszystkie aktualizacje, wprowadzając poniższe polecenie. Ponadto, dodając parametr –AutoReboot , możesz zapewnić, że system automatycznie uruchomi się ponownie po zainstalowaniu aktualizacji.
Get-WUInstall -AcceptAll –AutoReboot
Jeśli nie chcesz, aby system się zrestartował (aby nie zakłócać przebiegu pracy produkcyjnej), możesz uruchomić następujący cmdlet:
Get-WUInstall -AcceptAll –IgnoreReboot
Na ekranie możesz zobaczyć postęp procesu zarządzania poprawkami, a także pełną listę aktualizacji i ich aktualny status.
Po zakończeniu procesu instalacji w konsoli PowerShell pojawi się następujący komunikat: „Wymagane jest ponowne uruchomienie, ale należy to zrobić ręcznie”. W związku z tym nadal konieczne jest ponowne uruchomienie systemu, ale można to zrobić w dogodnym dla siebie terminie.
Jeśli chcesz pobrać tylko konkretną aktualizację, możesz dodać parametr –KBArticleID do polecenia cmdlet programu PowerShell. Nie zapomnij podać numeru artykułu KB, aby pobrać właściwą poprawkę. Na przykład chcę zainstalować Narzędzie do usuwania złośliwego oprogramowania systemu Windows x64 oraz Aktualizację Security Intelligence dla programu Windows Defender Antivirus . Odpowiednie polecenie PowerShell powinno wyglądać następująco:
Get-WUInstall -KBArticleID KB890830, KB2267602 –AcceptAll
Po uruchomieniu tego polecenia na moim komputerze zostaną zainstalowane tylko dwie z wymienionych aktualizacji.
Przegląd poleceń modułu PSWindowsUpdate
Jeśli zastanawiasz się, które cmdlety PowerShell mogą współpracować z modułem PSWindowsUpdate, wpisz następujące polecenie i naciśnij Enter:
Get-Command –module PSWindowsUpdate
Tutaj możesz zobaczyć pełną listę poleceń modułu.

Przyjrzyjmy się, jak działają niektóre z tych poleceń.
1. Cmdlet Get-WUHistorypozwala wyświetlić historię najnowszych aktualizacji. Po uruchomieniu tego polecenia na ekranie pojawi się podobny wynik.
2. Kolejny cmdlet to Get-WUInstallerStatus, który pomaga zweryfikować stan usługi Windows Installer. Dzięki niemu można sprawdzić, czy instalator działa poprawnie. Wynik tej operacji może wyglądać następująco:
3. Uruchamiając cmdlet Get-WURebootStatus , można sprawdzić, czy konieczne jest ponowne uruchomienie systemu, aby dana aktualizacja została w pełni zastosowana.
4. Za pomocą cmdletu Get-WUServiceManager można sprawdzić źródło aktualizacji systemu Windows. 
Jak widać, ostatnia kolumna wskazuje źródło aktualizacji (np. Windows Update, DCat Flighting Prod itp.).
5. Można ukryć określone aktualizacje z listy, aby uniknąć ich instalacji na komputerze. W tym celu należy uruchomić polecenie Hide-WindowsUpdate , w którym można podać identyfikatory artykułów KB, które chcesz ukryć. Poniższy przykład pokazuje, jak ukryć aktualizację KB2267602 z listy:
$HideList = "KB2267602"
Hide-WindowsUpdate -KBArticleID $HideList –Hide
Przed wprowadzeniem jakichkolwiek zmian pojawi się prośba o potwierdzenie wyboru. Wpisz Y , aby ukryć artykuł z bazy wiedzy.

Jeśli jednak chcesz uzyskać listę ukrytych aktualizacji, możesz uruchomić poniższy cmdlet.
W kolumnie Status widoczna jest litera H , oznaczająca, że aktualizacja została pomyślnie ukryta. W związku z tym przy następnym uruchomieniu polecenia Get-WUInstall wybrana aktualizacja zostanie automatycznie wykluczona z listy dostępnych aktualizacji.
Jeśli chcesz cofnąć zmiany, możesz użyć następującego polecenia cmdlet w konsoli PowerShell:
Hide-WindowsUpdate -KBArticleID $HideList -Hide:$false
Ponownie zostaniesz poproszony o potwierdzenie zmian poprzez wpisanie Y.

Jak widać, litera H nie pojawia się już w statusie aktualizacji, co oznacza, że ta aktualizacja systemu Windows nie jest już ukryta i można ją pobrać na komputer.
6. Inną dostępną opcją konfiguracyjną jest usunięcie aktualizacji zainstalowanych na komputerze. W tym celu można użyć polecenia cmdlet Remove-WindowsUpdate i wpisać identyfikator artykułu KB, który chcesz odinstalować z komputera. Na przykład:
Remove-WindowsUpdate -KBArticleID KB4519573 –IgnoreReboot
Dodając parametr –IgnoreReboot , zapewniasz, że komputer nie uruchomi się ponownie automatycznie. Po odinstalowaniu aktualizacji możesz później ponownie uruchomić komputer.
7. Co nie mniej ważne, za pomocą polecenia cmdletu Get-WUList można wyszukać dostępne aktualizacje systemu Windows na komputerze zdalnym.
Get-WUList –ComputerName Server5
Aby to polecenie cmdletu działało, na komputerze zdalnym należy również zainstalować moduł PSWindowsUpdate. W ten sposób można zautomatyzować aktualizacje systemu Windows dla wielu komputerów z jednego panelu. Dzięki PSWindowsUpdate proces zarządzania poprawkami przebiega w prosty i wydajny sposób.
Ponadto można zmniejszyć obciążenie związane z administracją, z którą administratorzy IT mogą się borykać podczas instalowania poprawek systemowych.
Podsumowanie
Moduł PSWindowsUpdate został opracowany w celu uproszczenia i zwiększenia wydajności procesu zarządzania poprawkami. Dzięki automatyzacji instalacji aktualizacji masz pewność, że Twój system jest regularnie aktualizowany, co pozwala zminimalizować ryzyko awarii systemu i naruszeń bezpieczeństwa. Poprawki są tworzone głównie w celu usunięcia problemów lub luk w zabezpieczeniach wykrytych w programie. Jednak regularne zarządzanie poprawkami nie zapewnia pełnej ochrony całego środowiska produkcyjnego.
W tym celu należy skorzystać z kompleksowego rozwiązania do ochrony danych, które oferuje tworzenie kopii zapasowych i odzyskiwanie danych w środowiskach fizycznych, wirtualnych i chmurowych. Dzięki NAKIVO Backup & Replication możesz zabezpieczyć swoje najważniejsze dane i aplikacje na wielu platformach, zapewnić odzyskiwanie danych w każdych okolicznościach oraz obniżyć koszty związane z ochroną danych.



