Exemplo de Guia de Automatização E2E de Arranque Seguro
Aplica-se A
Data de publicação original: 16 de março de 2026Última data atualizada: 12 de maio de 2026ID 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.
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 |
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
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.
|
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"
Arquitetura
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
IMPORTANTE Os seguintes artigos que contêm os scripts de exemplo foram descontinuados. Se tiver instalado uma atualização do Windows lançada em ou depois de 12 de maio de 2026, os scripts de exemplo podem ser encontrados na pasta %systemroot%\SecureBoot\ExampleRolloutScripts no seu dispositivo.
|
Nome do Script de Exemplo |
Objetivo |
Execuções Em |
|
Recolhe dados de estado do dispositivo |
Cada ponto final (através de GPO) |
|
|
Gera relatórios e dashboards |
Administração estação de trabalho |
|
|
Automatiza a criação de GPO para recolha de dados |
Controlador de Domínio |
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-SecureBootData.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"
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\SecureBootData$" -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 Select-String "SecureBoot" 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"
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
IMPORTANTE Os seguintes artigos que contêm os scripts de exemplo foram descontinuados. Se tiver instalado uma atualização do Windows lançada em ou depois de 12 de maio de 2026, os scripts de exemplo podem ser encontrados na pasta %systemroot%\SecureBoot\ExampleRolloutScripts no seu dispositivo.
|
Nome do script de exemplo |
Objetivo |
Executado no |
|
Recolhe dados de estado do dispositivo |
Cada ponto final (através de GPO) |
|
|
Gera relatórios e dashboards |
Administração estação de trabalho |
|
|
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 |
|
Implementa o script do Orchestrator como tarefa agendada para a implementação automatizada |
Controlador de Domínio |
|
|
Ver o estado de Implementação do Certificado de Arranque Seguro a partir de qualquer estação de trabalho |
Administração Workstation |
|
|
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 30 ' -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
Nota em PollIntervalMinutes: Ao executar o orquestrador diretamente, a predefinição é 1440 minutos (24 horas). Quando implementada através de Deploy-OrchestratorTask.ps1, a predefinição é de 30 minutos. O script de implementação passa a sua própria predefinição para o orquestrador. Utilize 30 minutos para a implementação ativa, 1440 para monitorização da manutenção.
Parâmetros Opcionais
Parâmetro
Predefinição
Descrição
UseWincs
False
Utilizar o método WinCS em vez do GPO AvailableUpdatesPolicy
WinCSKey
F33E0C8E002
Chave WinCS para configuração de Arranque Seguro
AllowListPath
(nenhum)
Caminho para o ficheiro com nomes de anfitrião para PERMITIR para implementação de destino/piloto. Suporta .txt ou .csv.
AllowADGroup
(nenhum)
Grupo de segurança do AD de contas de computador para PERMITIR. Exemplo: "SecureBoot-Pilot-Computers"
ExclusionListPath
(nenhum)
Caminho para o ficheiro com nomes de anfitrião a EXCLUIR da implementação (dispositivos VIP/executivos)
ExcludeADGroup
(nenhum)
Grupo de segurança do AD de contas de computador a excluir. Exemplo: "VIP-Computers"
ListBlockedBuckets
False
Apresentar registos de dispositivos atualmente bloqueados
DesbloquearBucket
(nenhum)
Desbloqueie um registo específico. Formato: "Fabricante|Modelo|BIOS"
DesbloquearTodos
False
Desbloquear todos os registos de dispositivos bloqueados
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
-
Parâmetros
Parâmetro
Necessário?
Predefinição
Descrição
ReportBasePath
Necessário
—
Caminho local para relatórios e ficheiros de estado
ShowLog
Opcional
False
Apresentar entradas de registo recentes do orchestrator
MostrarBloqueado
Opcional
False
Apresentar detalhes de registos bloqueados
ShowWaves
Opcional
False
Apresentar histórico de ondas
Ver
Opcional
0 (desativado)
Intervalo de atualização automática em segundos. Exemplo: -Veja 30 atualizações a cada 30 segundos.
OpenDashboard
Opcional
False
Abrir o dashboard HTML mais recente no browser predefinido
-
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"
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)"
Resolução de Problemas
Nesta secção
Orchestrator Não Progride
-
Verificar a tarefa agendada
Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"
-
Verificar registos
Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50
-
Verificar a atualização de dados JSON
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count
Registos Bloqueados
-
Lista bloqueada.
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
-
Investigar a acessibilidade do dispositivo.
-
Verifique se existem problemas de firmware.
-
Desbloqueie após a investigação.
GPO Não Está a Ser Aplicado
-
Verifique se o GPO existe.
Get-GPO -Name "SecureBoot-Rollout-Wave*"
-
Verifique a filtragem de segurança.
Get-GPPermission -Name "GPO-Name" -All
-
Verifique se o computador está no grupo de segurança.
-
Aplique o GPO no destino.
gpupdate /force
Registo de alterações
|
Alterar data |
Alterar descrição |
|
12 de maio de 2026 |
Anteriormente, cada ficheiro de script de exemplo era publicado como artigos individuais a partir dos quais copiaria e colaria o script. A partir das atualizações do Windows lançadas em e depois de 12 de maio de 2026, os scripts de exemplo estão localizados na pasta %systemroot%\SecureBoot\ExampleRolloutScripts no seu dispositivo. |