Guia de Automação de Inicialização Segura de Exemplo E2E
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
Visã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
|
Recurso |
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 seção
Política do Grupo AvailableUpdatesPolicy
|
Local do Registro |
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 do Recurso |
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"
Architecture
Fase 1: Monitorização de Deteção e Estado ao nível da Empresa
Nesta seçã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 |
Finalidade |
Execuções Em |
|
Recolhe dados de status 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 de chave a serem verificados • SecureBootEnabled – Deve ser True ou False • OverallStatus – Complete, ReadyForUpdate, NeedsData ou Error • BucketHash – Bucket de dispositivo para correspondência de dados de confiança • SecureBootTaskEnabled – mostra status da Tarefa de Atualização de Inicialização Segura.
-
Script de agregação de teste
# 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"
de volta para "Fase 1: Detecção e Monitoramento de Status no nível da empresa"
Implantação de GPO
Use o script de automação fornecido de um controlador de domínio:
# Executar no Controlador de Domínio como Administração de Domínio para seção de OU interativa – Recomendado # Substitua o "Contoso.com", "Contoso" pelo nome do domínio # Substituir FILESERVER pelo nome do servidor de arquivo. Script mostra lista de OUs para implantar GPO em .\Deploy-GPO-SecureBootCollection.ps1 ' -DomainName "contoso.com" ' -AutoDetectOU ' -CollectionSharePath "\\FILESERVER\SecureBootData$" -ScriptSourcePath ".\Detect-SecureBootCertUpdateStatus.ps1" ' -Agendar "Diário" -ScheduleTime "14:00" ' -RandomDelayHours 4
Este script executará o seguinte:
-
Cria um novo GPO com o nome especificado
-
Copia o script da coleção para o SYSVOL para alta disponibilidade
-
Configura script de inicialização de computador
-
Vincula o GPO ao OU de destino
-
Opcionalmente, cria tarefa agendada para coleção periódica
A tabela a seguir fornece diretrizes sobre quanto tempo o atraso será baseado no tamanho da frota.
|
Tamanho da frota |
Intervalo de atraso |
|
Dispositivos de 1 a 10 mil |
4 horas |
|
Dispositivos 10K-50K |
8 horas |
|
Mais de 50 mil dispositivos |
12 a 24 horas |
de volta para "Fase 1: Detecção e Monitoramento de Status no nível da empresa"
Resumo de configurações de GPO
|
Setting |
Local |
Valor |
|
Script de Inicialização |
Scripts de configuração de computador → |
Detect-SecureBootCertUpdateStatus.ps1 |
|
Parâmetros de script |
(mesmo) |
-OutputPath "\\server\share$" |
|
Política de Execução |
Modelos de configuração de computador → Administração → PowerShell |
Permitir assinatura local e remota |
|
Tarefas Agendadas |
Configuração do computador → preferências → tarefas agendadas |
Coleção Diária/Semanal |
de volta para "Fase 1: Detecção e Monitoramento de Status no nível da empresa"
Algoritmo de
-
Forçar atualização de GPO no teste de Machine
## On a test workstation gpupdate /force # Reinicialize os computadores cliente para inicializar script ou ele será disparado na próxima agenda. Restart-Computer -Force
-
Verificar coleta de dados
# Verificar se os dados foram coletados (no servidor de arquivos ou em qualquer computador) Get-ChildItem "\\fileserver\SecureBootData$" | Sort-Object LastWriteTime -Descending | Select-Object -Primeiro 10 # Verificar o conteúdo JSON Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-Json
-
Verificar aplicativo GPO
# Verificar se o GPO é aplicado ao computador Select-String "SecureBoot" O script também salva uma cópia local para redundância: Get-ChildItem "C:\ProgramData\SecureBootCollection\"
de volta para "Fase 1: Detecção e Monitoramento de Status no nível da empresa"
Fase 2: Scripts de orquestração de atualização de certificado de inicialização segura
Importante: Verifique se a Fase1 está concluída, incluindo a coleta de dados em cada ponto de extremidade para compartilhamentos de servidor remoto.
Nesta seção
Scripts necessários para a Fase 2
Exemplo de scripts de Coleta de Dados de Inventário de Inicialização Segura
IMPORTANTE Os artigos a seguir que contêm os scripts de exemplo foram retirados. Se você instalou uma atualização do Windows lançada em ou após 12 de maio de 2026, os scripts de exemplo poderão ser encontrados na pasta %systemroot%\SecureBoot\ExampleRolloutScripts em seu dispositivo.
|
Nome do script de exemplo |
Finalidade |
Funciona em |
|
Coleta dados de status de dispositivo |
Cada ponto de extremidade (via GPO) |
|
|
Gera relatórios e painéis |
estação de trabalho Administração |
|
|
Automatiza a criação de GPO para coleta de dados |
Controlador de Domínio |
|
|
Orquestração totalmente automatizada e contínua com implantação automatizada de GPO para instalação de certificado |
estação de trabalho Administração |
|
|
Implanta script do Orchestrator como tarefa agendada para distribuição automatizada |
Controlador de Domínio |
|
|
Exibir certificado de inicialização segura Distribuir status de qualquer estação de trabalho |
estação de trabalho Administração |
|
|
Habilita a Tarefa de Atualização de Inicialização Segura |
Em Pontos de extremidade em que a tarefa está desabilitada (Execute apenas uma vez para habilitar a tarefa se estiver desabilitada) |
Start-SecureBootRolloutOrchestrator.ps1
-
Propósito: Orquestração totalmente automatizada e contínua com implantação automatizada de GPO.
-
O que ela faz
-
Chamadas Aggregate-SecureBootData.ps1 para status de dispositivos
-
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
-
-
Uso
# 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
-
Painel de
Parâmetro
Padrão
Descrição
AggregationInputPath
Obrigatório
Caminho UNC para ficheiros JSON de ponto final
ReportBasePath
Obrigató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 status
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
Padrã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
-
-
Uso
-
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"
-
Usar o wincs method.\Deploy-OrchestratorTask.ps1
-AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" -UseWinCS
-
Requisitos da conta de serviço
-
Domínio Administração (para New-GPO, New-ADGroup, Add-ADGroupMember)
-
Ler o acesso ao compartilhamento de arquivos JSON
-
Gravar acesso ao ReportBasePath
-
-
-
Get-SecureBootRolloutStatus.ps1
-
Propósito: Exibir o progresso da distribuição de qualquer estação de trabalho.
-
O que ele mostra
-
Estado de tarefa agendado (Em execução/pronto/parado)
-
Número de onda atual
-
Dispositivos direcionados versus atualizados
-
Barra de progresso visual
-
Resumo de buckets bloqueados
-
Vincular ao dashboard HTML mais recente
-
-
Uso
# 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
-
Painel de
Parâmetro
Obrigatório?
Padrão
Descrição
ReportBasePath
Obrigatório
—
Caminho local para relatórios e arquivos de estado
ShowLog
IEEE 802.1Q
False
Exibir entradas de log do orquestrador recente
ShowBlocked
IEEE 802.1Q
False
Exibir detalhes de buckets bloqueados
ShowWaves
IEEE 802.1Q
False
Histórico de ondas de exibição
Assistir
IEEE 802.1Q
0 (desabilitado)
Intervalo de atualização automática em segundos. Exemplo: -Assista a 30 atualizações a cada 30 segundos.
OpenDashboard
IEEE 802.1Q
False
Abra o dashboard HTML mais recente no navegador padrão
-
Saída de exemplo
============================================================== STATUS DE DISTRIBUIÇÃO DE INICIALIZAÇÃO SEGURA 2026-02-17 19:30:00 ======================================================
Scheduled Task: Running
ROLLOUT PROGRESS ---------------------------------------- Status: InProgress Onda Atual: 5 Destino Total: 1250 Total atualizado: 847
Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 67.8%
BLOCKED BUCKETS: 2 buckets need attention Executar com -ShowBlocked para obter detalhes
LATEST DASHBOARD C:\SecureBootReports\Aggregation_20260217_193000\SecureBoot_Dashboard.html __________________________________________________________________________________________
Etapas de implantação do E2E (Guia de Referência Rápida)
Nesta seção
Fase 1: Infraestrutura de detecção
-
Etapa 1: Criar Compartilhamento de Coleção
# On file server $sharePath = "D:\SecureBootData" New-Item -ItemType Directory -Path $sharePath -Force New-SmbShare -Nome "SecureBootData$" -Path $sharePath -FullAccess "Domain Admins" -ChangeAccess "Domain Computers"
# Set NTFS permissions $acl = Get-Acl $sharePath $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Domain Computers","Modifi","Allow") $acl. AddAccessRule($rule) Set-Acl $sharePath $acl
-
Etapa 2: Implantar GPO de Detecção
.\Deploy-GPO-SecureBootCollection.ps1 ` -DomainName "contoso.com" ' -OUPath "OU=Workstations,DC=contoso,DC=com" ' -CollectionSharePath "\\server\SecureBootData$"
-
Etapa 3: aguarde os pontos de extremidade para relatar (24 a 48 horas)
# Verificar o progresso da coleção (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json"). Contar
de volta para "Etapas de Implantação do E2E (Guia de Referência Rápida)"
Fase 2: Distribuição Orquestrada
-
Etapa 4: Verificação de pré-requisitos
-
GPO de detecção implantado (Etapa 2)
-
Pelo menos mais de 50 pontos de extremidade relatando JSON
-
Conta de serviço com direitos de Administração de domínio
-
Servidor de gerenciamento com PowerShell 5.1+
-
-
Etapa 5: Implantar o Orquestrador como tarefa agendada
.\Deploy-OrchestratorTask.ps1 ` -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot"
-
Etapa 6: Monitorar o progresso
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"
-
Etapa 7: Exibir Painel
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard
-
Etapa 8: Gerenciar buckets bloqueados
# List blocked .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
# Investigate and unblock .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Manufacturer|Modelo|BIOS"
-
Etapa 9: verificar a conclusão
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" # Status deve mostrar "Concluído"
de volta para "Etapas de Implantação do E2E (Guia de Referência Rápida)"
Estado Files
O orquestrador mantém o estado em ReportBasePath\RolloutState\:
|
Arquivo |
Descrição |
|
RolloutState.json |
Histórico de ondas, dispositivos direcionados, status |
|
BlockedBuckets.json |
Buckets 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)"
Solução de problemas
Nesta seçã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
Log de mudanças
|
Data da alteração |
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. |