Modul PSWindowsUpdate pro správu aktualizací systému Windows z prostředí PowerShell

Pro správu aktualizací systému Windows z příkazového řádku je velmi výhodné použít speciální modul PowerShell - PSWindowsUpdate. Modul PSWindowsUpdate není zabudován do systému Windows a je modulem jiného výrobce, který je k dispozici v galerii skriptů Technet. PSWindowsUpdate umožňuje správcům vzdáleně kontrolovat, instalovat, odebírat a skrývat konkrétní aktualizace v počítačích a pracovních stanicích. Modul PSWindowsUpdate je obzvláště cenný, když se používá ke správě aktualizací v základních vydáních systému Windows Server, které nemají grafické rozhraní, a také při nastavování bitové kopie systému Windows v režimu auditu.

Obsah:

  • Nainstalujte modul pro správu aktualizace PSWindowsUpdate
  • Přehled příkazů modulu PSWindowsUpdate
  • Správa aktualizací systému Windows ve vzdálených počítačích pomocí prostředí PowerShell
  • Získejte seznam dostupných aktualizací systému Windows z prostředí PowerShell
  • Install-WindowsUpdate: Nainstalujte aktualizace pomocí programu PSWindowsUpdate
  • Get-WUHistory: Zobrazení historie nainstalovaných aktualizací systému Windows
  • Remove-WindowsUpdate: Odinstalovat aktualizace
  • Hide-WindowsUpdate: Jak skrýt nepotřebné aktualizace pomocí prostředí PowerShell

Nainstalujte modul pro správu aktualizace PSWindowsUpdate

Pokud používáte Windows 10, můžete nainstalovat modul PSWindowsUpdate z online úložiště pomocí Správce balíků PackageManagement jediným příkazem:

Install-Module - název PSWindowsUpdate

V mém případě se objevilo varování, že PSWindowsUpdate 1.5.2.6 již byl nainstalován. Chcete-li nainstalovat novější verzi, musíte spustit příkaz:

Install-Module -Name PSWindowsUpdate -Force

Po dokončení instalace je třeba zkontrolovat balíček:

Get-Package -Name PSWindowsUpdate

Pokud máte nainstalovanou starší verzi systému Windows (Windows 7 / 8.1 / Windows Server 2008 R2 / 2012 R2) nebo nemáte přímý přístup k internetu, můžete modul PSWindowsUpdate nainstalovat ručně.

Modul PSWindowsUpdate lze nainstalovat na jakoukoli podporovanou verzi systému Windows od systému Vista / Windows Server 2008 s nainstalovanou sadou PowerShell 2.0 (doporučuje se však PoSh 3.0 a vyšší).

  1. Stáhněte si nejnovější verzi modulu PSWindowsUpdate ze stránky: https://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc a odemkněte stažený soubor; v knihovně skriptů TechNet je k dispozici pouze stará verze modulu - v 1.5.6. Zatímco správce balíčků NuGet nainstaluje PSWindowsUpdate 2.1.1.2 z PowershellGallery. Dostupné rutiny a parametry se mohou lišit v různých verzích modulu..
  2. Rozbalte archiv s modulem do jednoho z adresářů % USERPROFILE% \ Documents \ WindowsPowerShell \ Modules nebo % WINDIR% \ System32 \ WindowsPowerShell \ v1.0 \ Moduly (při neustálém používání modulu je to nejlepší volba);
  3. Povolit skriptování: Set-ExecutionPolicy -Scope Process -ExecutionPolicy Unrestricted -Force
  4. Nyní můžete modul importovat do relace PowerShell: Importovací modul PSWindowsUpdate Poznámka:. V systému Windows 7 / Server 2008 R2 se při importu modulu PSWindowsUpdate můžete setkat s chybou typu: Název „Unblock-File“ není rozpoznán jako název rutiny cmdlet. Faktem je, že modul používá některé funkce, které se objevily pouze v PowerShell 3.0. Chcete-li tyto funkce používat, musíte upgradovat PowerShell nebo ručně vymazat řádek | Odblokujte soubor ze souboru PSWindowsUpdate.psm1.

Po instalaci modulu PSWindowsUpdate do počítače jej můžete vzdáleně nainstalovat na jiné počítače nebo servery pomocí rutiny cmdlet Update-wumodule. Chcete-li například zkopírovat modul PSWindowsUpdate z počítače na dva vzdálené servery, spusťte příkazy (potřebujete přístup ke vzdáleným serverům prostřednictvím protokolu SMB, portu TCP 445):

$ Targets = "Server1", "Server2"
Aktualizace-WUModule -ComputerName $ Cíle -Místní

Chcete-li modul uložit do síťového adresáře pro další import modulu do jiných počítačů, postupujte takto:

Uložit modul - název PSWindowsUpdate -Path \\ fs01 \ ps \

Přehled příkazů modulu PSWindowsUpdate

Seznam dostupných modulů cmdlets lze zobrazit takto:

get-command -module PSWindowsUpdate

Stručně popisujeme účel příkazů modulu:

  • Jasně-wujob - Použijte Get-WUJob k vyvolání úlohy WUJob v plánovači.
  • Stáhnout-WindowsUpdate (alias pro Get-WindowsUpdate -Download) - získejte seznam aktualizací a stáhněte je;
  • Get-WUInstall, Install-WindowsUpdate (alias pro Get-WindowsUpdate -Install) - instalace aktualizací;
  • Hide-WindowsUpdate (alias pro Get-WindowsUpdate -Hide: $ false) - skrytí aktualizace;
  • Odinstalovat-windowsupdate - odebrat aktualizaci pomocí Use Remove-WindowsUpdate;
  • Přidat-WUServiceManager - registrace aktualizačního serveru (Windows Update Service Manager) v počítači;
  • Povolit Wuremoting - povolit pravidla brány firewall, která umožňují vzdálené použití rutiny cmdlet PSWindowsUpdate;
  • Získejte WindowsUpdate (Get-WUList) - zobrazí seznam aktualizací, které odpovídají zadaným kritériím, umožňuje najít a nainstalovat požadovanou aktualizaci. Toto je hlavní rutina modulu PSWindowsUpdate. Umožňuje stahovat a instalovat aktualizace ze serveru WSUS nebo Microsoft Update. Umožňuje vybrat kategorie aktualizací, konkrétní aktualizace a určit pravidla pro restartování počítače při instalaci aktualizací;
  • Get-WUApiVersion - Získejte verzi agenta Windows Update Agent v počítači
  • Získejte-wuhistory - zobrazit seznam nainstalovaných aktualizací (historie aktualizací);
  • Get-WUInstallerStatus - Kontrola stavu služby Instalační služba Windows Installer
  • Get-wujob - Spusťte úlohy aktualizace WUJob v Plánovači úloh
  • Get-WULastResults - data posledního vyhledávání a instalace aktualizací (LastSearchSuccessDate a LastInstallationSuccessDate);
  • Get-WURebootStatus - umožňuje zkontrolovat, zda je k provedení konkrétní aktualizace třeba restartovat;
  • Get-WUServiceManager - zdroje aktualizací výstupu;
  • Získejte wusettings - Získejte nastavení klienta Windows Update
  • Vyvolat-wujob - vzdáleně vyvolávat úlohy WUJobs v Task Schduler k okamžitému provedení úloh PSWindowsUpdate.
  • Odebrat WindowsUpdate - odinstalovat aktualizaci;
  • Remove-WUServiceManager - zakázat Správce služeb Windows Update;
  • Set-pswusettings - uložit nastavení modulu PSWindowsUpdate do souboru XML;
  • Set-wusettings - Konfigurace nastavení klienta Windows Update
  • Update-wumodule - aktualizujte modul PSWindowsUpdate (modul můžete aktualizovat na vzdáleném počítači jeho zkopírováním z aktuálního nebo aktualizací z PSGallery).

Správa aktualizací systému Windows ve vzdálených počítačích pomocí prostředí PowerShell

Téměř všechny cmdlety modulu PSWindowsUpdate vám umožňují řídit instalaci aktualizací na vzdálených počítačích. K tomu se používá atribut. -Název počítače Host1, Host2, Host3.

Chcete-li spravovat aktualizace ve vzdálených počítačích, musíte přidat jejich jména do seznamu důvěryhodných hostitelů winrm:

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

Nainstalujte modul PSWindowsUpdate na vzdálené počítače a umožněte procesu dllhost.exe přístup k dynamickým portům RPC v bráně firewall.

Získejte seznam dostupných aktualizací systému Windows z prostředí PowerShell

Aktualizace dostupné pro tento počítač na aktualizačním serveru můžete zobrazit pomocí příkazů Get-WindowsUpdate nebo Get-WUList..

Chcete-li zkontrolovat seznam dostupných aktualizací na vzdáleném počítači, postupujte takto:

Get-WUList -ComputerName server2

Můžete zkontrolovat, odkud by váš operační systém Windows měl dostávat aktualizace. Spusťte pří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 True True Windows Server Update Service 9482f4b4-e343-43b6-b170-9a65bc822c77 False False False

Jak vidíte, počítač je nakonfigurován pro příjem aktualizací z místního serveru WSUS (Windows Server Update Service = True). V takovém případě by se měl zobrazit seznam aktualizací schválených pro váš počítač na serveru WSUS.

Pokud chcete prohledat počítač na serverech Microsoft Update (kromě aktualizací systému Windows tyto servery obsahují aktualizace sady Office a další produkty) na Internetu, spusťte příkaz:

Get-WUlist -MicrosoftUpdate

Dostanete varování:

Get-WUlist: Služba Windows Update nebyla v počítači nalezena

Chcete-li povolit skenování na webu Microsoft Update, spusťte příkaz:

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

Nyní můžete skenovat do služby Microsoft Update. Jak vidíte, v tomto případě byly nalezeny další aktualizace pro Microsoft Visual C ++ 2008 a Microsoft Silverlight.

Chcete-li zkontrolovat verzi agenta Windows Update v počítači, spusťte příkaz:

Get-WUApiVersion

Název_počítače PSWindowsUpdate PSWUModuleDll ApiVersion WuapiDllVersion ------------ --------------- ------------- ----- ----- --------------- FS01 2.1.1.2 2.0.6995.28496 8.0 10.0.14393.2879

Chcete-li odebrat určité produkty nebo konkrétní balíčky ze seznamu aktualizací, které váš počítač dostává, můžete je vyloučit:

  • Kategorie (-NotCategory);
  • Jméno (-NotTitle);
  • Číslo aktualizace (-NotKBArticleID).

Vyloučíme například ze seznamu aktualizací ovladačů OneDrive a jednu konkrétní KB:

Get-WUlist -NotKategorie "Ovladače" -NotTitle OneDrive -NotKBArticleID KB4533002

Install-WindowsUpdate: Nainstalujte aktualizace pomocí programu PSWindowsUpdate

Chcete-li automaticky stáhnout a nainstalovat všechny dostupné aktualizace pro váš Windows, postupujte takto:

Nainstalujte-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot

Klíč AcceptAll umožňuje schválení instalace pro všechny balíčky a AutoReboot umožňuje systému Windows automaticky restartovat po instalaci aktualizací..

Můžete uložit historii instalace aktualizací do souboru protokolu (lze použít místo WindowsUpdate.log).

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

Lze nainstalovat pouze konkrétní aktualizace podle čísla KB:

Získejte WindowsUpdate -KBArticleID KB2267602, KB4533002 - Nainstalujte

V takovém případě musíte každou aktualizaci ručně potvrdit.

Pokud chcete vyloučit některé aktualizace z instalačního seznamu, proveďte následující kroky:

Nainstalovat-WindowsUpdate -NotKategorie "Ovladače" -NotTitle OneDrive -NotKBArticleID KB4011670 -PřijmoutAll -IgnoreReboot

Modul umožňuje vzdálené spuštění instalace aktualizací na několika počítačích nebo serverech najednou (v počítačích musí být přítomen modul PSWindowsUpdate). To je obzvláště výhodné, protože to umožňuje administrátorovi, aby během plánované instalace aktualizací nevložil ručně všechny servery. Následující příkaz nainstaluje všechny dostupné aktualizace na tři vzdálené servery:

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

V modulu PSWindowsUpdate 2.1 musíte místo rutiny Invoke-WUInstall použít Invoke-WUJob. Tato rutina vytvoří plánovací úlohu ve vzdáleném počítači, který běží ze SYSTÉMU.

Proto v nových verzích modulu pro vzdálenou instalaci aktualizací použijte následující pří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 nainstalovat aktualizace do vzdáleného počítače a odeslat e-mailovou zprávu administrátorovi:

Install-WindowsUpdate -ComputerName server1 -MicrosoftUpdate -AcceptAll - IgnoreReboot -SendReport -PSWUSettings @ SmtpServer = "smtp.winitpro.ru"; From = "[email protected]"; To = "[email protected]"; Port 25 -Veróza

Get-WUHistory: Zobrazení historie nainstalovaných aktualizací systému Windows

Pomocí příkazu Získejte-wuhistory seznam aktualizací nainstalovaných v počítači získáte dříve nebo automaticky.

Můžete získat informace o datu instalace konkrétní aktualizace:

Get-WUHistory | Where-Object $ _. Title -match "KB4517389" | Select-Object * | ft

Chcete-li získat informace o nainstalované aktualizaci na několika vzdálených počítačích, můžete použít následující kód:

"server1", "server2" | Get-WUHistory | Where-Object $ _. Title -match "KB4011634" | Select-Object * | ft

Remove-WindowsUpdate: Odinstalovat aktualizace

Chcete-li aktualizace správně odebrat, použijte rutinu Odebrat WindowsUpdate. Stačí zadat číslo KB jako argument parametru KBArticleID. Chcete-li odložit automatický restart počítače, můžete přidat klíč -NoRestart:

Odebrat WindowsUpdate -KBArticleID KB4011634 -NoRestart

Hide-WindowsUpdate: Jak skrýt nepotřebné aktualizace pomocí prostředí PowerShell

Některé aktualizace můžete skrýt, aby nebyly nikdy nainstalovány službou Windows Update v počítači (nejčastěji skrývají aktualizace ovladačů). Chcete-li například skrýt aktualizace KB2538243 a KB4524570, spusťte následující příkazy:

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

nebo použijte alias:

Hide-WindowsUpdate -KBArticleID $ HideList -Verbose

Nyní při příštím vyhledávání aktualizací pomocí příkazu Get-WUlist skryté aktualizace se neobjeví v seznamu oprav dostupných pro instalaci.

Můžete uvést seznam aktualizací, které jsou v tomto počítači skryty, například:

Get-WindowsUpdate -IsHidden

Nezapomeňte, že ve sloupci Stav skrytých aktualizací se objevil atribut H (skrytý).

Skrytí některých aktualizací můžete zrušit následovně:

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

nebo tak:

Show-WindowsUpdate -KBArticleID $ HideList

Pro ty, kteří se cítí nepříjemně v konzole PowerShell, mohu doporučit grafický nástroj Windows Update MiniTool pro správu aktualizací Windows 10.