Exemple de guide d’automatisation du démarrage sécurisé E2E
S’applique à
Date de publication d’origine : 16 mars 2026
ID de la base de connaissances : 5084567
Dans cet article
Vue d'ensemble
Ce guide décrit le système de déploiement automatisé pour les mises à jour de certificat de base de données de démarrage sécurisé Windows à l’aide de stratégie de groupe et de vagues de déploiement progressif.
L’automatisation du déploiement de certificat de démarrage sécurisé est un système PowerShell qui déploie les mises à jour de certificat de base de données de démarrage sécurisé Windows sur des machines jointes à un domaine de manière contrôlée et graduée.
Fonctionnalités clés
|
Fonctionnalité |
Description |
|
Déploiement gradué |
1 > 2 > 4 > 8... appareils par compartiment |
|
Blocage automatique |
Les compartiments avec des appareils inaccessibles sont exclus |
|
Déploiement automatisé d’objets de stratégie de groupe |
Un script d’orchestrateur unique gère tout |
|
Exécution planifiée des tâches |
Aucune invite interactive requise |
|
Surveillance en temps réel |
Visionneuse d’état avec barre de progression |
Informations de référence sur les paramètres de Mises à jour de certificat
Contenu de cette section
Stratégie de groupe AvailableUpdatesPolicy
|
Emplacement du Registre |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot |
|
Nom |
AvailableUpdatesPolicy |
|
Valeur |
0x5944 (DWORD) |
Il s’agit de la clé contrôlée par l’objet de stratégie de groupe/ADMX qui :
-
Persistance entre les redémarrages
-
Est défini par stratégie de groupe/GPM
-
Ne provoque pas de boucles de nouvelle tentative (effacée via ClearRolloutFlags)
-
Clé correcte pour le déploiement piloté par une stratégie
Revenir à « Informations de référence sur les paramètres de Mises à jour de certificat »
WinCSFlags - Indicateurs système de configuration Windows
Les administrateurs de domaine peuvent également utiliser le système de configuration Windows (WinCS) publié avec les mises à jour du système d’exploitation Windows pour déployer les mises à jour de démarrage sécurisé sur des clients et serveurs Windows joints à un domaine. Il se compose d’un utilitaire d’interface de ligne de commande (CLI) pour interroger et appliquer des configurations de démarrage sécurisé localement à un ordinateur.
|
Nom de fonctionnalité |
Clé WinCS |
Description |
|
Feature_AllKeysAndBootMgrByWinCS |
F33E0C8E002 |
L’activation de cette clé permet l’installation des nouveaux certificats de démarrage sécurisé fournis par Microsoft suivants sur votre appareil.
|
Référence : API Windows Configuration System (WinCS) pour le démarrage sécurisé
Revenir à « Informations de référence sur les paramètres de Mises à jour de certificat »
Architecture
Phase 1 : Détection et surveillance de l’état au niveau de l’entreprise
Contenu de cette section
Scripts nécessaires pour la phase 1
Exemples de scripts de collecte de données d’inventaire de démarrage sécurisé
|
Exemple de nom de script |
Fonction |
S’exécute sur |
|
Collecte les données de status de l’appareil |
Chaque point de terminaison (via un objet de stratégie de groupe) |
|
|
Génère des rapports et des tableaux de bord |
station de travail Administration |
|
|
Automatise la création d’objets de stratégie de groupe pour la collecte de données |
Contrôleur de domaine |
Retour à « Phase 1 : Détection et surveillance de l’état au niveau de l’entreprise »
Test local
Avant de déployer via un objet de stratégie de groupe, testez le script de collecte sur un seul ordinateur pour vérifier les fonctionnalités.
-
Exécuter le script de collection localement Ouvrez une invite PowerShell avec élévation de privilèges et exécutez :
& .\Detect-SecureBootCertUpdateStatus.ps1 -OutputPath « C :\Temp\SecureBootTest »
-
Vérifier la sortie JSON
# View the collected data Get-Content « C :\Temp\SecureBootTest\*_latest.json » | ConvertFrom-Json | Format-List
Champs clés à vérifier • SecureBootEnabled : doit avoir la valeur True ou False • OverallStatus : Complete, ReadyForUpdate, NeedsData ou Error • BucketHash : compartiment d’appareils pour la correspondance des données de confiance • SecureBootTaskEnabled : affiche status de la tâche de mise à jour de démarrage sécurisé.
-
Script d’agrégation de test
# Generate reports from collected data & .\Aggregate-SecureBootCertStatus.ps1" ' -InputPath « C :\Temp\SecureBootTest » ' -OutputPath « C :\Temp\SecureBootReports » # Ouvrir le tableau de bord HTML
Start-Process "C:\Temp\SecureBootReports\SecureBoot_Dashboard_*.html"
Retour à « Phase 1 : Détection et surveillance de l’état au niveau de l’entreprise »
Déploiement d’objets de stratégie de groupe
Utilisez le script d’automatisation fourni à partir d’un contrôleur de domaine :
Section # Exécuter sur le contrôleur de domaine en tant que domaine Administration pour l’unité d’organisation interactive – Recommandé # Remplacez « Contoso.com », « Contoso » par le nom du domaine # Remplacez FILESERVER par le nom du serveur de fichiers. Le script affiche la liste des unités d’organisation sur laquelle déployer un objet de stratégie de groupe .\Deploy-GPO-SecureBootCollection.ps1 ' -DomainName « contoso.com » ' -AutoDetectOU ' -CollectionSharePath « \\FILESERVER\SecureBootLogs$ » ' -ScriptSourcePath .\Detect-SecureBootCertUpdateStatus.ps1" ' -Planifier « Daily » ' -ScheduleTime « 14:00 » ' -RandomDelayHours 4
Ce script effectue les opérations suivantes :
-
Crée un objet de stratégie de groupe avec le nom spécifié
-
Copie le script de collection vers SYSVOL pour la haute disponibilité
-
Configure le script de démarrage de l’ordinateur
-
Lie l’objet de stratégie de groupe à l’unité d’organisation cible
-
Crée éventuellement une tâche planifiée pour la collecte périodique
Le tableau suivant fournit des conseils sur la durée du délai en fonction de la taille de votre flotte.
|
Taille de la flotte |
Plage de délai |
|
1 à 10 000 appareils |
4 heures |
|
10 000 à 50 000 appareils |
8 heures |
|
Plus de 50 000 appareils |
12 à 24 heures |
Retour à « Phase 1 : Détection et surveillance de l’état au niveau de l’entreprise »
Résumé des paramètres d’objet de stratégie de groupe
|
Setting |
Emplacement |
Valeur |
|
Script de démarrage |
Scripts de configuration → ordinateur |
Detect-SecureBootCertUpdateStatus.ps1 |
|
Paramètres de script |
(identique) |
-OutputPath « \\server\share$ » |
|
Stratégie d’exécution |
Configuration de l’ordinateur → Administration modèles → PowerShell |
Autoriser la signature locale et distante |
|
Tâche planifiée |
Configuration de l’ordinateur → Préférences → Tâches planifiées |
Collection quotidienne/hebdomadaire |
Retour à « Phase 1 : Détection et surveillance de l’état au niveau de l’entreprise »
Vérification
-
Forcer la mise à jour des objets de stratégie de groupe sur Test Machine
## On a test workstation gpupdate /force # Redémarrez les machines clientes au script de démarrage, sinon il se déclenchera selon la planification suivante. Restart-Computer -Force
-
Vérifier la collecte de données
# Vérifier si les données ont été collectées (sur un serveur de fichiers ou sur n’importe quel ordinateur) Get-ChildItem « \\fileserver\SecureBootData$ » | Sort-Object LastWriteTime - Décroissant | Select-Object -10 premiers # Vérifier le contenu JSON Get-Content « \\fileserver\SecureBootData$\TESTPC_latest.json » | ConvertFrom-Json
-
Vérifier l’application d’objet de stratégie de groupe
# Vérifier que l’objet de stratégie de groupe est appliqué à l’ordinateur gpresult /r /scope :computer | Select-String « SecureBoot » s Le script enregistre également une copie locale pour la redondance : Get-ChildItem « C :\ProgramData\SecureBootCollection\ »
Retour à « Phase 1 : Détection et surveillance de l’état au niveau de l’entreprise »
Phase 2 : Scripts d’orchestration de mise à jour du certificat de démarrage sécurisé
Important : Vérifiez que la phase 1 est terminée, y compris la collecte de données sur chaque point de terminaison vers des partages de serveur distants.
Contenu de cette section
Scripts nécessaires pour la phase 2
Exemples de scripts de collecte de données d’inventaire de démarrage sécurisé
|
Exemple de nom de script |
Fonction |
S’exécute sur |
|
Collecte les données de status de l’appareil |
Chaque point de terminaison (via un objet de stratégie de groupe) |
|
|
Génère des rapports et des tableaux de bord |
station de travail Administration |
|
|
Automatise la création d’objets de stratégie de groupe pour la collecte de données |
Contrôleur de domaine |
|
|
Orchestration continue entièrement automatisée avec déploiement automatisé d’objets de stratégie de groupe pour l’installation de certificats |
station de travail Administration |
|
|
Déploie le script Orchestrator en tant que tâche planifiée pour le déploiement automatisé |
Contrôleur de domaine |
|
|
Afficher les status de déploiement du certificat de démarrage sécurisé à partir de n’importe quelle station de travail |
station de travail Administration |
|
|
Active la tâche de mise à jour de démarrage sécurisé |
Sur les points de terminaison où la tâche est désactivée (Exécuter une seule fois pour activer la tâche si désactivée) |
Retour à « Phase 2 : Scripts d’orchestration de mise à jour de certificat de démarrage sécurisé »
Start-SecureBootRolloutOrchestrator.ps1
-
But: Orchestration entièrement automatisée et continue avec déploiement automatisé d’objets de stratégie de groupe.
-
Effet
-
Appels Aggregate-SecureBootData.ps1 pour le status de l’appareil
-
Génère des vagues de déploiement à l’aide du doublement progressif
-
Crée un objet de stratégie de groupe pour le déploiement de certificats à l’aide de l’une des méthodes suivantes
-
Stratégie de groupe de démarrage sécurisé AvailableUpdatesPolicy = 0x5944 (par défaut)
-
Méthode WinCS (Parameter –UseWinCS)
-
-
Crée des groupes de sécurité AD pour le ciblage
-
Ajoute des comptes d’ordinateur aux groupes de sécurité
-
Configure le filtrage de sécurité des objets de stratégie de groupe
-
Lie l’objet de stratégie de groupe à l’unité d’organisation cible
-
Surveille les compartiments bloqués (appareils inaccessibles)
-
Se débloque automatiquement lorsque les appareils récupèrent
-
-
Utilisation
# 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
-
commandes Administration
# 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
-
les paramètres
Parameter
Valeur par défaut
Description
AggregationInputPath
Obligé
Chemin d’accès UNC aux fichiers JSON du point de terminaison
ReportBasePath
Obligé
Chemin d’accès local pour les rapports et l’état
TargetOU
Racine du domaine
Unité d’organisation pour lier des objets de stratégie de groupe
WavePrefix
SecureBoot-Rollout
Préfixe d’affectation de noms d’objet de groupe/groupe
MaxWaitHours
72
Heures avant de vérifier l’accessibilité de l’appareil
PollIntervalMinutes
1440
Minutes entre vérifications d’état
DryRun
Faux
Afficher ce qui se passerait sans modifications
Retour à « Phase 2 : Scripts d’orchestration de mise à jour de certificat de démarrage sécurisé »
Deploy-OrchestratorTask.ps1
-
But: Déploie l’orchestrateur en tant que tâche planifiée Windows.
-
Avantages
-
Aucune invite de sécurité PowerShell (ExecutionPolicy Bypass)
-
S’exécute en arrière-plan en continu
-
Aucune interaction utilisateur requise
-
Survit aux redémarrages
-
-
Utilisation
-
Déployer avec un compte de service de domaine (recommandé)
-
Utiliser availableUpdates stratégie de groupe (méthode par défaut)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath « \\server\SecureBootData$ » ' -ReportBasePath « C :\SecureBootReports » ' -ServiceAccount « DOMAINE\svc_secureboot »
-
Utiliser la méthode WinCS
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath « \\server\SecureBootData$ » ' -ReportBasePath « C :\SecureBootReports » ' -ServiceAccount « DOMAIN\svc_secureboot » -UseWinCS
-
-
Déployer avec un compte SYSTEM
-
Utiliser availableUpdates stratégie de groupe (méthode par défaut)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath « \\server\SecureBootData$ » ' -ReportBasePath « C :\SecureBootReports »
-
Utiliser winCS method.\Deploy-OrchestratorTask.ps1
-AggregationInputPath « \\server\SecureBootData$ » ' -ReportBasePath « C :\SecureBootReports » -UseWinCS
-
Conditions requises pour les comptes de service
-
Domain Administration (pour New-GPO, New-ADGroup, Add-ADGroupMember)
-
Accès en lecture au partage de fichiers JSON
-
Accès en écriture à ReportBasePath
-
-
-
Retour à « Phase 2 : Scripts d’orchestration de mise à jour de certificat de démarrage sécurisé »
Get-SecureBootRolloutStatus.ps1
-
But: Affichez la progression du déploiement à partir de n’importe quelle station de travail.
-
Ce qu’il montre
-
État de la tâche planifiée (en cours d’exécution/prêt/arrêté)
-
Numéro d’onde actuel
-
Appareils ciblés ou mis à jour
-
Barre de progression du visuel
-
Résumé des compartiments bloqués
-
Lien vers le dernier tableau de bord HTML
-
-
Utilisation
# 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
-
Exemple de sortie
============================================================== ÉTAT DU DÉMARRAGE SÉCURISÉ 17-02-2026 19:30:00 ======================================================
Scheduled Task: Running
ROLLOUT PROGRESS ---------------------------------------- État : InProgress Vague actuelle : 5 Total ciblé : 1250 Mise à jour totale : 847
Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 67.8%
BLOCKED BUCKETS: 2 buckets need attention Exécuter avec -ShowBlocked pour plus d’informations
LATEST DASHBOARD C:\SecureBootReports\Aggregation_20260217_193000\SecureBoot_Dashboard.html __________________________________________________________________________________________
Retour à « Phase 2 : Scripts d’orchestration de mise à jour de certificat de démarrage sécurisé »
Étapes de déploiement E2E (Guide de référence rapide)
Contenu de cette section
Phase 1 : Infrastructure de détection
-
Étape 1 : Créer un partage de collection
# 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(« Domain Computers »,"Modify »,"Allow ») $acl. AddAccessRule($rule) Set-Acl $sharePath $acl
-
Étape 2 : Déployer l’objet de stratégie de groupe de détection
.\Deploy-GPO-SecureBootCollection.ps1 ` -DomainName « contoso.com » ' -OUPath « OU=Workstations,DC=contoso,DC=com » ' -CollectionSharePath « \\server\SecureBootData$ »
-
Étape 3 : Attendre que les points de terminaison signalent (24 à 48 heures)
# Vérifier la progression de la collecte (Get-ChildItem « \\server\SecureBootData$ » -Filter « *.json »). Compter
Retour à « Étapes de déploiement E2E (Guide de référence rapide) »
Phase 2 : Déploiement orchestré
-
Étape 4 : Vérification des prérequis
-
Objet de stratégie de groupe de détection déployé (étape 2)
-
Au moins 50 points de terminaison signalant JSON
-
Compte de service avec des droits de Administration de domaine
-
Serveur d’administration avec PowerShell 5.1+
-
-
Étape 5 : Déployer Orchestrator en tant que tâche planifiée
.\Deploy-OrchestratorTask.ps1 ` -AggregationInputPath « \\server\SecureBootData$ » ' -ReportBasePath « C :\SecureBootReports » ' -ServiceAccount « DOMAINE\svc_secureboot »
-
Étape 6 : Surveiller la progression
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"
-
Étape 7 : Afficher le tableau de bord
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard
-
Étape 8 : Gérer les compartiments bloqués
# List blocked .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath « C :\SecureBootReports » -ListBlockedBuckets
# Investigate and unblock .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath « C :\SecureBootReports » -UnblockBucket « Manufacturer|Modèle |BIOS »
-
Étape 9 : Vérifier l’achèvement
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" # L’état doit indiquer « Terminé »
Retour à « Étapes de déploiement E2E (Guide de référence rapide) »
Files d’état
L’orchestrateur maintient l’état dans ReportBasePath\RolloutState\ :
|
Fichier |
Description |
|
RolloutState.json |
Historique des vagues, appareils ciblés, status |
|
BlockedBuckets.json |
Compartiments nécessitant une investigation |
|
DeviceHistory.json |
Suivi de l’appareil par nom d’hôte |
|
Orchestrator_YYYYMMDD.log |
Journaux d’activité quotidiens |
Retour à « Étapes de déploiement E2E (Guide de référence rapide) »
Résolution des problèmes
Contenu de cette section
L’orchestrateur ne progresse pas
-
Vérifier la tâche planifiée
Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"
-
Vérifier les journaux
Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50
-
Vérifier l’actualisation des données JSON
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count
Compartiments bloqués
-
Liste bloquée.
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
-
Examiner l’accessibilité de l’appareil.
-
Recherchez les problèmes de microprogramme.
-
Débloquer après enquête.
L’objet de stratégie de groupe ne s’applique pas
-
Vérifiez que l’objet de stratégie de groupe existe.
Get-GPO -Name "SecureBoot-Rollout-Wave*"
-
Vérifiez le filtrage de sécurité.
Get-GPPermission -Name "GPO-Name" -All
-
Vérifiez que l’ordinateur se trouve dans le groupe de sécurité.
-
Appliquez l’objet de stratégie de groupe sur la cible.
gpupdate /force