Modul PSWindowsUpdate na správu aktualizácií systému Windows z prostredia PowerShell

Na správu aktualizácií systému Windows z príkazového riadka je veľmi vhodné použiť špeciálny modul PowerShell - PSWindowsUpdate. Modul PSWindowsUpdate nie je zabudovaný do systému Windows a je modulom tretích strán, ktorý je k dispozícii v galérii skriptov Technet. PSWindowsUpdate umožňuje správcom vzdialene skontrolovať, nainštalovať, odstrániť a skryť konkrétne aktualizácie na počítačoch a pracovných staniciach. Modul PSWindowsUpdate je obzvlášť užitočný, keď sa používa na správu aktualizácií v základných vydaniach systému Windows Server, ktoré nemajú grafické rozhranie, ako aj pri nastavovaní obrazu Windows v režime auditu..

obsah:

  • Nainštalujte modul na správu aktualizácií PSWindowsUpdate
  • Prehľad príkazov modulu PSWindowsUpdate
  • Správa aktualizácií systému Windows vo vzdialených počítačoch pomocou programu PowerShell
  • Získajte zoznam dostupných aktualizácií systému Windows od spoločnosti PowerShell
  • Install-WindowsUpdate: Nainštalujte aktualizácie pomocou programu PSWindowsUpdate
  • Get-WUHistory: Zobrazenie histórie nainštalovaných aktualizácií systému Windows
  • Remove-WindowsUpdate: Odinštalujte aktualizácie
  • Hide-WindowsUpdate: ako skryť nepotrebné aktualizácie pomocou PowerShell

Nainštalujte modul na správu aktualizácií PSWindowsUpdate

Ak používate Windows 10, môžete nainštalovať modul PSWindowsUpdate z online úložiska prostredníctvom správcu balíkov PackageManagement pomocou jediného príkazu:

Install-Module - Názov PSWindowsUpdate

V mojom prípade sa objavilo upozornenie, že program PSWindowsUpdate 1.5.2.6 už bol nainštalovaný. Ak chcete nainštalovať novšiu verziu, musíte spustiť príkaz:

Install-Module -Name PSWindowsUpdate -Force

Po dokončení inštalácie musíte skontrolovať dostupnosť balíka:

Get-Package -Name PSWindowsUpdate

Ak máte nainštalovanú staršiu verziu systému Windows (Windows 7 / 8.1 / Windows Server 2008 R2 / 2012 R2) alebo nemáte priamy prístup na internet, môžete nainštalovať modul PSWindowsUpdate ručne..

Modul PSWindowsUpdate je možné nainštalovať na akúkoľvek podporovanú verziu systému Windows od systému Vista / Windows Server 2008 s nainštalovaným programom PowerShell 2.0 (odporúča sa však PoSh 3.0 a vyššia).

  1. Stiahnite si najnovšiu verziu modulu PSWindowsUpdate zo stránky: https://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc a odomknite stiahnutý súbor; pamätajte, že v galérii skriptov TechNet je k dispozícii iba stará verzia modulu - v 1.5.6. Kým Správca balíkov NuGet inštaluje program PSWindowsUpdate 2.1.1.2 z PowershellGallery. Dostupné rutiny cmdlet a parametre sa môžu líšiť v rôznych verziách modulu..
  2. Rozbaľte archív s modulom do jedného z adresárov % USERPROFILE% \ Documents \ WindowsPowerShell \ Modules alebo % WINDIR% \ System32 \ WindowsPowerShell \ v1.0 \ Moduly (pri nepretržitom používaní modulu je to najlepšia možnosť);
  3. Povoliť skriptovanie: Set-ExecutionPolicy -Scope Process -ExecutionPolicy Unrestricted -Force
  4. Teraz môžete modul importovať do relácie PowerShell: Importovať modul PSWindowsUpdate poznámka. V systéme Windows 7 / Server 2008 R2 sa pri importe modulu PSWindowsUpdate môže vyskytnúť chyba, napríklad: Názov „Unblock-File“ nie je rozpoznaný ako názov cmdlet. Faktom je, že modul využíva niektoré funkcie, ktoré sa objavili iba v PowerShell 3.0. Ak chcete používať tieto funkcie, musíte upgradovať PowerShell alebo manuálne odstrániť riadok | Odblokujte súbor zo súboru PSWindowsUpdate.psm1.

Po nainštalovaní modulu PSWindowsUpdate do počítača ho môžete nainštalovať na diaľku na iné počítače alebo servery pomocou cmdlet Update-WUModule. Napríklad na skopírovanie modulu PSWindowsUpdate z počítača na dva vzdialené servery vykonajte príkazy (potrebujete prístup na vzdialené servery prostredníctvom protokolu SMB, portu TCP 445):

$ Targets = "Server1", "Server2"
Aktualizácia-WUModule -ComputerName $ Ciele -Miestne

Ak chcete modul uložiť do sieťového adresára a ďalej ho importovať do iných počítačov, postupujte takto:

Save-Module - Názov PSWindowsUpdate -Path \\ fs01 \ ps \

Prehľad príkazov modulu PSWindowsUpdate

Zoznam dostupných modulov cmdlets je možné zobraziť takto:

get-command -module PSWindowsUpdate

Stručne opíšeme účel príkazov modulu:

  • Clear-WUJob - Použite Get-WUJob na vyvolanie úlohy WUJob v plánovači.
  • Download-WindowsUpdate (alias pre Get-WindowsUpdate -Download) - získajte zoznam aktualizácií a sťahujte ich;
  • Get-WUInstall, Install-WindowsUpdate (alias pre Get-WindowsUpdate -Install) - inštalácia aktualizácií;
  • Hide-WindowsUpdate (alias pre Get-WindowsUpdate -Hide: $ false) - skryje aktualizáciu;
  • Uninstall-WindowsUpdate - odstráňte aktualizáciu pomocou Use Remove-WindowsUpdate;
  • pridať-WUServiceManager - registráciu aktualizačného servera (Windows Update Service Manager) v počítači;
  • Enable-WURemoting - povoliť pravidlá brány firewall, ktoré umožňujú vzdialené používanie rutiny cmdlet PSWindowsUpdate;
  • Get-WindowsUpdate (Get-WUList) - zobrazí zoznam aktualizácií, ktoré zodpovedajú zadaným kritériám, umožňuje nájsť a nainštalovať požadovanú aktualizáciu. Toto je hlavná rutina modulu PSWindowsUpdate. Umožňuje sťahovať a inštalovať aktualizácie zo servera WSUS alebo Microsoft Update. Umožňuje vám vybrať kategórie aktualizácií, konkrétne aktualizácie a určiť pravidlá pre reštartovanie počítača pri inštalácii aktualizácií;
  • Get-WUApiVersion - Získajte verziu nástroja Windows Update Agent v počítači
  • Get-WUHistory - zobraziť zoznam nainštalovaných aktualizácií (história aktualizácií);
  • Get-WUInstallerStatus - Kontrola stavu služby Windows Installer
  • Get-WUJob - Spustite aktualizačné úlohy WUJob v Plánovači úloh
  • Get-WULastResults - dátumy posledného vyhľadávania a inštalácie aktualizácií (LastSearchSuccessDate a LastInstallationSuccessDate);
  • Get-WURebootStatus - umožňuje skontrolovať, či je na vykonanie konkrétnej aktualizácie potrebný reštart;
  • Get-WUServiceManager - výstupné zdroje aktualizácie;
  • Get-WUSettings - Získajte nastavenia klienta Windows Update
  • vyvolanie WUJob - vzdialene vyvolávať úlohy WUJobs v Task Schduler na okamžité vykonanie úloh PSWindowsUpdate.
  • Remove-WindowsUpdate - odinštalovať aktualizáciu;
  • Remove-WUServiceManager - vypnite Správcu služieb Windows Update;
  • Set-PSWUSettings - uložte nastavenia modulu PSWindowsUpdate do súboru XML;
  • Set-WUSettings - Konfigurácia nastavení klienta Windows Update
  • Update-WUModule - aktualizujte modul PSWindowsUpdate (modul môžete aktualizovať na vzdialenom počítači jeho skopírovaním z aktuálneho, alebo aktualizovať z PSGallery).

Správa aktualizácií systému Windows vo vzdialených počítačoch pomocou programu PowerShell

Takmer všetky cmdlety modulu PSWindowsUpdate vám umožňujú riadiť inštaláciu aktualizácií na vzdialených počítačoch. Atribút sa používa na tento účel. -Názov počítača Host1, Host2, Host3.

Ak chcete spravovať aktualizácie na vzdialených počítačoch, musíte ich mená pridať do zoznamu dôveryhodných hostiteľov winrm:

winrm set winrm / config / client '@ TrustedHosts = "HOST1, HOST2, ..."'

Nainštalujte modul PSWindowsUpdate na vzdialené počítače a umožnite procesu dllhost.exe prístup k dynamickým portom RPC v bráne firewall..

Získajte zoznam dostupných aktualizácií systému Windows od spoločnosti PowerShell

Aktualizácie dostupné pre tento počítač môžete zobraziť na aktualizačnom serveri pomocou príkazov Get-WindowsUpdate alebo Get-WUList..

Ak chcete skontrolovať zoznam dostupných aktualizácií na vzdialenom počítači, postupujte takto:

Get-WUList -ComputerName server2

Môžete skontrolovať, odkiaľ by mali vaše operačné systémy Windows dostávať aktualizácie. Spustite príkaz:

Get-WUServiceManager

ServiceID IsManaged IsDefault Name --------- --------- --------- ---- 8b24b027-1dee-babb-9a95-3517dfb9c552 False False DCat Flighting Prod 855e8a7c -ecb4-4ca3-b045-1dfa50104289 False False Windows Store (DCat Prod) 3da21691-e39d-4da6-8a4b-b43877bcb1b7 Pravda pravda, aktualizačná služba Windows Server Update Service 9482f4b4-e343-43b6-b170-9a65bc822c77 False False False

Ako vidíte, počítač je nakonfigurovaný na príjem aktualizácií z miestneho servera WSUS (Windows Server Update Service = True). V takom prípade by sa vám mal zobraziť zoznam aktualizácií schválených pre váš počítač na serveri WSUS.

Ak chcete prehľadávať počítač na serveroch Microsoft Update (okrem aktualizácií systému Windows tieto servery obsahujú aktualizácie balíka Office a ďalšie produkty) na internete, spustite príkaz:

Get-WUlist -MicrosoftUpdate

Dostanete varovanie:

Get-WUlist: Služba Windows Update sa v počítači nenašla

Ak chcete povoliť skenovanie v službe Microsoft Update, spustite príkaz:

Add-WUServiceManager -ServiceID "7971f918-a847-4430-9279-4a52d1efe18d" -AddServiceFlag 7

Teraz môžete skenovať do služby Microsoft Update. Ako vidíte, v tomto prípade sa našli ďalšie aktualizácie pre Microsoft Visual C ++ 2008 a Microsoft Silverlight.

Ak chcete skontrolovať verziu nástroja Windows Update Agent v počítači, spustite príkaz:

Get-WUApiVersion

ComputerName PSWindowsUpdate PSWUModuleDll ApiVersion WuapiDllVersion ------------ --------------- ------------- ----- ----- --------------- FS01 2.1.1.2 2.0.6995.28496 8.0 10.0.14393.2879

Ak chcete zo zoznamu aktualizácií, ktoré váš počítač dostáva, odstrániť určité produkty alebo konkrétne balíčky, môžete ich vylúčiť pomocou:

  • Kategórie (-NotCategory);
  • Meno (-NotTitle);
  • Číslo aktualizácie (-NotKBArticleID).

Vylúčime napríklad zo zoznamu aktualizácií ovládačov OneDrive a jednu konkrétnu KB:

Get-WUlist -NotKategória „Ovládače“ -NotTitle OneDrive -NotKBArticleID KB4533002

Install-WindowsUpdate: Nainštalujte aktualizácie pomocou programu PSWindowsUpdate

Ak chcete automaticky stiahnuť a nainštalovať všetky dostupné aktualizácie pre váš Windows, postupujte takto:

Nainštalujte-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot

Kľúč AcceptAll umožňuje schválenie inštalácie pre všetky balíčky a AutoReboot umožňuje systému Windows automaticky reštartovať po inštalácii aktualizácií..

Môžete si uložiť históriu inštalácie aktualizácií do súboru denníka (môžete ho použiť namiesto WindowsUpdate.log).

Nainštalujte-WindowsUpdate -AcceptAll -Install -AutoReboot | Out-File "c: \ $ (get-date -f rrrr-MM-dd) -WindowsUpdate.log" -force

Nainštalovať je možné iba konkrétne aktualizácie podľa čísla KB:

Získajte systém WindowsUpdate -KBArticleID KB2267602, KB4533002 - Nainštalujte

V takom prípade je potrebné manuálne potvrdiť inštaláciu každej aktualizácie.

Ak chcete vylúčiť niektoré aktualizácie z inštalačného zoznamu, postupujte takto:

Inštalácia systému WindowsUpdate -NotKategória „Ovládače“ -NotTitle OneDrive -NotKBArticleID KB4011670 -Akceptovať všetko -IgnoreReboot

Modul umožňuje vzdialenú inštaláciu aktualizácie na viacerých počítačoch alebo serveroch naraz (na počítačoch musí byť nainštalovaný modul PSWindowsUpdate). Toto je obzvlášť výhodné, pretože umožňuje správcovi nevstúpiť ručne do všetkých serverov počas plánovanej inštalácie aktualizácií. Nasledujúci príkaz nainštaluje všetky dostupné aktualizácie na tri vzdialené servery:

Invoke-WUInstall -ComputerName server1, server2, server3 -Script ipmo PSWindowsUpdate; Get-WindowsUpdate -Install -AcceptAll -AutoReboot | Out-File C: \ Windows \ PSWindowsUpdate.log - Potvrdenie: $ false -Verbose -SkipModuleTest -RunNow

V module PSWindowsUpdate 2.1 musíte namiesto rutiny Invoke-WUInstall použiť Invoke-WUJob. Táto rutina vytvára plánovaciu úlohu na vzdialenom počítači, ktorý beží zo SYSTÉMU.

Preto v nových verziách modulu na vzdialenú inštaláciu aktualizácií použite nasledujúci príkaz:

$ ServerNames = “server1, server2, server3”
Invoke-WUJob -ComputerName $ ServerNames -Script ipmo PSWindowsUpdate; Install-WindowsUpdate -AcceptAll | Out-File C: \ Windows \ PSWindowsUpdate.log -RunNow -Confirm: $ false

Môžete nainštalovať aktualizácie na vzdialený počítač a poslať správu e-mailom správcovi:

Nainštalujte-WindowsUpdate - názov_počítača server1 -MicrosoftUpdate -AcceptAll - IgnoreReboot -SendReport -PSWUSettings @ SmtpServer = "smtp.winitpro.ru"; Do = "[email protected]"; Port 25 -Veróza

Get-WUHistory: Zobrazenie histórie nainštalovaných aktualizácií systému Windows

Pomocou príkazu Get-WUHistory zoznam aktualizácií nainštalovaných v počítači môžete získať skôr automaticky alebo ručne.

Môžete získať informácie o dátume inštalácie konkrétnej aktualizácie:

Get-WUHistória | Where-Object $ _. Title -match "KB4517389" | Vyberte objekt * | ft

Ak chcete získať informácie o nainštalovanej aktualizácii na niekoľkých vzdialených počítačoch, môžete použiť nasledujúci kód:

"server1", "server2" | Get-WUHistória | Where-Object $ _. Title -match "KB4011634" | Vyberte objekt * | ft

Remove-WindowsUpdate: Odinštalujte aktualizácie

Ak chcete aktualizácie správne odstrániť, použite rutinu cmdlet Remove-WindowsUpdate. Stačí zadať číslo KB ako argument parametra KBArticleID. Ak chcete oneskoriť automatický reštart počítača, môžete pridať kľúč -norestart:

Remove-WindowsUpdate -KBArticleID KB4011634 -NoRestart

Hide-WindowsUpdate: ako skryť nepotrebné aktualizácie pomocou PowerShell

Niektoré aktualizácie môžete skryť, aby ich služba Windows Update vo vašom počítači nikdy nenainštalovala (najčastejšie skryjú aktualizácie ovládačov). Napríklad na skrytie aktualizácií KB2538243 a KB4524570 spustite nasledujúce príkazy:

$ HideList = "KB2538243", "KB4524570"
Get-WindowsUpdate -KBArticleID $ HideList -Hide

alebo použite alias:

Hide-WindowsUpdate -KBArticleID $ HideList -Verbose

Teraz pri ďalšom vyhľadávaní aktualizácií pomocou príkazu Get-WUlist skryté aktualizácie sa nezobrazia v zozname opráv dostupných na inštaláciu.

Môžete uviesť zoznam aktualizácií, ktoré sú v tomto počítači skryté, napríklad:

Get-WindowsUpdate -IsHidden

Nezabudnite, že v stĺpci Stav skrytých aktualizácií sa objavil atribút H (skrytý).

Skrytie niektorých aktualizácií môžete vrátiť takto:

Get-WindowsUpdate -KBArticleID $ HideList -WithHidden -Hide: $ false

alebo tak:

Show-WindowsUpdate -KBArticleID $ HideList

Pre tých, ktorí sa cítia nepohodlne v konzole PowerShell, môžem odporučiť grafický nástroj Windows Update MiniTool na správu aktualizácií systému Windows 10..