A gestão de patches é um aspecto crucial da administração de infraestrutura de TI, assim como backup do Windows Workstation. Com a solução adequada de gestão de patches, você pode aprimorar seu sistema testando ou instalando as últimas atualizações e patches de software. Os patches são considerados como soluções temporárias para problemas existentes entre lançamentos de software em escala completa. Se a gestão de patches for realizada de forma eficaz, você poderá abordar rapidamente as vulnerabilidades do seu sistema e mitigar quaisquer ameaças potenciais.
O Windows oferece sua própria solução de gestão de patches – Windows Update. No entanto, muitos administradores de TI ainda acham o processo de gestão de patches muito complexo e demorado. Além disso, as atualizações do sistema podem afetar seu fluxo de trabalho de produção, pois muitas vezes são iniciadas automaticamente durante o horário de expediente. Com cmdlets do PowerShell, você pode automatizar as atualizações do Windows, economizando esforço e tempo.
Este post de blog descreve como você pode usar o PowerShell para instalar atualizações do Windows e inclui uma lista de comandos úteis do PowerShell para automatizar o processo de gestão de patches. A aplicação de patches pode reduzir o risco de bugs ou vulnerabilidades afetarem seu sistema.
O que é PSWindowsUpdate?
Para tornar o processo de gerenciamento de patches do Windows mais suave e fácil, você pode usar o módulo PSWindowsUpdate desenvolvido por Michal Gajda. Este módulo está publicamente disponível e pode ser baixado gratuitamente na PowerShell Gallery. O requisito principal é que um computador precisa executar versões do Windows a partir do Vista ou do Windows Server 2008. Além disso, você precisa ter o PowerShell 2.0 ou posterior.
Com o PSWindowsUpdate, você pode identificar se há atualizações disponíveis para o seu computador. Além disso, este módulo permite que você gerencie centralmente as atualizações do Windows em vários servidores e estações de trabalho com Windows. Dessa forma, você pode controlar remotamente quais atualizações são instaladas, removidas ou ocultas.
Como Automatizar Atualizações do Windows com PowerShell
A seguir, vamos esboçar o processo de configuração do PSWindowsUpdate, incluindo como baixar e instalar o módulo, bem como como verificar os comandos que podem ajudá-lo a automatizar as atualizações do Windows.
Como instalar o PSWindowsUpdate
Para automatizar efetivamente o gerenciamento de patches do Windows, você primeiro precisa instalar o módulo PSWindowsUpdate no seu computador. Para isso, abra um prompt do PowerShell elevado e insira o seguinte comando:
Install-Module -Name PSWindowsUpdate
Depois de executar este comando, você será perguntado se deseja instalar o módulo especificado do PSGallery. Selecione Sim se desejar continuar e aceitar todas as alterações.
Depois de instalar o módulo, você precisa garantir que possa acessar outros computadores remotamente. Dessa forma, você deve ser capaz de instalar atualizações do Windows em computadores remotos, permitindo que você gaste o mínimo de tempo e esforço. Para que o módulo PSWindowsUpdate funcione com máquinas remotas, você precisa salvar o módulo em seu computador e compartilhá-lo em uma rede.
No caso de outros servidores serem capazes de importar e implantar este módulo, você pode configurar a gestão automatizada de patches do Windows. Para isso, você deve executar o seguinte cmdlet:
Save-Module -Name PSWindowsUpdate -Path
Aqui, você precisa definir o parâmetro –Path especificando onde deseja que o módulo PSWindowsUpdate seja armazenado.
Como usar o PSWindowsUpdate
No próximo passo, você aprenderá como usar este módulo para automatizar as atualizações do Windows com cmdlets do PowerShell. Isso é uma grande vantagem para administradores de TI que precisam executar o processo de gerenciamento de patches em máquinas do Server Core sem interface gráfica. Com o uso desses cmdlets, você pode minimizar a complexidade de gerenciamento e tornar o processo mais fácil e com menos erros.
Para obter uma lista completa das atualizações do Windows disponíveis, execute o seguinte comando do PowerShell:
Get-WindowsUpdate
Você deverá ver a saída abaixo na sua tela:
Com essas informações, você saberá com certeza quais softwares ou aplicativos precisam ser atualizados. Depois disso, você pode instalar todas as atualizações ao inserir o comando abaixo. Além disso, ao adicionar o parâmetro –AutoReboot , você pode garantir que o sistema reiniciará automaticamente assim que a atualização for instalada.
Get-WUInstall -AcceptAll –AutoReboot
Se você não deseja reiniciar para que não interrompa o fluxo de trabalho de produção, você pode executar o cmdlet a seguir:
Get-WUInstall -AcceptAll –IgnoreReboot
Na tela, você pode ver o progresso do processo de gerenciamento de patches, bem como a lista completa de atualizações e seu status atual.
Após o processo de instalação for concluído, você verá a seguinte mensagem no console do PowerShell: ‘Reinício necessário, mas faça manualmente’. Assim, você ainda deve reiniciar o sistema, mas pode fazê-lo no momento que melhor se adequar à sua programação.
Se desejar baixar apenas uma atualização específica, você pode adicionar o parâmetro –KBArticleID ao cmdlet do PowerShell. Não se esqueça de especificar o número do Artigo KB para baixar o patch correto. Por exemplo, eu quero instalar Windows Ferramenta de Remoção de Software Malicioso x64 e Atualização de Inteligência de Segurança para Windows Defender Antivírus.
Get-WUInstall -KBArticleID KB890830, KB2267602 --AceitarTudo
Depois de executar este comando, apenas dois dessas atualizações serão instaladas no meu computador.
Visão geral dos comandos do PSWindowsUpdate
Se você está se perguntando qual cmdlet do PowerShell pode funcionar com o módulo PSWindowsUpdate, você deve digitar o seguinte comando e pressionar Enter:
Get-Command --module PSWindowsUpdate
Aqui, você pode ver uma lista completa dos comandos do módulo.
Vamos ver como alguns desses comandos funcionam.
1. O cmdlet Get-WUHistory permite visualizar o histórico das últimas atualizações. Após executar este comando, você receberá uma saída semelhante na sua tela.
2. O próximo cmdlet é Get-WUInstallerStatus, que pode ajudá-lo a verificar o status do serviço de Instalação do Windows. Aqui, você pode verificar se o instalador está funcionando corretamente ou não. A saída para esta operação pode parecer como segue:
3. Ao executar o cmdlet Get-WURebootStatus, você pode verificar se precisa reiniciar o sistema para que uma atualização específica seja totalmente aplicada.
4. Com o cmdlet Get-WUServiceManager, você pode verificar a fonte das atualizações do Windows.
Como você pode ver, a última coluna demonstra a fonte de atualização (por exemplo, Windows Update, DCat Flighting Prod, etc.).
5. Você pode ocultar determinadas atualizações da lista para evitar a instalação delas no seu computador. Para isso, execute o comando Hide-WindowsUpdate onde é possível especificar o ID dos artigos KB que você deseja ocultar. O exemplo a seguir demonstra como ocultar a atualização KB2267602 da lista:
$HideList = "KB2267602"
Hide-WindowsUpdate -KBArticleID $HideList –Hide
Antes de fazer qualquer alteração, você será solicitado a confirmar a seleção. Digite Y para ocultar o artigo KB.
No entanto, se você deseja obter a lista de atualizações ocultas, pode executar o cmdlet abaixo.
Na coluna de status, você pode ver a letra H denotando que a atualização foi ocultada com sucesso. Assim, da próxima vez que você executar o comando Get-WUInstall, a atualização selecionada será automaticamente excluída da lista de atualizações disponíveis.
Se você quiser reverter as alterações, pode usar o seguinte cmdlet no console do PowerShell:
Hide-WindowsUpdate -KBArticleID $HideList -Hide:$false
Novamente, você será solicitado a confirmar as alterações digitando Y.
Como você pode ver, a letra H não está mais incluída no status da atualização, o que significa que esta atualização do Windows não está mais oculta e pode ser baixada em seu computador.
6. Outra opção de configuração disponível para você é remover as atualizações instaladas em sua máquina. Para isso, você pode usar o cmdlet Remove-WindowsUpdate e digitar o ID do artigo KB que deseja desinstalar do seu computador. Por exemplo:
Remove-WindowsUpdate -KBArticleID KB4519573 –IgnoreReboot
Ao adicionar o parâmetro –IgnoreReboot, você garante que o computador não reinicie automaticamente. Depois que a atualização for desinstalada, você poderá reiniciar a máquina posteriormente.
7. Por último, mas não menos importante, você pode verificar se há atualizações disponíveis do Windows em uma máquina remota usando o cmdlet Get-WUList.
Get-WUList –ComputerName Server5
Para que esse cmdlet funcione, você também precisa instalar o módulo PSWindowsUpdate em um computador remoto. Dessa forma, você pode automatizar as atualizações do Windows para várias máquinas a partir de uma única interface. Com o PSWindowsUpdate, o processo de gerenciamento de patches é realizado de maneira simples e eficiente.
Além disso, você pode reduzir a sobrecarga de gerenciamento que os administradores de TI podem enfrentar durante a instalação de patches no sistema.
Conclusão
O módulo PSWindowsUpdate foi desenvolvido para tornar o processo de gerenciamento de patches mais simples e eficiente. Ao automatizar a instalação de atualizações, você pode ter certeza de que seu sistema está atualizado regularmente, minimizando assim o risco de falhas do sistema e violações de segurança. Os patches são desenvolvidos principalmente para resolver problemas ou vulnerabilidades encontrados em um programa. No entanto, o gerenciamento regular de patches não pode garantir proteção em escala total de todo o ambiente de produção.
Para isso, você precisa usar uma solução abrangente de proteção de dados que ofereça backup e recuperação de site para ambientes físicos, virtuais e em nuvem. Com o NAKIVO Backup & Replication, você pode proteger seus dados e aplicativos mais críticos em várias plataformas, garantir a recuperação em qualquer circunstância e reduzir os custos de proteção de dados.
Source:
https://www.nakivo.com/blog/automate-windows-updates-using-powershell-short-overview/