Aplica-se A
Windows 10, version 1607, all editions Win 10 Ent LTSB 2016 Win 10 IoT Ent LTSB 2016 Windows 10, version 1809, all editions Win 10 Ent LTSC 2019 Win 10 IoT Ent LTSC 2019 Windows 10 ESU Windows 10 Enterprise LTSC 2021 Windows 10 IoT Enterprise LTSC 2021 Windows 11 version 23H2, all editions Windows 11 version 24H2, all editions Windows 11 version 25H2, all editions Windows 11 version 26H1, all editions Windows Server 2016 Windows Server 2019 Windows Server 2022 Windows Server, version 23H2 Windows Server 2025

Data de publicação original: 16 de março de 2026

ID da BDC: 5084567

Neste artigo

Descrição geral

Este guia descreve o sistema de implementação automatizada para atualizações de certificados da Base de Dados de Arranque Seguro do Windows com Política de Grupo e ondas de implementação progressivas.

A Automatização de Implementação de Certificados de Arranque Seguro é um sistema baseado no PowerShell que implementa atualizações de certificados da BD de Arranque Seguro do Windows em máquinas associadas a um domínio de forma controlada e graduada.

voltar ao início

Principais Funcionalidades

Funcionalidade

Descrição

Implementação Pós-graduada

1 > 2 > 4 > 8... dispositivos por registo

Bloqueio Automático

Os registos com dispositivos inacessíveis são excluídos

Implementação automatizada de GPO

O script de orquestrador único processa tudo

Execução de Tarefas Agendadas

Não são necessários pedidos interativos

Monitorização em tempo real

Visualizador de estado com barra de progresso

voltar ao início 

Referência das Definições de Atualizações de Certificados

Nesta secção

Política do Grupo AvailableUpdatesPolicy

Localização do registo

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot

Nome

AvailableUpdatesPolicy

Valor

0x5944 (DWORD)

Esta é a chave controlada por GPO/ADMX que:

  • Persiste entre reinícios

  • É definido por Política de Grupo/MDM

  • Não causa ciclos de repetição (limpos através de ClearRolloutFlags)

  • É a chave correta para a implementação orientada por políticas

Referência: Política de Grupo método de Objetos (GPO) de Arranque Seguro para dispositivos Windows com atualizações geridas por TI

voltar a "Referência de Definições de Atualizações de Certificados" 

WinCSFlags – Sinalizadores do Sistema de Configuração do Windows

Os administradores de domínio podem, em alternativa, utilizar o Sistema de Configuração do Windows (WinCS) lançado com atualizações do SO Windows para implementar as atualizações de Arranque Seguro em clientes e servidores Windows associados a um domínio. Consiste num utilitário de interface de linha de comandos (CLI) para consultar e aplicar configurações de Arranque Seguro localmente a um computador.

Nome da funcionalidade

Chave WinCS

Descrição

Feature_AllKeysAndBootMgrByWinCS

F33E0C8E002

Ativar esta chave permite a instalação dos seguintes novos certificados de Arranque Seguro fornecidos pela Microsoft no seu dispositivo.

  • Microsoft Corporation KEK 2K CA 2023

  • WINDOWS UEFI CA 2023

  • Microsoft UEFI CA 2023

  • MICROSOFT Option UEFI ROM CA 2023

Referência: APIs do Sistema de Configuração do Windows (WinCS) para Arranque Seguro

voltar a "Referência de Definições de Atualizações de Certificados"

voltar ao início

Arquitetura

Fluxo de trabalho de arquitetura

voltar ao início 

Fase 1: Monitorização de Deteção e Estado ao nível da Empresa

Nesta secção

Scripts necessários para a Fase 1

Scripts de Recolha de Dados de Inventário de Arranque Seguro de Exemplo

Nome do Script de Exemplo

Objetivo 

Execuções Em 

Script de Detect-SecureBootCertUpdateStatus.ps1 de exemplo 

Recolhe dados de estado do dispositivo 

Cada ponto final (através de GPO) 

Script de Aggregate-SecureBootData.ps1 de exemplo 

Gera relatórios e dashboards 

Administração estação de trabalho 

Script de Deploy-GPO-SecureBootCollection.ps1 de exemplo

Automatiza a criação de GPO para recolha de dados 

Controlador de Domínio 

Dashboard de Estado do Certificado de Arranque Seguro

voltar a "Fase 1: Monitorização de Estado e Deteção ao nível empresarial"

Testes Locais

Antes de implementar através de GPO, teste o script de coleção num único computador para verificar a funcionalidade. 

  • Executar Script de Coleção Localmente Abra uma linha de comandos elevada do PowerShell e execute:

    & .\Detect-SecureBootCertUpdateStatus.ps1 -OutputPath "C:\Temp\SecureBootTest" 

  • Verificar a Saída JSON

    # View the collected data  Get-Content "C:\Temp\SecureBootTest\*_latest.json" | ConvertFrom-Json | Format-List

    Campos chave a verificar  SecureBootEnabled – Deve ser Verdadeiro ou Falso OverallStatus – Complete, ReadyForUpdate, NeedsData ou Error BucketHash – Registo de dispositivos para correspondência de dados de confiança • SecureBootTaskEnabled – mostra o estado da Tarefa de Atualização de Arranque Seguro.

  • Testar Script de Agregação

    # Generate reports from collected data  & .\Aggregate-SecureBootCertStatus.ps1"     -InputPath "C:\Temp\SecureBootTest" "     -OutputPath "C:\Temp\SecureBootReports" # Abra o dashboard HTML   

    Start-Process "C:\Temp\SecureBootReports\SecureBoot_Dashboard_*.html"

voltar a "Fase 1: Monitorização de Estado e Deteção ao nível empresarial" 

Configuração da Partilha de Rede

  • Criar a Partilha de Rede No servidor de ficheiros, crie uma partilha dedicada para os dados de recolha:

    # Run on file server as Administrator  $SharePath = "D:\SecureBootCollection" $ShareName = "SecureBootData$" # Criar pasta New-Item -ItemType Directory -Path $SharePath -Force # Criar partilha oculta (sufixo$ oculta da lista de procura) New-SmbShare -Name $ShareName -Path $SharePath '     -Descrição "Coleção de Estado do Certificado de Arranque Seguro" "     -FullAccess "Admins do Domínio" "     -ChangeAccess "Utilizadores Autenticados"    

  • Configurar Permissões NTFS

    # Get current ACL  $Acl = Get-Acl $SharePath # Permitir que utilizadores autenticados escrevam ficheiros $WriteRule = New-Object System.Security.AccessControl.FileSystemAccessRule(     "Utilizadores Autenticados",     "CreateFiles,AppendData,WriteAttributes,WriteExtendedAttributes",     "ContainerInherit,ObjectInherit",     "Nenhum",     "Permitir" ) $Acl.AddAccessRule($WriteRule) # Permitir controlo total dos Administradores de Domínio (para agregação) $AdminRule = New-Object System.Security.AccessControl.FileSystemAccessRule(     "Administradores de Domínio",     "FullControl",     "ContainerInherit,ObjectInherit",     "Nenhum",     "Permitir" ) $Acl.AddAccessRule($AdminRule) # Aplicar permissões Set-Acl -Path $SharePath -AclObject $Acl       

  • Verificar o Acesso de Partilha

    # Test from a domain-joined workstation  Test-Path "\\fileserver\SecureBootData$" # Deve devolver: Verdadeiro

voltar a "Fase 1: Monitorização de Estado e Deteção ao nível empresarial" 

Implementação do GPO

Utilize o script de automatização fornecido a partir de um controlador de domínio:

# Execute no Controlador de Domínio como Administração de Domínio para a Secção interativa da UO – Recomendado # Substitua "Contoso.com", "Contoso" pelo nome do domínio # Substitua FILESERVER pelo nome do servidor de ficheiros.  O script mostra a lista de UOs para implementar o GPO no .\Deploy-GPO-SecureBootCollection.ps1 '     -DomainName "contoso.com" "     -AutoDetectOU '     -CollectionSharePath "\\FILESERVER\SecureBootLogs$" "     -ScriptSourcePath ".\Detect-SecureBootCertUpdateStatus.ps1" "     -Agendar "Diariamente"     -ScheduleTime "14:00" "     -RandomDelayHours 4 

Este script efetuará o seguinte:

  • Cria um novo GPO com o nome especificado

  • Copia o script de coleção para SYSVOL para elevada disponibilidade

  • Configura o Script de Arranque do Computador

  • Liga o GPO à UO de destino

  • Opcionalmente, cria a tarefa agendada para a coleção periódica

A tabela seguinte fornece orientações sobre quanto tempo o atraso será baseado no tamanho da sua frota.

Tamanho da frota 

Intervalo de atrasos 

Dispositivos de 1 a 10 000 pessoas 

4 horas 

Dispositivos 10K-50K 

8 horas 

Dispositivos com mais de 50 mil 

12 a 24 horas

voltar a "Fase 1: Monitorização de Estado e Deteção ao nível empresarial" 

Resumo das Definições de GPO

Definição 

Localização 

Valor 

Script de Arranque 

Configuração do Computador → Scripts 

Detect-SecureBootCertUpdateStatus.ps1 

Parâmetros de Script 

(o mesmo) 

-OutputPath "\\server\share$" 

Política de Execução 

Configuração do Computador → Administração Modelos → PowerShell 

Permitir assinatura local e remota 

Tarefa Agendada 

Configuração do Computador → Preferências → Tarefas Agendadas 

Coleção diária/semanal

voltar a "Fase 1: Monitorização de Estado e Deteção ao nível empresarial" 

Verificação

  • Forçar Atualização do GPO no Machin de Testee

    ## On a test workstation  gpupdate /force # Reinicie as máquinas cliente para o script de arranque ou será acionada na próxima agenda.  Restart-Computer -Force

  • Verificar Recolha de Dados

    # Verifique se os dados foram recolhidos (no servidor de ficheiros ou em qualquer computador) Get-ChildItem "\\fileserver\SecureBootData$" |       Sort-Object LastWriteTime -Descending |       Select-Object -Primeiros 10   # Verificar conteúdo JSON Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-Json 

  • Verificar a Aplicação GPO

    # Verifique se o GPO foi aplicado ao computador gpresult /r /scope:computer | Select-String "SecureBoot" s O script também guarda uma cópia local para redundância: Get-ChildItem "C:\ProgramData\SecureBootCollection\" 

voltar a "Fase 1: Monitorização de Estado e Deteção ao nível empresarial"

voltar ao início 

Fase 2: Scripts de Orquestração de Atualização de Certificados de Arranque Seguro

Importante: Certifique-se de que a Fase1 está concluída, incluindo a recolha de dados em cada ponto final para partilhas remotas do servidor.

Nesta secção

Scripts necessários para a Fase 2

Scripts de Recolha de Dados de Inventário de Arranque Seguro de Exemplo

Nome do script de exemplo

Objetivo 

Executado no 

Script de Detect-SecureBootCertUpdateStatus.ps1 de exemplo  

Recolhe dados de estado do dispositivo 

Cada ponto final (através de GPO) 

Script de Aggregate-SecureBootData.ps1 de exemplo

Gera relatórios e dashboards 

Administração estação de trabalho 

Script de Deploy-GPO-SecureBootCollection.ps1 de exemplo

Automatiza a criação de GPO para recolha de dados 

Controlador de Domínio 

Script de Start-SecureBootRolloutOrchestrator.ps1 de exemplo

Orquestração contínua totalmente automatizada com implementação de GPO automatizado para instalação de certificados

Administração estação de trabalho 

Script de Deploy-OrchestratorTask.ps1 de exemplo

Implementa o script do Orchestrator como tarefa agendada para a implementação automatizada

Controlador de Domínio

Script de Get-SecureBootRolloutStatus.ps1 de exemplo

Ver o estado de Implementação do Certificado de Arranque Seguro a partir de qualquer estação de trabalho

Administração Workstation

Script de Enable-SecureBootUpdateTask.ps1 de exemplo

 Ativa a Tarefa de Atualização de Arranque Seguro

Em Pontos finais onde a tarefa está desativada (Execute apenas uma vez para ativar a tarefa se estiver desativada)

voltar a "Fase 2: Scripts de Orquestração de Atualização de Certificados de Arranque Seguro" 

Start-SecureBootRolloutOrchestrator.ps1

  • Objetivo: Orquestração contínua totalmente automatizada com implementação de GPO automatizado.

  • Função

    • Chamadas Aggregate-SecureBootData.ps1 para o estado do dispositivo

    • Gera ondas de implementação com duplicação progressiva

    • Cria o GPO para a implementação de certificados com um dos seguintes métodos

      • Política de Grupo de Arranque Seguro AvailableUpdatesPolicy = 0x5944 (Predefinição)

      • Método WinCS (Parâmetro –UseWinCS)

    • Cria grupos de segurança do AD para filtragem

    • Adiciona contas de computador a grupos de segurança

    • Configura a filtragem de segurança de GPO

    • Liga o GPO à UO de destino

    • Monitores para registos bloqueados (dispositivos inacessíveis)

    • Desbloqueia automaticamente quando os dispositivos recuperam

  • Utilização

    # Interactive (testing) .\Start-SecureBootRolloutOrchestrator.ps1 '     -AggregationInputPath "\\fileserver\SecureBootData$" "     -ReportBasePath "C:\SecureBootReports" "     -PollIntervalMinutes 30

    # Interactive (testing), leveraging WinCS method .\Start-SecureBootRolloutOrchestrator.ps1 '     -AggregationInputPath "\\fileserver\SecureBootData$" "     -ReportBasePath "C:\SecureBootReports" "     -PollIntervalMinutes 1440 -UseWinCS

  • Administração comandos

    # List blocked buckets .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets

    # Unblock specific bucket .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Dell|Latitude5520|BIOS1.2"

    # Unblock all .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockAll

  • Parâmetros

    Parâmetro

    Predefinição

    Descrição

    AggregationInputPath

    Necessário

    Caminho UNC para ficheiros JSON de ponto final

    ReportBasePath

    Necessário

    Caminho local para relatórios e estado

    TargetOU

    Raiz de domínio

    UO para ligar GPOs

    WavePrefix

    SecureBoot-Rollout

    Prefixo de nomenclatura GPO/grupo

    MaxWaitHours

    72

    Horas antes de verificar a acessibilidade do dispositivo

    PollIntervalMinutes

    1440

    Minutos entre verificações de estado

    DryRun

    False

    Mostrar o que aconteceria sem alterações

voltar a "Fase 2: Scripts de Orquestração de Atualização de Certificados de Arranque Seguro"  

Deploy-OrchestratorTask.ps1

  • Objetivo: Implementa o orquestrador como uma Tarefa Agendada do Windows.

  • Benefícios

    • Sem pedidos de segurança do PowerShell (ExecutionPolicy Bypass)

    • É executado continuamente em segundo plano

    • Não é necessária qualquer interação do utilizador

    • Sobrevive a reinícios

  • Utilização

    • Implementar com conta de serviço de domínio (recomendado)

      • Utilizar AvailableUpdates Política de Grupo (Método Predefinido)

        .\Deploy-OrchestratorTask.ps1 '     -AggregationInputPath "\\server\SecureBootData$" "     -ReportBasePath "C:\SecureBootReports" "     -ServiceAccount "DOMAIN\svc_secureboot"

      • Utilizar o método WinCS

        .\Deploy-OrchestratorTask.ps1 '     -AggregationInputPath "\\server\SecureBootData$" "     -ReportBasePath "C:\SecureBootReports" "     -ServiceAccount "DOMAIN\svc_secureboot" -UseWinCS

    • Implementar com a conta SYSTEM

      • Utilizar AvailableUpdates Política de Grupo (Método Predefinido)

        .\Deploy-OrchestratorTask.ps1 '     -AggregationInputPath "\\server\SecureBootData$" "     -ReportBasePath "C:\SecureBootReports"

      • Utilizar o WinCS method.\Deploy-OrchestratorTask.ps1

            -AggregationInputPath "\\server\SecureBootData$" "     -ReportBasePath "C:\SecureBootReports" -UseWinCS

      • Requisitos da Conta de Serviço

        • Administração de Domínio (para New-GPO, New-ADGroup, Add-ADGroupMember)

        • Acesso de leitura à partilha de ficheiros JSON

        • Acesso de escrita ao ReportBasePath

voltar a "Fase 2: Scripts de Orquestração de Atualização de Certificados de Arranque Seguro"  

Get-SecureBootRolloutStatus.ps1

  • Objetivo: Veja o progresso da implementação a partir de qualquer estação de trabalho.

  • O que mostra

    • Estado da tarefa agendada (Em Execução/Pronto/Parado)

    • Número de onda atual

    • Dispositivos visados vs. atualizados

    • Barra de progresso visual

    • Resumo de registos bloqueados

    • Ligar ao dashboard HTML mais recente

  • Utilização

    # Quick status check .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"

    # Continuous monitoring (refreshes every 30 seconds) .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -Watch 30

    # View blocked buckets .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -ShowBlocked

    # View wave history .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -ShowWaves

    # View recent log .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -ShowLog

    # Open dashboard in browser .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard

  • Saída de exemplo

    ==============================================================    ESTADO DE IMPLEMENTAÇÃO DE ARRANQUE SEGURO    2026-02-17 19:30:00 ======================================================

    Scheduled Task: Running

    ROLLOUT PROGRESS ---------------------------------------- Estado: Entrada Onda Atual: 5 Total Direcionado: 1250 Total Atualizado: 847

    Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 67.8%

    BLOCKED BUCKETS: 2 buckets need attention   Execute com -ShowBlocked para obter detalhes

    LATEST DASHBOARD C:\SecureBootReports\Aggregation_20260217_193000\SecureBoot_Dashboard.html __________________________________________________________________________________________

voltar a "Fase 2: Scripts de Orquestração de Atualização de Certificados de Arranque Seguro"

voltar ao início 

Passos de Implementação E2E (Guia de Referência Rápida)

Nesta secção

Fase 1: Infraestrutura de Deteção

  • Passo 1: Criar Partilha de Coleção

    # On file server $sharePath = "D:\SecureBootData" New-Item -ItemType Directory -Path $sharePath -Force New-SmbShare -Name "SecureBootData$" -Path $sharePath -FullAccess "Domain Admins" -ChangeAccess "Domain Computers"

    # Set NTFS permissions $acl = Get-Acl $sharePath $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Computadores de Domínio","Modificar","Permitir") $acl. AddAccessRule($rule) Set-Acl $sharePath $acl

  • Passo 2: Implementar o GPO de Deteção

    .\Deploy-GPO-SecureBootCollection.ps1 `     -DomainName "contoso.com" "     -OUPath "UO=Workstations,DC=contoso,DC=com" "     -CollectionSharePath "\\server\SecureBootData$"

  • Passo 3: aguarde que os Pontos Finais reportem (24 a 48 horas)

    # Verificar o progresso da coleção (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json"). Contagem

voltar a "Passos de Implementação E2E (Guia de Referência Rápida)" 

Fase 2: Implementação Orquestrada

  • Passo 4: Verificação de Pré-requisitos

    • GPO de deteção implementado (Passo 2)

    • Pelo menos mais de 50 pontos finais que reportam JSON

    • Conta de serviço com direitos de Administração de Domínio

    • Servidor de gestão com o PowerShell 5.1+

  • Passo 5: Implementar o Orchestrator como Tarefa Agendada

    .\Deploy-OrchestratorTask.ps1 `     -AggregationInputPath "\\server\SecureBootData$" "     -ReportBasePath "C:\SecureBootReports" "     -ServiceAccount "DOMAIN\svc_secureboot"

  • Passo 6: Monitorizar o Progresso

    .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"

  • Passo 7: Ver Dashboard

    .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard

  • Passo 8: Gerir Registos Bloqueados

    # List blocked .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets

    # Investigate and unblock .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Manufacturer|Modelo|BIOS"

  • Passo 9: Verificar a Conclusão

    .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" #Estado deve mostrar "Concluído"

voltar a "Passos de Implementação E2E (Guia de Referência Rápida)"  

Estado Files

O orquestrador mantém o estado em ReportBasePath\RolloutState\:

Ficheiro

Descrição

RolloutState.json

Histórico de ondas, dispositivos direcionados, estado

BlockedBuckets.json

Grupos que precisam de investigação

DeviceHistory.json

Controlo de dispositivos por nome de anfitrião

Orchestrator_YYYYMMDD.log

Registos de atividades diários

voltar a "Passos de Implementação E2E (Guia de Referência Rápida)" 

voltar ao início 

Resolução de Problemas

Nesta secção

Orchestrator Não Progride

  1. Verificar a tarefa agendada

    Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"

  2. Verificar registos

    Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50

  3. Verificar a atualização de dados JSON

    (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count

voltar a "Resolução de Problemas" 

Registos Bloqueados

  1. Lista bloqueada.

    .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets

  2. Investigar a acessibilidade do dispositivo.

  3. Verifique se existem problemas de firmware.

  4. Desbloqueie após a investigação.

voltar a "Resolução de Problemas"  

GPO Não Está a Ser Aplicado

  1. Verifique se o GPO existe.

    Get-GPO -Name "SecureBoot-Rollout-Wave*"

  2. Verifique a filtragem de segurança.

    Get-GPPermission -Name "GPO-Name" -All

  3. Verifique se o computador está no grupo de segurança.

  4. Aplique o GPO no destino.

    gpupdate /force

voltar a "Resolução de Problemas"

voltar ao início 

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.