PSWindowsUpdate модул за управление на актуализации на Windows от PowerShell

Много е удобно да използвате специален модул PowerShell за управление на актуализациите на Windows от командния ред - PSWindowsUpdate. Модулът PSWindowsUpdate не е вграден в Windows и е модул на трети страни, наличен в галерията на скриптове на Technet. PSWindowsUpdate позволява на администраторите дистанционно да проверяват, инсталират, премахват и скриват конкретни актуализации на компютри и работни станции. Модулът PSWindowsUpdate е особено ценен, когато се използва за управление на актуализации в основни издания на Windows Server, които нямат графичен интерфейс, както и при настройка на изображение на Windows в режим на одит.

Съдържание:

  • Инсталирайте модула за управление на актуализацията на PSWindowsUpdate
  • PSWindowsUpdate Модул Команди Преглед
  • Управление на актуализациите на Windows на отдалечени компютри чрез PowerShell
  • Вземете списък с наличните актуализации на Windows от PowerShell
  • Install-WindowsUpdate: Инсталирайте актуализации с помощта на PSWindowsUpdate
  • Get-WUHistory: Преглед на историята на инсталираните актуализации на Windows
  • Remove-WindowsUpdate: Деинсталиране на актуализации
  • Hide-WindowsUpdate: как да скриете ненужните актуализации с помощта на PowerShell

Инсталирайте модула за управление на актуализацията на PSWindowsUpdate

Ако използвате Windows 10, можете да инсталирате модула PSWindowsUpdate от онлайн хранилището чрез мениджъра на пакети PackageManagement само с една команда:

Install-Module -Име PSWindowsUpdate

В моя случай се появи предупреждение, че PSWindowsUpdate 1.5.2.6 вече е инсталиран. За да инсталирате по-нова версия, трябва да изпълните командата:

Инсталирайте модул -Име PSWindowsUpdate -Force

След като инсталацията приключи, трябва да проверите наличността на пакета:

Get-Package -Имете PSWindowsUpdate

Ако имате инсталирана по-стара версия на Windows (Windows 7 / 8.1 / Windows Server 2008 R2 / 2012 R2) или нямате директен достъп до Интернет, можете да инсталирате модула PSWindowsUpdate ръчно.

Модулът PSWindowsUpdate може да бъде инсталиран на всяка поддържана версия на Windows, като се започне от Vista / Windows Server 2008 с инсталиран PowerShell 2.0 (но се препоръчва PoSh 3.0 и по-нова версия).

  1. Изтеглете последната версия на модула PSWindowsUpdate от страницата: https://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc и отключете изтегления файл; обърнете внимание, че в галерията на скриптове на TechNet е налична само старата версия на модула - v 1.5.6. Докато мениджърът на пакети NuGet инсталира PSWindowsUpdate 2.1.1.2 от PowershellGallery. Наличните командлети и параметри могат да варират в различните версии на модула..
  2. Разархивирайте архива с модула в една от директории % USERPROFILE% \ Документи \ WindowsPowerShell \ Модули или % WINDIR% \ System32 \ WindowsPowerShell \ v1.0 \ Модули (при постоянно използване на модула това е най-добрият вариант);
  3. Разрешаване на скриптове: Set-ExecutionPolicy -Scope Process -ExecutionPolicy Unlimitedricted -Force
  4. Сега можете да импортирате модула във вашата PowerShell сесия: Импортиране-модул PSWindowsUpdate забележка. В Windows 7 / Server 2008 R2, когато импортирате модула PSWindowsUpdate, можете да срещнете грешка като: Името „Unblock-File“ не се разпознава като името на командлета. Факт е, че модулът използва някои функции, които се появяват само в PowerShell 3.0. За да използвате тези функции, ще трябва да надстроите PowerShell или да изтриете ръчно линията | Разблокиране на файла от файла PSWindowsUpdate.psm1.

След като инсталирате модула PSWindowsUpdate на вашия компютър, можете да го инсталирате дистанционно на други компютри или сървъри, като използвате командлета Актуализация-WUModule. Например, за да копирате модула PSWindowsUpdate от вашия компютър на два отдалечени сървъра, изпълнете командите (имате нужда от достъп до отдалечените сървъри чрез SMB протокол, TCP порт 445):

$ Targets = "Server1", "Server2"
Update-WUModule -ComputerName $ Targets -Local

За да запишете модула в мрежова директория за по-нататъшно импортиране на модула на други компютри, направете:

Save-Module -Име PSWindowsUpdate -Path \\ fs01 \ ps \

PSWindowsUpdate Модул Команди Преглед

Списъкът с налични командлети за модули може да бъде показан така:

get-command -модул PSWindowsUpdate

Накратко описваме целта на командните модули:

  • Clear-WUJob - Използвайте Get-WUJob, за да извикате заданието WUJob в планировчика.
  • Изтегляне-WindowsUpdate (псевдоним за Get-WindowsUpdate -Download) - вземете списък с актуализации и ги изтеглете;
  • Get-WUInstall, Install-WindowsUpdate (псевдоним за Get-WindowsUpdate -Install) - инсталирайте актуализации;
  • Hide-WindowsUpdate (псевдоним за Get-WindowsUpdate -Hide: $ false) - скриване на актуализацията;
  • Uninstall-WindowsUpdatд - премахнете актуализацията с Use Remove-WindowsUpdate;
  • Добави-WUServiceManager - регистриране на сървъра за актуализация (Windows Update Service Manager) на компютъра;
  • Активиране-WURemoting - активирайте правилата на защитната стена, които позволяват отдалечена употреба на командлета PSWindowsUpdate;
  • Get-WindowsUpdate (Get-WUList) - показва списък с актуализации, които съответстват на зададените критерии, ви позволява да намерите и инсталирате желаната актуализация. Това е основният командлет на модула PSWindowsUpdate. Позволява ви да изтеглите и инсталирате актуализации от WSUS сървър или Microsoft Update. Позволява ви да изберете категориите актуализации, конкретни актуализации и да посочите правилата за рестартиране на компютъра при инсталиране на актуализации;
  • Get-WUApiVersion - Вземете версията на Windows Update Agent на компютъра
  • Get-WUHistory - показване на списък с инсталирани актуализации (история на актуализациите);
  • Get-WUInstallerStatus - Проверка на състоянието на услугата Windows Installer
  • Get-WUJob - Изпълнете заданията за актуализиране на WUJob в Scheduler
  • Get-WULastResults - дати на последното търсене и инсталиране на актуализации (LastSearchSuccessDate и LastInstallationSuccessDate);
  • Get-WURebootStatus - ви позволява да проверите дали е необходимо рестартиране, за да приложите конкретна актуализация;
  • Get-WUServiceManager - изходни източници за актуализация;
  • Get-WUSettings - Вземете клиентски настройки на Windows Update
  • Invoke-WUJob - дистанционно извикване на задания на WUJobs в Task Schduler незабавно да изпълнява PSWindowsUpdate задания.
  • Remove-WindowsUpdate - деинсталиране на актуализация;
  • Remove-WUServiceManager - деактивирайте Windows Update Service Manager;
  • Set-PSWUSettings - запазете настройките на модула PSWindowsUpdate във XML файл;
  • Set-WUSettings - Конфигурирайте клиентските настройки на Windows Update
  • Актуализация-WUModule - актуализирайте модула PSWindowsUpdate (можете да актуализирате модула на отдалечен компютър, като го копирате от текущия или актуализирате от PSGallery).

Управление на актуализациите на Windows на отдалечени компютри чрез PowerShell

Почти всички командлети на PSWindowsUpdate модули ви позволяват да контролирате инсталирането на актуализации на отдалечени компютри. Атрибутът се използва за това. -Компютърно име Host1, Host2, Host3.

За да управлявате актуализации на отдалечени компютри, трябва да добавите техните имена в списъка с надеждни хост на winrm:

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

Инсталирайте модула PSWindowsUpdate на отдалечени компютри и позволете на процеса dllhost.exe да получи достъп до динамични RPC портове в защитната стена.

Вземете списък с наличните актуализации на Windows от PowerShell

Можете да изброите наличните актуализации за този компютър на сървъра за актуализации с помощта на командите Get-WindowsUpdate или Get-WUList.

За да проверите списъка с наличните актуализации на отдалечен компютър, направете:

Get-WUList -ComputerName server2

Можете да проверите откъде вашата Windows OS трябва да получава актуализации. Изпълнете командата:

Get-WUServiceManager

Име на ServiceID се управлява IsDefault Име --------- --------- --------- ---- 8b24b027-1dee-babb-9a95-3517dfb9c552 Фалшиво фалшиво летене DCat Prod 855e8a7c -ecb4-4ca3-b045-1dfa50104289 False False Windows Store (DCat Prod) 3da21691-e39d-4da6-8a4b-b43877bcb1b7 True True Windows Server Update Update Service 9482f4b4-e343-43b6-b170-9a65bcsec Falc

Както можете да видите, компютърът е конфигуриран да получава актуализации от локалния WSUS сървър (Windows Server Update Service = True). В този случай трябва да видите списък с актуализации, одобрени за вашия компютър на WSUS.

Ако искате да сканирате компютъра си на сървъри на Microsoft Update (в допълнение към актуализациите на Windows, тези сървъри съдържат актуализации на Office и други продукти) в Интернет, изпълнете командата:

Get-WUlist -MicrosoftUpdate

Получавате предупреждение:

Get-WUlist: Услугата Windows Update не беше намерена на компютъра

За да активирате сканирането в Microsoft Update, изпълнете командата:

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

Сега можете да сканирате до Microsoft Update. Както можете да видите, в този случай бяха открити допълнителни актуализации за Microsoft Visual C ++ 2008 и Microsoft Silverlight.

За да проверите версията на агента за актуализиране на Windows на компютъра, изпълнете командата:

Get-WUApiVersion

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

За да премахнете определени продукти или конкретни пакети от списъка с актуализации, които вашият компютър получава, можете да ги изключите чрез:

  • Категории (-NotCategory);
  • Име (-NotTitle);
  • Актуализиращ номер (-NotKBArticleID).

Например изключваме от списъка актуализации на драйвери, OneDrive и един конкретен KB:

Get-WUlist -NotCategory "Драйвери" -NotTitle OneDrive -NotKBArticleID KB4533002

Install-WindowsUpdate: Инсталирайте актуализации с помощта на PSWindowsUpdate

За да изтеглите и инсталирате автоматично всички налични актуализации за вашия Windows, направете:

Инсталиране-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot

Ключът AcceptAll позволява одобрение за инсталиране на всички пакети, а AutoReboot позволява на Windows да се рестартира автоматично след инсталиране на актуализации..

Можете да запазите историята на инсталирането на актуализации в лог файла (може да се използва вместо WindowsUpdate.log).

Install-WindowsUpdate -AcceptAll -Install -AutoReboot | Изходен файл "c: \ $ (get-date -f yyyy-MM-dd) -WindowsUpdate.log" -force

Могат да бъдат инсталирани само конкретни актуализации по KB номер:

Get-WindowsUpdate -KBArticleID KB2267602, KB4533002 -Install

В този случай трябва да потвърдите инсталирането на всяка актуализация ръчно.

Ако искате да изключите някои актуализации от инсталационния списък, направете:

Install-WindowsUpdate -NotCategory "Drivers" -NotTitle OneDrive -NotKBArticleID KB4011670 -AcceptAll -IgnoreReboot

Модулът ви позволява дистанционно да започнете да инсталирате актуализации на няколко компютъра или сървъри наведнъж (PSWindowsUpdate модулът трябва да присъства на компютрите). Това е особено удобно, защото позволява на администратора да не въвежда ръчно всички сървъри по време на планираната инсталация на актуализации. Следващата команда ще инсталира всички налични актуализации на три отдалечени сървъра:

Invoke-WUInstall -ComputerName server1, server2, server3 -Script ipmo PSWindowsUpdate; Get-WindowsUpdate -Install -AcceptAll -AutoReboot | Изходен файл C: \ Windows \ PSWindowsUpdate.log -потвърждение: $ false -Verbose -SkipModuleTest -RunNow

В модула PSWindowsUpdate 2.1 трябва да използвате Invoke-WUJob вместо командлета Invoke-WUInstall. Този командлет създава задача за планиране на отдалечен компютър, който работи от SYSTEM.

Затова в новите версии на модула за отдалечена инсталация на актуализации използвайте следната команда:

$ ServerNames = „server1, server2, server3“
Invoke-WUJob -ComputerName $ ServerNames -Script ipmo PSWindowsUpdate; Инсталиране-WindowsUpdate -AcceptAll | Изходен файл C: \ Windows \ PSWindowsUpdate.log -RunNow -Confirm: $ false

Можете да инсталирате актуализации на отдалечен компютър и да изпратите имейл отчет до администратора:

Install-WindowsUpdate -ComputerName server1 -MicrosoftUpdate -AcceptAll - IgnoreReboot -SendReport -PSWUSettings @ SmtpServer = "smtp.winitpro.ru"; From = "[email protected]"; To = "[email protected]"; Порт 25 -Вербоза

Get-WUHistory: Преглед на историята на инсталираните актуализации на Windows

Използване на команда Get-WUHistory можете да получите списък с актуализации, инсталирани на компютъра по-рано автоматично или ръчно.

Можете да получите информация за датата на инсталиране на конкретна актуализация:

Get-WUHistory | Къде-обект $ _. Заглавие -съответствие "KB4517389" | Select-Object * | ft

За да получите информация за инсталираната актуализация на няколко отдалечени компютъра, можете да използвате следния код:

"server1", "server2" | Get-WUHistory | Къде-обект $ _. Заглавие -съответствие "KB4011634" | Select-Object * | ft

Remove-WindowsUpdate: Деинсталиране на актуализации

За да премахнете правилно актуализациите, използвайте командлета Remove-WindowsUpdate. Просто трябва да посочите номера на KB като аргумент на параметъра KBArticleID. За да забавите автоматичното рестартиране на компютъра, можете да добавите ключ -NoRestart:

Премахване-WindowsUpdate -KBArticleID KB4011634 -NoRestart

Hide-WindowsUpdate: как да скриете ненужните актуализации с помощта на PowerShell

Можете да скриете определени актуализации, така че те никога да не са инсталирани от услугата Windows Update на вашия компютър (най-често те крият актуализации на драйвери). Например, за да скриете актуализациите KB2538243 и KB4524570, изпълнете следните команди:

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

или използвайте псевдоним:

Скриване на WindowsUpdate -KBArticleID $ HideList -Verbose

Сега следващия път, когато сканирате за актуализации с помощта на командата Get-WUlist скритите актуализации няма да се появят в списъка на кръпките, достъпни за инсталиране.

Можете да изброите актуализациите, които са скрити на този компютър така:

Get-WindowsUpdate -IsHidden

Моля, обърнете внимание, че атрибутът H (скрит) се е появил в колоната за състояние на скритите актуализации.

Можете да отмените скриването на някои актуализации, както следва:

Get-WindowsUpdate -KBArticleID $ HideList -Скрит -Скриване: $ false

или така:

Show-WindowsUpdate -KBArticleID $ HideList

За тези, които се чувстват неудобно в конзолата PowerShell, мога да препоръчам графичната помощна програма Windows Update MiniTool за управление на актуализации на Windows 10.