Guía de automatización de E2E de arranque seguro de ejemplo
Se aplica a
Fecha de publicación original: Última fecha de actualización del 16 de marzo de 2026: 12 de mayo de 2026KB ID: 5084567
En este artículo
Información general
En esta guía se describe el sistema de implementación automatizado para las actualizaciones de certificados de base de datos de arranque seguro de Windows mediante ondas de implementación progresiva y directiva de grupo.
La automatización de la implementación de certificados de arranque seguro es un sistema basado en PowerShell que implementa actualizaciones de certificados de base de datos de arranque seguro de Windows en equipos unidos a dominios de manera controlada y graduada.
Características clave
|
Característica |
Descripción |
|
Implementación graduada |
1 > 2 > 4 > 8... dispositivos por cubo |
|
Bloqueo automático |
Se excluyen los cubos con dispositivos no accesibles |
|
Implementación automatizada de GPO |
Un solo script organizador controla todo |
|
Ejecución de tarea programada |
No se requieren mensajes interactivos |
|
Supervisión en tiempo real |
Visor de estado con barra de progreso |
Referencia de configuración de Novedades de certificados
En esta sección
Directiva de grupo AvailableUpdatesPolicy
|
Ubicación del registro |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot |
|
Nombre |
AvailableUpdatesPolicy |
|
Valor |
0x5944 (DWORD) |
Esta es la clave controlada por GPO/ADMX que:
-
Continúa durante los reinicios
-
Se establece por directiva de grupo/MDM
-
No causa bucles de reintento (borrado a través de ClearRolloutFlags)
-
Es la clave correcta para la implementación controlada por directivas
WinCSFlags: marcas del sistema de configuración de Windows
Los administradores de dominios pueden usar alternativamente el Sistema de configuración de Windows (WinCS) publicado con actualizaciones del sistema operativo Windows para implementar las actualizaciones de arranque seguro en los clientes y servidores de Windows unidos a un dominio. Consiste en una utilidad de interfaz de línea de comandos (CLI) para consultar y aplicar configuraciones de arranque seguro localmente a un equipo.
|
Nombre de característica |
Tecla WinCS |
Descripción |
|
Feature_AllKeysAndBootMgrByWinCS |
F33E0C8E002 |
Habilitar esta clave permite la instalación de los siguientes certificados de arranque seguro proporcionados por Microsoft en el dispositivo.
|
Referencia: API del sistema de configuración de Windows (WinCS) para arranque seguro
Architecture
Fase 1: Detección y supervisión del estado a nivel de empresa
En esta sección
Scripts necesarios para la fase 1
Ejemplo de scripts de recopilación de datos de inventario de arranque seguro
IMPORTANTE Se han retirado los siguientes artículos que contienen los scripts de ejemplo. Si has instalado una actualización de Windows publicada el 12 de mayo de 2026 o después, puedes encontrar los scripts de ejemplo en la carpeta %systemroot%\SecureBoot\ExampleRolloutScripts de tu dispositivo.
|
Nombre de script de ejemplo |
Finalidad |
Se ejecuta en |
|
Recopila datos de estado del dispositivo |
Cada punto de conexión (a través de GPO) |
|
|
Genera informes y paneles |
estación de trabajo Administración |
|
|
Automatiza la creación de GPO para la recopilación de datos |
Controlador de dominio |
"Fase 1: Detección y supervisión del estado a nivel empresarial"
Pruebas locales
Antes de realizar la implementación a través de GPO, pruebe el script de colección en un único equipo para comprobar la funcionalidad.
-
Ejecutar script de colección localmente Abra un símbolo del sistema con privilegios elevados de PowerShell y ejecute:
& .\Detect-SecureBootCertUpdateStatus.ps1 -OutputPath "C:\Temp\SecureBootTest"
-
Comprobar salida JSON
# View the collected data Get-Content "C:\Temp\SecureBootTest\*_latest.json" | ConvertFrom-Json | Format-List
Campos clave para comprobar • SecureBootEnabled : debe ser Verdadero o Falso • OverallStatus : completado, ReadyForUpdate, NeedsData o Error • BucketHash : cubo del dispositivo para la coincidencia de datos de confianza • SecureBootTaskEnabled : muestra el estado de la tarea de actualización de arranque seguro.
-
Script de agregación de pruebas
# Generate reports from collected data & ".\Aggregate-SecureBootData.ps1" ' -InputPath "C:\Temp\SecureBootTest" ' -OutputPath "C:\Temp\SecureBootReports" # Abrir el panel HTML Start-Process "C:\Temp\SecureBootReports\SecureBoot_Dashboard_*.html"
"Fase 1: Detección y supervisión del estado a nivel empresarial"
Implementación de GPO
Use el script de automatización proporcionado desde un controlador de dominio:
# Ejecutar en el controlador de dominio como Administración de dominio para la sección de unidad organizativa interactiva: recomendado # Reemplace la "Contoso.com", "Contoso" por el nombre del dominio # Reemplace FILESERVER por el nombre del servidor de archivos. Script muestra la lista de OU para implementar GPO en .\Deploy-GPO-SecureBootCollection.ps1 ' -DomainName "contoso.com" ' -AutoDetectOU ' -CollectionSharePath "\\FILESERVER\SecureBootData$" -ScriptSourcePath ".\Detect-SecureBootCertUpdateStatus.ps1" ' -Programar "Diario" ' -ScheduleTime "14:00" ' -RandomDelayHours 4
Este script realizará lo siguiente:
-
Crea un GPO nuevo con el nombre especificado
-
Copia el script de colección a SYSVOL para alta disponibilidad
-
Configura el script de inicio del equipo
-
Vincula GPO a ou de destino
-
Opcionalmente, se crea una tarea programada para la recopilación periódica
La tabla siguiente proporciona instrucciones sobre cuánto tiempo se basará el retraso en función del tamaño de la flota.
|
Tamaño de la flota |
Intervalo de retrasos |
|
Dispositivos de 1 a 10 000 |
4 horas |
|
Dispositivos de 10K a 50 000 |
8 horas |
|
Más de 50 000 dispositivos |
12-24 horas |
"Fase 1: Detección y supervisión del estado a nivel empresarial"
Resumen de la configuración de GPO
|
Setting |
Ubicación |
Valor |
|
Script de inicio |
Scripts de → de configuración del equipo |
Detect-SecureBootCertUpdateStatus.ps1 |
|
Parámetros de script |
(mismo) |
-OutputPath "\\servidor\recurso compartido$" |
|
Directiva de ejecución |
Plantillas de configuración → Administración equipo → PowerShell |
Permitir la firma local y remota |
|
Tarea programada |
Preferencias de configuración → del equipo → tareas programadas |
Colección diaria/semanal |
"Fase 1: Detección y supervisión del estado a nivel empresarial"
Comprobación
-
Forzar la actualización de GPO en prueba machine
## On a test workstation gpupdate /force # Reinicia los equipos cliente para iniciar el script o se desencadenará en la siguiente programación. Restart-Computer : fuerza
-
Comprobar recopilación de datos
# Comprueba si se recopilaron datos (en el servidor de archivos o desde cualquier equipo) Get-ChildItem "\\fileserver\SecureBootData$" | Sort-Object LastWriteTime -Descending | Select-Object - Primeros 10 # Comprobar el contenido JSON Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-Json
-
Comprobar la aplicación GPO
# Comprobar que el GPO se aplica al equipo Select-String "SecureBoot" El script también guarda una copia local para redundancia: Get-ChildItem "C:\ProgramData\SecureBootCollection\"
"Fase 1: Detección y supervisión del estado a nivel empresarial"
Fase 2: Scripts de orquestación de actualización de certificados de arranque seguro
Importante: Asegúrese de que se complete la fase1, incluida la recopilación de datos en cada punto final de los recursos compartidos de servidor remoto.
En esta sección
Scripts necesarios para la fase 2
Ejemplo de scripts de recopilación de datos de inventario de arranque seguro
IMPORTANTE Se han retirado los siguientes artículos que contienen los scripts de ejemplo. Si has instalado una actualización de Windows publicada el 12 de mayo de 2026 o después, puedes encontrar los scripts de ejemplo en la carpeta %systemroot%\SecureBoot\ExampleRolloutScripts de tu dispositivo.
|
Nombre de script de ejemplo |
Finalidad |
Se ejecuta en |
|
Recopila datos de estado del dispositivo |
Cada punto de conexión (a través de GPO) |
|
|
Genera informes y paneles |
estación de trabajo Administración |
|
|
Automatiza la creación de GPO para la recopilación de datos |
Controlador de dominio |
|
|
Script de Start-SecureBootRolloutOrchestrator.ps1 de ejemplo |
Orquestación continua totalmente automatizada con implementación automatizada de GPO para la instalación de certificados |
estación de trabajo Administración |
|
Implementa el script del organizador como tarea programada para la implementación automatizada |
Controlador de dominio |
|
|
Ver el estado de implementación de certificado de arranque seguro desde cualquier estación de trabajo |
estación de trabajo de Administración |
|
|
Habilita la tarea de actualización de arranque seguro |
En los puntos finales en los que la tarea está deshabilitada (Ejecutar solo una vez para habilitar la tarea si está deshabilitada) |
"Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Start-SecureBootRolloutOrchestrator.ps1
-
Finalidad: Orquestación continua totalmente automatizada con implementación automatizada de GPO.
-
Qué hace
-
Llamadas Aggregate-SecureBootData.ps1 para el estado del dispositivo
-
Genera ondas de implementación mediante duplicación progresiva
-
Crea GPO para la implementación de certificados mediante uno de los métodos siguientes
-
Directiva de grupo de arranque seguro AvailableUpdatesPolicy = 0x5944 (Predeterminado)
-
Método WinCS (Parameter –UseWinCS)
-
-
Crea grupos de seguridad de AD para segmentación
-
Agrega cuentas de equipo a grupos de seguridad
-
Configura el filtrado de seguridad gpo
-
Vincula GPO a ou de destino
-
Monitores para cubos bloqueados (dispositivos no accesibles)
-
Se desbloquea automáticamente cuando los dispositivos se recuperan
-
-
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
-
comandos Administración
# 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
Valor predeterminado
Descripción
AggregationInputPath
Obligatorio
Ruta de acceso UNC a archivos JSON de punto de conexión
ReportBasePath
Obligatorio
Ruta de acceso local para informes y estado
TargetOU
Raíz de dominio
Unidad organizativa para vincular GPO
WavePrefix
SecureBoot-Rollout
Prefijo de nomenclatura de GPO/grupo
MaxWaitHours
72
Horas antes de comprobar el alcance del dispositivo
PollIntervalMinutes
1440
Minutos entre comprobaciones de estado
DryRun
falso
Mostrar lo que ocurriría sin cambios
Nota sobre PollIntervalMinutes: Al ejecutar el organizador directamente, el valor predeterminado es 1440 minutos (24 horas). Cuando se implementa a través de Deploy-OrchestratorTask.ps1, el valor predeterminado es 30 minutos. El script de implementación pasa su propio valor predeterminado al organizador. Use 30 minutos para la implementación activa, 1440 para la supervisión del mantenimiento.
Parámetros opcionales
Parámetro
Valor predeterminado
Descripción
UseWinCS
falso
Usar el método WinCS en lugar de AvailableUpdatesPolicy GPO
WinCSKey
F33E0C8E002
Clave de WinCS para la configuración de arranque seguro
AllowListPath
(ninguno)
Ruta de acceso al archivo con nombres de host para PERMITIR para el lanzamiento piloto o dirigido. Admite .txt o .csv.
AllowADGroup
(ninguno)
Grupo de seguridad de AD de cuentas de equipo para PERMITIR. Ejemplo: "SecureBoot-Pilot-Computers"
ExclusionListPath
(ninguno)
Ruta de acceso al archivo con nombres de host para EXCLUIR del lanzamiento (dispositivos VIP/ejecutivos)
ExcludeADGroup
(ninguno)
Grupo de seguridad de AD de cuentas de equipo para excluir. Ejemplo: "VIP-Computers"
ListBlockedBuckets
falso
Mostrar cubos de dispositivos bloqueados actualmente
DesbloquearBucket
(ninguno)
Desbloquear un cubo específico. Formato: "Fabricante|Modelo|BIOS"
Desbloquear todo
falso
Desbloquear todos los cubos de dispositivos bloqueados
"Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Deploy-OrchestratorTask.ps1
-
Finalidad: Implementa el organizador como una tarea programada de Windows.
-
Beneficios
-
Sin avisos de seguridad de PowerShell (ExecutionPolicy Bypass)
-
Se ejecuta en segundo plano continuamente
-
No es necesaria ninguna interacción del usuario
-
Sobrevive reinicios
-
-
Uso
-
Implementar con una cuenta de servicio de dominio (recomendado)
-
Usar AvailableUpdates directiva de grupo (método predeterminado)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\servidor\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot"
-
Usar el método WinCS
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\servidor\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot" -UseWinCS
-
-
Implementar con la cuenta SYSTEM
-
Usar AvailableUpdates directiva de grupo (método predeterminado)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\servidor\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports"
-
Usar wincs method.\Deploy-OrchestratorTask.ps1
-AggregationInputPath "\\servidor\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" -UseWinCS
-
Requisitos de la cuenta de servicio
-
Administración de dominio (para New-GPO, New-ADGroup, Add-ADGroupMember)
-
Acceso de lectura al recurso compartido de archivos JSON
-
Acceso de escritura a ReportBasePath
-
-
-
"Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Get-SecureBootRolloutStatus.ps1
-
Finalidad: Ver el progreso de implementación desde cualquier estación de trabajo.
-
Qué se muestra
-
Estado de la tarea programada (Ejecutándose, Lista/Detenida)
-
Número de onda actual
-
Dispositivos dirigidos frente a actualizados
-
Barra de progreso visual
-
Resumen de cubos bloqueados
-
Vincular al panel HTML más reciente
-
-
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
-
parámetros
Parámetro
¿Obligatorio?
Valor predeterminado
Descripción
ReportBasePath
Obligatorio
—
Ruta de acceso local a informes y archivos de estado
ShowLog
IEEE 802.1Q
falso
Mostrar las entradas de registro recientes del organizador
ShowBlocked
IEEE 802.1Q
falso
Mostrar detalles de cubos bloqueados
ShowWaves
IEEE 802.1Q
falso
Mostrar el historial de onda
Visitas
IEEE 802.1Q
0 (deshabilitado)
Intervalo de actualización automática en segundos. Ejemplo: -Watch 30 se actualiza cada 30 segundos.
OpenDashboard
IEEE 802.1Q
falso
Abrir el panel HTML más reciente en el explorador predeterminado
-
Salida de ejemplo
============================================================== ESTADO DE IMPLEMENTACIÓN DE ARRANQUE SEGURO 2026-02-17 19:30:00 ======================================================
Scheduled Task: Running
ROLLOUT PROGRESS ---------------------------------------- Estado: InProgress Ola actual: 5 Total dirigido: 1250 Total actualizado: 847
Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 67.8%
BLOCKED BUCKETS: 2 buckets need attention Ejecutar con -ShowBlocked para obtener más información
LATEST DASHBOARD C:\SecureBootReports\Aggregation_20260217_193000\SecureBoot_Dashboard.html __________________________________________________________________________________________
"Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Pasos de implementación E2E (Guía de referencia rápida)
En esta sección
Fase 1: Infraestructura de detección
-
Paso 1: Crear recurso compartido de colección
# On file server $sharePath = "D:\SecureBootData" New-Item directorio -ItemType -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("Domain Computers","Modify","Allow") $acl. AddAccessRule($rule) Set-Acl $sharePath $acl
-
Paso 2: Implementar GPO de detección
.\Deploy-GPO-SecureBootCollection.ps1 ` -DomainName "contoso.com" ' -OUPath "OU=Workstations,DC=contoso,DC=com" ' -CollectionSharePath "\\servidor\SecureBootData$"
-
Paso 3: Espere a que los puntos de conexión informen (24-48 horas)
# Comprobar el progreso de la colección (Get-ChildItem "\\servidor\SecureBootData$" -Filter "*.json"). Contar
volver a "Pasos de implementación E2E (Guía de referencia rápida)"
Fase 2: Lanzamiento orquestado
-
Paso 4: Comprobación de requisitos previos
-
Gpo de detección implementado (paso 2)
-
Al menos 50 puntos de conexión que informan de JSON
-
Cuenta de servicio con derechos de Administración de dominio
-
Servidor de administración con PowerShell 5.1+
-
-
Paso 5: Implementar organizador como tarea programada
.\Deploy-OrchestratorTask.ps1 ` -AggregationInputPath "\\servidor\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot"
-
Paso 6: Supervisar el progreso
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"
-
Paso 7: Ver panel
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard
-
Paso 8: Administrar cubos bloqueados
# List blocked .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
# Investigate and unblock .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Manufacturer|Modelo|BIOS"
-
Paso 9: Comprobar la finalización
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" # El estado debe mostrar "Completado"
volver a "Pasos de implementación E2E (Guía de referencia rápida)"
Files de estado
El organizador mantiene el estado en ReportBasePath\RolloutState\:
|
Archivo |
Descripción |
|
RolloutState.json |
Historial de ondas, dispositivos dirigidos, estado |
|
BlockedBuckets.json |
Cubos que necesitan investigación |
|
DeviceHistory.json |
Seguimiento de dispositivos por nombre de host |
|
Orchestrator_YYYYMMDD.log |
Registros de actividades diarias |
volver a "Pasos de implementación E2E (Guía de referencia rápida)"
Solución de problemas
En esta sección
Organizador no progresa
-
Comprobar la tarea programada
Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"
-
Comprobar registros
Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50
-
Comprobar la calidad de los datos JSON
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count
Cubos bloqueados
-
Lista bloqueada.
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
-
Investigar la accesibilidad del dispositivo.
-
Comprobar si hay problemas de firmware.
-
Desbloquear después de la investigación.
No se aplica GPO
-
Compruebe la existencia de GPO.
Get-GPO -Name "SecureBoot-Rollout-Wave*"
-
Comprobar el filtrado de seguridad.
Get-GPPermission -Name "GPO-Name" -All
-
Comprueba que el equipo está en el grupo de seguridad.
-
Aplicar el GPO en el destino.
gpupdate /force
Registro de cambios
|
Cambiar fecha |
Cambiar descripción |
|
12 de mayo de 2026 |
Anteriormente, cada archivo de script de ejemplo se publicaba como artículos individuales desde los que se copiaba y pegaba el script. A partir de las actualizaciones de Windows publicadas el 12 de mayo de 2026 y posteriores, los scripts de muestra se encuentran en la carpeta %systemroot%\SecureBoot\ExampleRolloutScripts del dispositivo. |