Se aplică la
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 publicare inițială: 16 martie 2026

ID KB: 5084567

În acest articol

Prezentare generală

Acest ghid descrie sistemul de implementare automată pentru actualizările certificatelor Windows Secure Boot DB care utilizează Politică de grup și lansări progresive.

Automatizarea lansării certificatului de bootare securizat este un sistem bazat pe PowerShell care implementează actualizări ale certificatului Windows Secure Boot DB pe mașinile legate la domeniu într-o manieră controlată, graduală.

înapoi sus

Caracteristici cheie

Caracteristică

Descriere

Lansare graduală

1 > 2 > 4 > 8... dispozitive per bucket

Blocare automată

Bucketurile cu dispozitive inaccesibile sunt excluse

Implementare automată GPO

Scriptul orchestrator unic gestionează totul

Executare activitate planificată

Nu sunt necesare solicitări interactive

Monitorizare în timp real

Vizualizator de stare cu bara de progres

înapoi sus 

Referință setări Actualizări certificate

În această secțiune

AvailableUpdatesPolicy Politica de grup

Locație registry

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot

Nume

AvailableUpdatesPolicy

Valoare

0x5944 (DWORD)

Aceasta este cheia controlată de GPO/ADMX care:

  • Persistă între reporniri

  • Este setat de Politică de grup / MDM

  • Nu provoacă reîncercarea buclelor (debifate prin ClearRolloutFlags)

  • Este cheia corectă pentru implementarea bazată pe politică

Referință: metoda Politică de grup Objects (GPO) de Bootare securizată pentru dispozitive Windows cu actualizări gestionate de IT

înapoi la "Referință setări Actualizări certificate" 

WinCSFlags - semnalizări ale sistemului de configurare Windows

Ca alternativă, administratorii de domeniu pot utiliza Sistemul de configurare Windows (WinCS) lansat cu actualizările sistemului de operare Windows pentru a implementa actualizările bootării securizate pe toți clienții și serverele Windows asociate la domeniu. Aceasta constă într-un utilitar de interfață linie de comandă (CLI) pentru a interoga și a aplica local configurații secure Boot la un computer.

Nume caracteristică

Cheie WinCS

Descriere

Feature_AllKeysAndBootMgrByWinCS

F33E0C8E002

Activarea acestei chei permite instalarea următoarelor certificate secure boot noi furnizate de Microsoft pe dispozitivul dvs.

  • Microsoft Corporation KEK 2K CA 2023

  • Windows UEFI CA 2023

  • Microsoft UEFI CA 2023

  • Microsoft Option UEFI ROM CA 2023

Referință: API-uri Windows Configuration System (WinCS) pentru bootare sigură

înapoi la "Referință setări Actualizări certificate"

înapoi sus

Arhitectură

Flux de lucru Arhitectură

înapoi sus 

Faza 1: Detectarea și monitorizarea stării la nivel de întreprindere

În această secțiune

Scripturi necesare pentru faza 1

Exemple de scripturi Secure Boot Inventory Data Collection

Nume script eșantion

Scop 

Rulează pe 

Exemplu de script Detect-SecureBootCertUpdateStatus.ps1 

Colectează datele de stare ale dispozitivului 

Fiecare punct final (prin GPO) 

Exemplu de script Aggregate-SecureBootData.ps1 

Generează rapoarte și tablouri de bord 

stație de lucru Admin 

Exemplu de script Deploy-GPO-SecureBootCollection.ps1

Automatizează crearea GPO pentru colectarea datelor 

Controler de domeniu 

Tablou de bord cu starea certificatului de bootare securizat

înapoi la "Faza 1: detectarea și monitorizarea stării la nivel de întreprindere"

Testare locală

Înainte de a implementa prin GPO, testați scriptul de colecție pe un singur computer pentru a verifica funcționalitatea. 

  • Rularea locală a scriptului de colecție Deschideți o solicitare PowerShell cu drepturi sporite și executați:

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

  • Verificare ieșire JSON

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

    Câmpuri cheie de verificat  SecureBootEnabled - trebuie să fie Adevărat sau Fals OverallStatus - Complet, ReadyForUpdate, NeedsData sau Error BucketHash - bucket de dispozitiv pentru potrivirea datelor de încredere • SecureBootTaskEnabled - arată starea activității secure boot update.

  • Testare script de agregare

    # Generate reports from collected data  & .\Aggregate-SecureBootCertStatus.ps1" '     -InputPath "C:\Temp\SecureBootTest" '     -OutputPath "C:\Temp\SecureBootReports" # Deschideți tabloul de bord HTML   

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

înapoi la "Faza 1: detectarea și monitorizarea stării la nivel de întreprindere" 

Configurare partajare rețea

  • Crearea partajării de rețea Pe serverul de fișiere, creați o partajare dedicată pentru colectarea datelor:

    # Run on file server as Administrator  $SharePath = "D:\SecureBootCollection" $ShareName = "SecureBootData$" # Creare folder New-Item -ItemType Directory -Path $SharePath -Force # Creați o partajare ascunsă (sufixul$ ascunde din lista de navigare) New-SmbShare -Name $ShareName -Path $SharePath '     -Description "Secure Boot Certificate Status Collection" '     -FullAccess "Administratori de domeniu" '     -ChangeAccess "Utilizatori autentificați"    

  • Configurarea permisiunilor NTFS

    # Get current ACL  $Acl = Get-Acl $SharePath # Permiteți utilizatorilor autentificați să scrie fișiere $WriteRule = New-Object System.Security.AccessControl.FileSystemAccessRule(     "Utilizatori autentificați",     "CreateFiles,AppendData,WriteAttributes,WriteExtendedAttributes",     "ContainerInherit,ObjectInherit",     "Fără",     "Se permite" ) $Acl.AddAccessRule($WriteRule) # Permiteți controlul complet al administratorilor de domeniu (pentru agregare) $AdminRule = New-Object System.Security.AccessControl.FileSystemAccessRule(     "Administratori de domeniu",     "FullControl",     "ContainerInherit,ObjectInherit",     "Fără",     "Se permite" ) $Acl.AddAccessRule($AdminRule) # Aplicați permisiuni Set-Acl -Path $SharePath -AclObject $Acl       

  • Verificarea accesului la partajare

    # Test from a domain-joined workstation  Test-Path "\\fileserver\SecureBootData$" # Ar trebui să returneze: True

înapoi la "Faza 1: detectarea și monitorizarea stării la nivel de întreprindere" 

Implementare GPO

Utilizați scriptul de automatizare furnizat de un controler de domeniu:

# Rulați pe controlerul de domeniu ca domeniu Admin pentru secțiunea OU interactivă - Recomandat # Înlocuiți "Contoso.com", "Contoso" cu numele domeniului # Înlocuiți FILESERVER cu numele serverului de fișiere.  Scriptul afișează lista de OU pe care se implementează GPO .\Deploy-GPO-SecureBootCollection.ps1 '     -DomainName "contoso.com" '     -AutoDetectOU '     -CollectionSharePath "\\FILESERVER\SecureBootLogs$" '     -ScriptSourcePath ".\Detect-SecureBootCertUpdateStatus.ps1" '     -Program "Zilnic" '     -Ora programării "14:00" '     -RandomDelayHours 4 

Acest script va efectua următoarele:

  • Creează GPO nou cu numele specificat

  • Copiază scriptul de colecție în SYSVOL pentru disponibilitate ridicată

  • Configurează scriptul de pornire a computerului

  • Leagă GPO la OU țintă

  • Opțional, creează activitatea planificată pentru colecția periodică

Următorul tabel oferă instrucțiuni privind durata întârzierii, în funcție de dimensiunea flotei dvs.

Dimensiunea flotei 

Interval de întârziere 

Dispozitive 1-10K 

4 ore 

Dispozitive 10K-50K 

8 ore 

Peste 50.000 de dispozitive 

12-24 de ore

înapoi la "Faza 1: detectarea și monitorizarea stării la nivel de întreprindere" 

Rezumat setări GPO

Setare 

Locație 

Valoare 

Script la pornire 

Scripturi → de configurare computer 

Detect-SecureBootCertUpdateStatus.ps1 

Parametri script 

(identic) 

-OutputPath "\\server\share$" 

Politică de executare 

Șabloane de configurare a computerului → Admin → PowerShell 

Se permite semnătura locală și semnată la distanță 

Activitate planificată 

Preferințele de configurare a computerului → → activitățile programate 

Colecție zilnică/săptămânală

înapoi la "Faza 1: detectarea și monitorizarea stării la nivel de întreprindere" 

Verificare

  • Force GPO Update on Test Machine

    ## On a test workstation  gpupdate /force # Reporniți mașinile client pentru a porni script-ul sau se va declanșa la următorul program.  Restart-Computer - Forțare

  • Verificare colectare date

    # Verificați dacă datele au fost colectate (pe serverul de fișiere sau de pe orice computer) Get-ChildItem "\\fileserver\SecureBootData$" |       Sort-Object LastWriteTime -Descendent |       Select-Object -Primul 10   # Verificarea conținutului JSON Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-Json 

  • Verificare aplicație GPO

    # Verificați dacă GPO se aplică la computer gpresult /r /scope:computer | Select-String "SecureBoot" S Scriptul salvează și o copie locală pentru redundanță: Get-ChildItem "C:\ProgramData\SecureBootCollection\" 

înapoi la "Faza 1: detectarea și monitorizarea stării la nivel de întreprindere"

înapoi sus 

Faza 2: Scripturi secure Boot Certificate Update Orchestration

Important: Asigurați-vă că Faza1 este finalizată, inclusiv colectarea datelor de la fiecare punct final către partajările de servere la distanță.

În această secțiune

Scripturi necesare pentru Faza 2

Exemple de scripturi Secure Boot Inventory Data Collection

Exemplu de nume script

Scop 

Rulează pe 

Exemplu de script Detect-SecureBootCertUpdateStatus.ps1  

Colectează datele de stare ale dispozitivului 

Fiecare punct final (prin GPO) 

Exemplu de script Aggregate-SecureBootData.ps1

Generează rapoarte și tablouri de bord 

stație de lucru Admin 

Exemplu de script Deploy-GPO-SecureBootCollection.ps1

Automatizează crearea GPO pentru colectarea datelor 

Controler de domeniu 

Exemplu de script Start-SecureBootRolloutOrchestrator.ps1

Orchestrare complet automatizată, continuă cu implementarea automată GPO pentru instalarea certificatelor

stație de lucru Admin 

Exemplu de script Deploy-OrchestratorTask.ps1

Implementează scriptul Orchestrator ca activitate planificată pentru implementarea automată

Controler de domeniu

Exemplu de script Get-SecureBootRolloutStatus.ps1

Vizualizați starea de lansare a certificatului de bootare securizat de pe orice stație de lucru

stație de lucru Admin

Exemplu de script Enable-SecureBootUpdateTask.ps1

 Activează activitatea secure boot update

La Punctele de sfârșit în care activitatea este dezactivată (Rulați o singură dată pentru a activa activitatea, dacă este dezactivată)

înapoi la "Faza 2: Secure Boot Certificate Update Orchestration Scripts" 

Start-SecureBootRolloutOrchestrator.ps1

  • Scop: Orchestrare complet automatizată, continuă, cu implementarea automată GPO.

  • Ce face

    • Apeluri Aggregate-SecureBootData.ps1 pentru starea dispozitivului

    • Generează unde de lansare utilizând dublarea progresivă

    • Creează GPO pentru implementarea certificatelor utilizând una dintre următoarele metode

      • Politica de grup pentru bootare securizată AvailableUpdatesPolicy = 0x5944 (implicit)

      • Metoda WinCS (Parametru –UseWinCS)

    • Creează grupuri de securitate AD pentru direcționare

    • Adaugă conturi de computer la grupurile de securitate

    • Configurează filtrarea de securitate GPO

    • Leagă GPO la OU țintă

    • Monitoare pentru bucketuri blocate (dispozitive inaccesibile)

    • Se deblochează automat atunci când dispozitivele se recuperează

  • Utilizare

    # 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

  • comenzi Admin

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

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

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

  • Parametrii

    Parametru

    Valoare Implicită

    Descriere

    AggregationInputPath

    Obligatoriu

    Calea UNC către fișierele JSON ale punctului final

    ReportBasePath

    Obligatoriu

    Cale locală pentru rapoarte și stare

    TintaOU

    Rădăcină domeniu

    OU pentru legarea GPO-urilor

    WavePrefix

    SecureBoot-Rollout

    Prefix de denumire GPO/grup

    MaxWaitHours

    72

    Ore înainte de a verifica accesibilitatea dispozitivului

    SondajIntervalMinutes

    1440

    Minute între verificările de stare

    DryRun

    False

    Afișați ce s-ar întâmpla fără modificări

înapoi la "Faza 2: Secure Boot Certificate Update Orchestration Scripts"  

Deploy-OrchestratorTask.ps1

  • Scop: Implementează orchestratorul ca activitate programată Windows.

  • Avantaje

    • Fără solicitări de securitate PowerShell (Ocolire ExecutionPolicy)

    • Rulează continuu în fundal

    • Nu este necesară interacțiunea utilizatorului

    • Supraviețuiește repornirii

  • Utilizare

    • Implementare cu contul serviciului de domeniu (recomandat)

      • Utilizare availableUpdates Politică de grup (metodă implicită)

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

      • Utilizarea metodei WinCS

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

    • Implementare cu contul SYSTEM

      • Utilizare availableUpdates Politică de grup (metodă implicită)

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

      • Utilizarea WinCS method.\Deploy-OrchestratorTask.ps1

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

      • Cerințe pentru contul de serviciu

        • Admin de domeniu (pentru New-GPO, New-ADGroup, Add-ADGroupMember)

        • Citirea accesului la partajarea fișierelor JSON

        • Acces scriere la ReportBasePath

înapoi la "Faza 2: Secure Boot Certificate Update Orchestration Scripts"  

Get-SecureBootRolloutStatus.ps1

  • Scop: Vizualizați progresul lansării de pe orice stație de lucru.

  • Ce se afișează

    • Stare activitate planificată (În rulare/Gata/Oprit)

    • Număr val curent

    • Dispozitive țintite versus actualizate

    • Bara de progres vizuală

    • Rezumat bucketuri blocate

    • Link la cel mai recent tablou de bord HTML

  • Utilizare

    # 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

  • Eșantion ieșire

    ==============================================================    STARE LANSARE BOOTARE SECURIZATĂ    2026-02-17 19:30:00 ======================================================

    Scheduled Task: Running

    ROLLOUT PROGRESS ---------------------------------------- Stare: InProgress Val curent: 5 Total țintă: 1250 Total actualizat: 847

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

    BLOCKED BUCKETS: 2 buckets need attention   Rulați cu -ShowBlocked pentru detalii

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

înapoi la "Faza 2: Secure Boot Certificate Update Orchestration Scripts"

înapoi sus 

Pașii de implementare E2E (Ghid de referințe rapide)

În această secțiune

Faza 1: Infrastructura de detectare

  • Pasul 1: Creați o partajare de colecție

    # 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

  • Pasul 2: Implementarea detectării GPO

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

  • Pasul 3: Așteptați ca punctele finale să raporteze (24-48 de ore)

    # Verificați progresul colecției (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json"). Conta

înapoi la "Pașii de implementare E2E (Ghid de referințe rapide)" 

Faza 2: Lansare orchestrată

  • Pasul 4: Verificare cerințe preliminare

    • Detectarea GPO implementat (Pasul 2)

    • Cel puțin 50+ puncte finale care raportează JSON

    • Cont de serviciu cu drepturi de Admin de domeniu

    • Server de gestionare cu PowerShell 5.1+

  • Pasul 5: Implementarea Orchestratorului ca activitate planificată

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

  • Pasul 6: Monitorizarea progresului

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

  • Pasul 7: Vizualizare tablou de bord

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

  • Pasul 8: Gestionarea bucketurilor blocate

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

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

  • Pasul 9: Verificați finalizarea

    .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" # Starea ar trebui să afișeze "Terminat"

înapoi la "Pașii de implementare E2E (Ghid de referințe rapide)"  

Files de stare

Orchestratorul păstrează starea în ReportBasePath\RolloutState\:

Fișier

Descriere

RolloutState.json

Istoricul valurilor, dispozitivele țintă, starea

BlockedBuckets.json

Bucketuri care necesită investigație

DeviceHistory.json

Urmărirea dispozitivelor după numele gazdei

Orchestrator_YYYYMMDD.log

Jurnale de activitate zilnică

înapoi la "Pașii de implementare E2E (Ghid de referințe rapide)" 

înapoi sus 

Depanare

În această secțiune

Orchestrator nu progresează

  1. Verificați activitatea planificată

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

  2. Verificarea jurnalelor

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

  3. Verificarea prospețimii datelor JSON

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

înapoi la "Depanare" 

Bucketuri blocate

  1. Listă blocată.

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

  2. Investigați accesibilitatea dispozitivului.

  3. Verificați dacă există probleme de firmware.

  4. Deblocați după investigație.

înapoi la "Depanare"  

GPO nu se aplică

  1. Verificați dacă există GPO.

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

  2. Verificați filtrarea securității.

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

  3. Verificați dacă computerul este într-un grup de securitate.

  4. Aplicați GPO-ul la țintă.

    gpupdate /force

înapoi la "Depanare"

înapoi sus 

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.