Pontos principais
- Identifique patches com falha: use o PowerShell (PSWindowsUpdate ou os logs de eventos) para detectar tentativas de atualização incompletas ou com falha antes de repetir.
- Repita a instalação pelo PowerShell: tente novamente as atualizações com falha usando scripts com tratamento de erros, evitando falhas silenciosas.
- Acompanhe as tentativas: guarde contagens de tentativas, carimbos de data/hora e os KBs com falha no Registro para evitar loops infinitos e manter visibilidade.
- Automatize com tarefas agendadas ou RMM: agende scripts recorrentes de nova tentativa ou implante-os em escala com NinjaOne, GPO ou ferramentas semelhantes.
- Valide as condições de atualização: confirme que as fontes de atualização estão acessíveis e reinicie o serviço Windows Update antes de tentar de novo para aumentar a taxa de sucesso.
Atualizações com falha são um problema recorrente no gerenciamento de patches, geralmente causado por problemas de rede, bloqueios do sistema ou conflitos entre serviços. Sem solução, isso compromete o desempenho e deixa os endpoints expostos a ameaças.
Automatizar a nova tentativa de patch reduz riscos, diminui o tempo médio de reparo (MTTR) e melhora a taxa de sucesso das atualizações sem sobrecarregar os técnicos com um volume alto de tickets.
Padronize os fluxos de aplicação de patches para melhorar o MTTR e a documentação.
→ Teste o NinjaOne Autonomous Patch Management gratuitamente
Como automatizar a nova tentativa de patch e reduzir falhas de atualização
A correção automática de falhas de patch dispensa diagnósticos manuais às pressas e garante a conformidade de patches em todos os endpoints. Isso reduz a carga de trabalho dos técnicos e, pelos logs, revela padrões de falhas recorrentes.
📌 Casos de uso: use scripts do PowerShell para listar tentativas anteriores de atualização e extrair códigos de erro, permitindo que os scripts repitam, aguardem ou parem. Com tarefas agendadas, plataformas de RMM e implantação por GPO, os técnicos automatizam novas tentativas de patches com falha ou ausentes.
📌 Pré-requisitos:
- Sistema operacional compatível: Windows 11 ou Windows Server 2016 ou posterior
- Permissões: privilégios de administrador ou SYSTEM
- Fonte de atualização: WSUS, Intune ou Windows Update
- Opcional: plataformas de RMM como NinjaOne
💡 Observação: alguns passos podem variar conforme os padrões do sistema ou as configurações ativas de cada ambiente. Além disso, a Microsoft anunciou a descontinuação do WSUS. Ele ainda acompanha o Windows até a publicação deste texto, mas recomendamos a migração para ferramentas na nuvem como Windows Autopatch e Intune, ou Azure Update Manager.
Passo 1: identifique patches com falha usando scripts do PowerShell
Uma boa correção automática de falhas de patch começa pela detecção proativa. Os scripts a seguir consultam o histórico de atualizações do endpoint e seus resultados, retornando as entradas problemáticas para uma visão mais clara.
Filtre patches com falha com o módulo PSWindowsUpdate
Este script lê as últimas 200 entradas do histórico de atualizações, descarta as instalações bem-sucedidas e retorna apenas as entradas com falha.
| Import-Module PSWindowsUpdate # Retrieve failed updates $failedUpdates = Get-WindowsUpdate -IsHidden:$false -ErrorAction SilentlyContinue | Where-Object { $_.ResultCode -ne 2 } # 2 = Succeeded |
⚠️ Importante: pular a instalação do PSWindowsUpdate causa erros, já que esse módulo do PowerShell não vem incluído no Windows por padrão. (Veja ⚠️ Pontos de atenção)
Método alternativo: filtrar patches com falha pelo log de eventos do Windows
Este script consulta os logs do Windows Update Client em busca de entradas com sinais comuns de falha, como os IDs 20, 25 e 31.
Get-WinEvent -LogName "System" | Where-Object { $_.ProviderName -eq "Microsoft-Windows-WindowsUpdateClient" -and$_.Id -in 20, 25, 31 # Common failure event IDs } |
Passo 2: repita os patches com falha usando lógica no PowerShell
Assim que as atualizações com falha aparecem em um endpoint, scripts do PowerShell podem reinstalar os patches automaticamente. Isso elimina o trabalho manual de aplicação e permite correção em escala, sem intervenção, assim que a falha é detectada.
Exemplo de script do PowerShell para reinstalar atualizações com falha
Este script parte da variável $failedUpdates vista no passo 1 e percorre as atualizações com falha listadas para reinstalá-las.
foreach ($update in $failedUpdates) { Write-Output "Retrying: $($update.Title)"Install-WindowsUpdate -KBArticleID $update.KBArticleID -AcceptAll -AutoReboot -IgnoreReboot -ErrorAction Continue } |
Exemplo de script com tratamento de erros
| try { Install-WindowsUpdate -KBArticleID $update.KBArticleID -AcceptAll -ErrorAction Stop } catch { Write-Output "Retry failed for: $($update.KBArticleID) - $_"} |
⚠️ Importante: use tratamento de erros para que os scripts não falhem em silêncio. (Veja ⚠️ Pontos de atenção.)
Passo 3: registre as tentativas no Registro para acompanhamento
Use o Registro para armazenar a contagem de tentativas e os KBs com falha, facilitando consultas locais rápidas. Assim, a identificação persiste mesmo quando o endpoint fica desconectado durante indisponibilidades do WSUS ou do RMM.
Exemplo de script do PowerShell para registrar tentativas e carimbos de data/hora no Registro:
New-Item -Path "HKLM:\SOFTWARE\Org\PatchRetry" -ForceSet-ItemProperty -Path "HKLM:\SOFTWARE\Org\PatchRetry" -Name "LastRetry" -Value (Get-Date).ToString("u")Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\PatchRetry" -Name "FailedKBs" -Value ($failedUpdates.KBArticleID -join ", ") |
Exemplo de script do PowerShell para verificar o status do patch pelo Registro:
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Org\PatchRetry' |
Passo 4: automatize as tentativas com tarefas agendadas ou com o NinjaOne RMM
Agende scripts nos endpoints para verificar a conformidade com regularidade e reinstalar patches automaticamente nos dispositivos fora de conformidade. Com NinjaOne, os técnicos criam condições compostas que reaplicam as tentativas de patch após uma execução malsucedida.
Crie uma tarefa agendada recorrente com um script .ps1 já existente pelo CMD:
schtasks /create /tn "RetryFailedPatches" /tr "powershell.exe -File C:\Scripts\PatchRetry.ps1" /sc daily /st 02:00 /ru SYSTEM |
💡 Dica: salve o script de nova tentativa do passo 2 como arquivo .ps1 e aponte o comando para o caminho dele.
Atualize valores do Registro e monitore o sucesso ou o limite de tentativas por script do PowerShell
$retryCount = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Org\PatchRetry").RetryCountif ($retryCount -gt 3) { # escalate or log for technician } |
Passo 5: use GPO para garantir configurações de atualização compatíveis com novas tentativas
As novas tentativas automáticas funcionam melhor quando o Windows Update se comporta de forma previsível. Os técnicos podem implantar GPOs para baixar o conteúdo das atualizações com antecedência, agendar instalações e adiar reinicializações dentro de configurações de linha de base.
⚠️ Aviso: é uma boa prática testar as GPOs localmente antes da implantação. (Veja ⚠️ Pontos de atenção.)
- Abra o Console de Gerenciamento de Política de Grupo (gpmc.msc) e vá até:
Configuração do Computador > Modelos Administrativos > Componentes do Windows > Windows Update
- Configure as políticas a seguir:
| Configurações | Configuração recomendada | Definição |
| Configurar Atualizações Automáticas | Marque a caixa de seleção Baixar automaticamente e agendar a instalação. | Baixa as atualizações com antecedência e as instala em um horário definido. |
| Especificar local do serviço de atualização da Microsoft na intranet | Selecione Ativado e informe a URL HTTP(S) do servidor WSUS desejado nos campos:
| Define o servidor WSUS que as Atualizações Automáticas vão consultar. |
| Sem reinicialização automática para instalações agendadas de Atualizações Automáticas | Defina a política como Ativado. | Desativa as reinicializações automáticas quando há alguém conectado, evitando interrupções no meio da sessão. |
| Solicitar novamente a reinicialização com instalações agendadas | Defina a política como Desativado. | Interrompe os avisos de reinicialização aos usuários durante a sessão após uma atualização agendada. |
- Depois de vincular a GPO a uma UO, execute o seguinte comando do PowerShell em um endpoint de destino: gpupdate /force
⚠️ Pontos de atenção
| Riscos | Possíveis consequências | Como reverter |
| Pular a instalação do módulo PSWindowsUpdate | Usar os cmdlets do Windows Update sem o módulo do PowerShell necessário gera erros. | Carregue o módulo PSWindowsUpdate digitando Import-Module PSWindowsUpdate em um prompt do PowerShell. |
| Não incluir tratamento de erros nos scripts | Sem tratamento de erros adequado, os scripts falham em silêncio e os técnicos ficam adivinhando o que deu errado. | Use o tratamento de erros do PowerShell nos scripts para documentar melhor as falhas. |
| Implantar GPOs sem teste | GPOs não testadas podem conter configurações incorretas e afetar seriamente os endpoints após a implantação. | Teste as GPOs localmente em um ambiente controlado antes de implantá-las em toda a rede. |
O que considerar ao automatizar novas tentativas de patch
Ao automatizar as novas tentativas, a transição entre os passos precisa ser fluida: um único tropeço já pode gerar erros. Os pontos a seguir orientam os scripts a escolher o passo certo e aumentam a taxa de sucesso das tentativas.
Defina limites de tentativas
Limites de tentativas no Registro evitam loops infinitos e enxurradas de tickets. Configure incrementos a cada execução para aumentar o tempo de espera depois de cada falha. Atingido o número máximo de tentativas, o limite interrompe a execução dos scripts e escala o problema uma única vez.
Reinicie o serviço Windows Update
Falhas de aplicação podem ocorrer quando o Windows Update (wuauserv) está inacessível, e reiniciar o serviço costuma resolver. Por isso, vale reiniciar o Windows Update antes de iniciar outra tentativa.
- Exemplo de script do PowerShell para reiniciar o wuauserv: Restart-Service -Name wuauserv
Alternativa para dispositivos offline
Dispositivos offline consomem rapidamente o limite de tentativas e acabam sendo ignorados pelos scripts. Com plataformas de RMM como NinjaOne, os técnicos definem uma condição de resultado de script para tentar novamente ou reiniciar fora do horário de pico.
Valide as fontes de patch
Antes de uma nova tentativa, os scripts devem verificar se a fonte de patch está acessível, já que fontes inacessíveis costumam causar falhas. Se a fonte estiver fora do ar após a validação, aplique uma espera curta, mas não conte isso como tentativa malsucedida. Se um único KB falhar, deixe-o de lado, siga com os outros patches e tente novamente mais tarde.
Guia de início rápido
NinjaOne oferece vários recursos para automatizar o gerenciamento de patches e reduzir a intervenção manual:
1. Patch Intelligence AI
Avalia automaticamente os riscos dos patches a cada seis horas
- Pode mover patches entre os estados aprovado, manual e rejeitado com base no retorno da comunidade
- Ajuda a reduzir riscos de patches potencialmente problemáticos
2. Estratégias de aprovação e nova tentativa
Vários níveis de aprovação de patches:
- Substituições no nível do dispositivo
- Substituições no nível da política
- Aprovações e rejeições preventivas globais
- Pode aprovar patches automaticamente após um número definido de dias (até 30 dias para atualizações e 365 dias para atualizações de recursos)
- Permite aprovar ou rejeitar patches manualmente pelo número de KB ou pelo Patch ID
3. Implantação em anéis
Distribuição gradual de patches para minimizar riscos
- Crie grupos de dispositivos para diferentes anéis de implantação
- Teste os patches em um pequeno conjunto de dispositivos antes da implantação ampla
4. Agendamento e nova tentativa de patches
Recomenda-se separar os ciclos de varredura e de atualização por pelo menos uma hora
- Os ciclos de varredura rodam antes dos ciclos de aplicação
- Opções de reinicialização e notificações configuráveis
Solução de problemas na automação de novas tentativas de patch
Problema 1: nenhuma tentativa é executada
Sem a elevação adequada, a lógica de nova tentativa não é executada e nada acontece. Verifique se o script roda como SYSTEM ou com os privilégios mais altos. Valide também a sintaxe do script e confirme que todos os caminhos referenciados existem.
Problema 2: atualização não encontrada
Confirme se a atualização ausente está disponível na fonte especificada. Considere fontes alternativas, como o Windows Update em vez do Windows Server Update Services (WSUS), para não gastar tentativas com consultas inúteis.
Problema 3: as atualizações falham sempre
Combine as novas tentativas com as informações dos logs do Windows Update para localizar os erros dos patches com falha.
- Exemplo de script do PowerShell para consultar os logs do Windows Update:
Import-Module PSWindowsUpdate
Get-WindowsUpdateLog
Problema 4: loop de reinicialização
Às vezes as atualizações exigem a reinicialização do dispositivo antes de serem aplicadas, e desligar não tem o mesmo efeito. Quando esse aviso passa despercebido, é fácil entrar no ciclo de reaplicar patches sem nenhuma mudança visível. Para evitar isso, verifique se o endpoint pede reinicialização, confirme e tente atualizar de novo.
Recursos do NinjaOne que simplificam a automação de novas tentativas
NinjaOne ajuda a automatizar consultas e correções de patches para garantir conformidade e reduzir a intervenção manual. Veja alguns recursos que simplificam a automação de novas tentativas em escala.
- Tarefa agendada por política. Use os recursos de automação agendada do NinjaOne para definir novas tentativas em grupos de dispositivos dentro de intervalos específicos.
- Painel de gerenciamento de patches. O painel do NinjaOne separa os dispositivos por patches com falha, bem-sucedidos e pendentes, melhorando a visibilidade. Os técnicos também geram relatórios de patch personalizados direto no painel.
- Condições compostas. Crie gatilhos de automação personalizados, como enviar notificações, disparar scripts ou escalar casos, com base nas condições de resultado dos scripts.
- Implantação remota de scripts. Execute scripts remotamente em escala, mantendo a automação de novas tentativas consistente para patches com falha em todo o ambiente.
Automatize a documentação de patches e trate os erros com eficiência.
Automatize a correção de falhas de patch e maximize o tempo de atividade
Da consulta ao histórico de atualizações até a aplicação de políticas de linha de base, este guia dá aos técnicos bases sólidas de automação. Com NinjaOne cuidando do monitoramento, da implantação de scripts e do agendamento, a lógica de nova tentativa de patch pode ser automatizada em um painel único.
Reunir as estratégias de automação em uma plataforma centralizada deixa todo o processo proativo e permite correções rápidas assim que um problema aparece. O resultado: menos tempo de inatividade, menor volume de tickets e conformidade de patches consistente em todos os endpoints.
Tópicos relacionados:
- Como usar o PowerShell para automatizar atualizações de recursos do Windows 11
- O que é gerenciamento de patches no Windows? Visão geral e como fazer
- O que é conformidade de patches?
- Segredos para aplicar patches em escala sem dor de cabeça
- Melhores práticas de gerenciamento de patches para melhorar a conformidade e a segurança
