Windows Update with PowerShell


Para quem não possui por exemplo um SCCM, um WSUS ou algum outro serviço de entrega/instalação e gerenciamento de updates disponível... Saiba não é preciso fazer na unha!
Utilize Powershell e automatize muito esta atividade....

Agradeça Michal Gajda por isso. Criador do módulo PSWindowsUpdate. Este módulo gerencia o windows update em computadores com PS v2.0 ou superior. Este módulo ainda habilita a possibilidade de gerenciarmos o processo de gerenciamento de updates remotamente.Este módulo é particularmente bacana para trabalharmos com servidores server core (que não possui GUI)


Procedimento de instalação:

No servidor em questão descompacte o modulo em:
c:\Windows\System32\WindowsPowerShell\v1.0\Modules



Após descompacta-lo, inicie um prompt PS elevado. Será necessário trocar a política de execução do PS para RemoteSigned. (isto é necessário para que scripts baixados da internet possam rodar localmente desde que sejam signed por um trusted publisher.)


Digite Set-ExecutionPolicy RemoteSigned e pressione Enter. Quando solicitado confirme conforme abaixo:


(Caso esteja rodando o PS v2.0 é necessário importar o módulo (versões superiores não é necessário). Para importar: Import-Module PSWindowsUpdate e pressione Enter)

Para identificar os possíveis comandos deste móduloGet-Command –module PSWindowsUpdate e pressione Enter.




Agora vamos registrar o servidor de update da Microsoft para que ele possa ser usado.
Add-WUServiceManager -ServiceID 7971f918-a847-4430-9279-4a52d1efe18d e pressione Enter. Quando necessário confirme o registro conforme abaixo:



Iniciando o update
Primeiramente é importante identificar quais updates estão faltando... Para isso com o comando abaixo vamos apenas lista-los. (aqui todos os tipos de updates serão listados)
Get-WUInstall –MicrosoftUpdate –ListOnly e pressione Enter. Pode demorar um pouco para termos a resposta....

Uma grande preocupação no momento da realização do update e do ciclo de gerenciamento de updates como um todo é que invariavelmente você terá que reiniciar a máquina, indisponibilizando-a para o negócio. Minha orientação é, crie janelas pré-definidas para este propósito. Levando isso em conta você poderia por exemplo automatizar todo o processo:
--> ATENÇÃO, perceba que com este comando você estará aceitando, baixando e instalando todos os updates necessários numa tacada só e o servidor será reiniciado automaticamente.

Get-WUInstall –MicrosoftUpdate –AcceptAll –AutoReboot e pressione Enter conforme abaixo:



Exemplo na prática:


  1. Listei os updates necessários;
  2. Fiz o download apenas da atualização;
  3. Quando listei novamente o update tinha o Status D (downloaded)
Agora para realizar a instalação é só repetir o comando sem a opção -downloadonly

Algumas opções legais:


--> DownloadOnly
Esta opção irá baixar os updates para a máquina sem os instalar. Posteriormente você poderá iniciar o processo de update novamente (que será bem mais rápido, sem download) e seguir com os updates já locais.
Ex:  Get-WUInstall –MicrosoftUpdate –AcceptAll –downloadonly

--> Critical updates / Security updates
A Microsoft disponibiliza alguns tipos de atualizações (Atualizações críticas, de definições, features packs, de segurança, service packs, tools, pacotes cumulativos, upgrades e dependendo podemos ainda atualizar drivers e firmwares). Por isso, pode ser importante determinar qual ou quais categorias se quer atualizar
 Ex:
Get-WUInstall -MicrosoftUpdate -AcceptAll -AutoReboot -Category @('Critical Updates', 'Security Updates')
Assim estaríamos instalando apenas as críticas e de segurança. 


--> Status de reboot pending
       Esta opção irá mostrar se a máquina esta com um reboot pendente:
 Ex:  Get-WUrebootStatus –ComputerName "nome_servidor"


Estou trabalhando na evolução deste procedimento que hoje é "local" para automatizá-lo de forma onde seja possível conectar-se a múltiplas instâncias (múltiplos servidores) e se execute a atualização simultânea, colete dados e envie o relatório com antes e depois... 


Nenhum comentário:

Postar um comentário