Применяется к
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

Исходная дата публикации: 16 марта 2026 г.

Идентификатор базы знаний: 5084567

В этой статье

Обзор

В этом руководстве описывается система автоматического развертывания для обновлений сертификатов базы данных безопасной загрузки Windows с использованием групповая политика и последовательного развертывания.

Автоматизация развертывания сертификатов безопасной загрузки — это система на основе PowerShell, которая развертывает обновления сертификатов базы данных безопасной загрузки Windows на компьютерах, присоединенных к домену, управляемым путем.

в начало

Основные функции

Функция

Описание

Выпускное развертывание

1 > 2 > 4 > 8... устройства на контейнер

Автоматическая блокировка

Контейнеры с недоступными устройствами исключаются

Автоматическое развертывание объекта групповой политики

Сценарий с одним оркестратором обрабатывает все

Запланированное выполнение задачи

Интерактивные запросы не требуются

Мониторинг в режиме реального времени

Средство просмотра состояния с индикатором выполнения

в начало 

Справочник по параметрам Обновления сертификатов

В этом разделе

Групповая политика AvailableUpdatesPolicy

Расположение реестра

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot

Имя

AvailableUpdatesPolicy

Значение

0x5944 (DWORD)

Это ключ, контролируемый объектом групповой политики или ADMX, который:

  • Сохраняется при перезагрузках

  • Задается групповая политика или MDM

  • Не вызывает повторных циклов (очищается с помощью ClearRolloutFlags)

  • Правильный ключ для развертывания на основе политики

Справка. Метод групповая политика объектов (GPO) безопасной загрузки для устройств Windows с управляемыми ИТ-клиентами обновлениями

Вернуться к разделу "Справочник по параметрам Обновления сертификатов" 

WinCSFlags — флаги системы конфигурации Windows

Администраторы домена могут также использовать систему конфигурации Windows (WinCS), выпущенную с обновлениями ОС Windows, для развертывания обновлений безопасной загрузки на клиентах и серверах Windows, присоединенных к домену. Она состоит из служебной программы интерфейса командной строки (CLI) для локального запроса и применения конфигураций безопасной загрузки к компьютеру.

Имя компонента

Клавиша WinCS

Описание

Feature_AllKeysAndBootMgrByWinCS

F33E0C8E002

Включение этого ключа позволяет установить на устройстве следующие новые сертификаты безопасной загрузки, предоставленные Корпорацией Майкрософт.

  • Microsoft Corporation KEK 2K CA 2023

  • Windows UEFI CA 2023

  • Microsoft UEFI CA 2023

  • Microsoft Option UEFI ROM CA 2023

Справка: API системы конфигурации Windows (WinCS) для безопасной загрузки

Вернуться к разделу "Справочник по параметрам Обновления сертификатов"

в начало

Архитектура

Рабочий процесс архитектуры

в начало 

Этап 1. Обнаружение и мониторинг состояния на уровне предприятия

В этом разделе

Скрипты, необходимые для этапа 1

Примеры сценариев сбора данных инвентаризации безопасной загрузки

Имя примера скрипта

Цель 

Выполняется в 

Пример скрипта Detect-SecureBootCertUpdateStatus.ps1 

Собирает данные о состоянии устройства 

Каждая конечная точка (через объект групповой политики) 

Пример скрипта Aggregate-SecureBootData.ps1 

Создает отчеты и панели мониторинга 

Рабочая станция Администратор 

Пример скрипта Deploy-GPO-SecureBootCollection.ps1

Автоматизирует создание объекта групповой политики для сбора данных 

Контроллер домена 

Панель мониторинга состояния сертификата безопасной загрузки

вернуться к "Этап 1. Мониторинг обнаружения и состояния на уровне предприятия"

Локальное тестирование

Перед развертыванием с помощью объекта групповой политики протестируйте сценарий сбора на одном компьютере, чтобы проверить функциональность. 

  • Локальный запуск скрипта коллекции Откройте командную строку PowerShell с повышенными привилегиями и выполните следующую команду:

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

  • Проверка выходных данных JSON

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

    Ключевые поля для проверки  SecureBootEnabled — должно иметь значение True или False.OverallStatus — Complete, ReadyForUpdate, NeedsData или Error BucketHash — контейнер устройств для сопоставления данных с достоверностью SecureBootTaskEnabled — отображает состояние задачи обновления безопасной загрузки.

  • Тестовый скрипт агрегирования

    # Generate reports from collected data  & .\Aggregate-SecureBootCertStatus.ps1" '     -InputPath "C:\Temp\SecureBootTest" '     -OutputPath "C:\Temp\SecureBootReports" # Открытие панели мониторинга HTML   

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

вернуться к "Этап 1. Мониторинг обнаружения и состояния на уровне предприятия" 

Настройка общей папки сети

  • Создание сетевого ресурса На файловом сервере создайте выделенную общую папку для сбора данных:

    # Run on file server as Administrator  $SharePath = "D:\SecureBootCollection" $ShareName = "SecureBootData$" # Создать папку New-Item -ItemType Directory -Path $SharePath -Force # Создание скрытой общей папки ($ суффикс скрывается из списка просмотра) New-SmbShare -Name $ShareName -Path $SharePath '     -Description "Коллекция состояния сертификатов безопасной загрузки"     -FullAccess "Администраторы домена" '     -ChangeAccess "Пользователи, прошедшие проверку подлинности"    

  • Настройка разрешений NTFS

    # Get current ACL  $Acl = Get-Acl $SharePath # Разрешить пользователям, прошедшим проверку подлинности, записывать файлы $WriteRule = New-Object System.Security.AccessControl.FileSystemAccessRule(     "Пользователи, прошедшие проверку подлинности",     "CreateFiles,AppendData,WriteAttributes,WriteExtendedAttributes",     "ContainerInherit,ObjectInherit",     "Нет",     "Разрешить" ) $Acl.AddAccessRule($WriteRule) # Разрешить администраторам домена полный доступ (для агрегирования) $AdminRule = New-Object System.Security.AccessControl.FileSystemAccessRule(     "Администраторы домена",     "FullControl",     "ContainerInherit,ObjectInherit",     "Нет",     "Разрешить" ) $Acl.AddAccessRule($AdminRule) # Применение разрешений Set-Acl -Path $SharePath -AclObject $Acl       

  • Проверка общего доступа

    # Test from a domain-joined workstation  Test-Path "\\fileserver\SecureBootData$" Значение # должно возвращать: True

вернуться к "Этап 1. Мониторинг обнаружения и состояния на уровне предприятия" 

Развертывание объекта групповой политики

Используйте скрипт автоматизации, предоставленный контроллером домена:

# Запуск на контроллере домена как Администратор домена для интерактивного подразделения — рекомендуется # Замените "Contoso.com", "Contoso" именем домена # Замените FILESERVER именем файлового сервера.  Скрипт показывает список подразделений для развертывания объекта групповой политики .\Deploy-GPO-SecureBootCollection.ps1 '     -DomainName "contoso.com" '     -AutoDetectOU '     -CollectionSharePath "\\FILESERVER\SecureBootLogs$" '     -ScriptSourcePath .\Detect-SecureBootCertUpdateStatus.ps1" '     -Schedule "Daily" '     -ScheduleTime "14:00" '     -RandomDelayHours 4 

Этот скрипт выполнит следующие действия:

  • Создает объект групповой политики с указанным именем.

  • Копирует скрипт сбора в SYSVOL для обеспечения высокого уровня доступности

  • Настройка скрипта запуска компьютера

  • Связывает объект групповой политики с целевым подразделением

  • При необходимости создает запланированную задачу для периодической коллекции

В следующей таблице приведены рекомендации по продолжительности задержки в зависимости от размера вашего парка.

Размер парка 

Диапазон задержки 

1–10 тыс. устройств 

4 часа 

Устройства от 10 до 50 000 

8 часов 

Более 50 тыс. устройств 

12–24 часа

вернуться к "Этап 1. Мониторинг обнаружения и состояния на уровне предприятия" 

Сводка по параметрам объекта групповой политики

Параметр 

Местоположение 

Значение 

Скрипт запуска 

Скрипты → конфигурации компьютера 

Detect-SecureBootCertUpdateStatus.ps1 

Параметры скрипта 

(то же самое) 

-OutputPath "\\server\share$" 

Политика выполнения 

Шаблоны конфигурации компьютера → Администратор → PowerShell 

Разрешить локальную и удаленную подпись 

Запланированная задача 

Настройки конфигурации → компьютера → запланированных задач 

Ежедневная или еженедельная коллекция

вернуться к "Этап 1. Мониторинг обнаружения и состояния на уровне предприятия" 

Проверка

  • Принудительное обновление объекта групповой политики в Test Machine

    ## On a test workstation  gpupdate /force # Перезагрузите клиентские компьютеры для запуска скрипта, иначе он запустится по следующему расписанию.  Restart-Computer -Force

  • Проверка сбора данных

    # Проверьте, были ли данные собраны (на файловом сервере или с любого компьютера) Get-ChildItem "\\fileserver\SecureBootData$" |       Sort-Object LastWriteTime -убывание |       Select-Object -Первые 10   # Проверка содержимого JSON Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-Json 

  • Проверка приложения объекта групповой политики

    # Проверка применения объекта групповой политики к компьютеру gpresult /r /область:computer | Select-String "SecureBoot" s Скрипт также сохраняет локальную копию для обеспечения избыточности: Get-ChildItem "C:\ProgramData\SecureBootCollection\" 

вернуться к "Этап 1. Мониторинг обнаружения и состояния на уровне предприятия"

в начало 

Этап 2. Сценарии оркестрации обновления сертификатов безопасной загрузки

Важно: Убедитесь, что этап 1 завершен, включая сбор данных на каждой конечной точке в общих папках удаленного сервера.

В этом разделе

Скрипты, необходимые для этапа 2

Примеры сценариев сбора данных инвентаризации безопасной загрузки

Имя примера скрипта

Цель 

Поддерживаемые платформы 

Пример скрипта Detect-SecureBootCertUpdateStatus.ps1  

Собирает данные о состоянии устройства 

Каждая конечная точка (через объект групповой политики) 

Пример скрипта Aggregate-SecureBootData.ps1

Создает отчеты и панели мониторинга 

Рабочая станция Администратор 

Пример скрипта Deploy-GPO-SecureBootCollection.ps1

Автоматизирует создание объекта групповой политики для сбора данных 

Контроллер домена 

Пример скрипта Start-SecureBootRolloutOrchestrator.ps1

Полностью автоматизированная непрерывная оркестрация с автоматическим развертыванием объекта групповой политики для установки сертификата

Рабочая станция Администратор 

Пример скрипта Deploy-OrchestratorTask.ps1

Развертывает скрипт Orchestrator в качестве запланированной задачи для автоматического развертывания

Контроллер домена

Пример скрипта Get-SecureBootRolloutStatus.ps1

Просмотр состояния развертывания сертификата безопасной загрузки с любой рабочей станции

Рабочая станция Администратор

Пример скрипта Enable-SecureBootUpdateTask.ps1

 Включает задачу обновления безопасной загрузки

В конечных точках, где задача отключена (выполните только один раз, чтобы включить задачу, если она отключена)

вернуться к "Этап 2. Сценарии оркестрации обновления сертификатов безопасной загрузки" 

Start-SecureBootRolloutOrchestrator.ps1

  • Цель: Полностью автоматизированная непрерывная оркестрация с автоматическим развертыванием объекта групповой политики.

  • Результат

    • Вызовы Aggregate-SecureBootData.ps1 для состояния устройства

    • Создает волны развертывания с помощью прогрессивного удвоения

    • Создает объект групповой политики для развертывания сертификатов с помощью одного из следующих методов.

      • Групповая политика безопасной загрузки AvailableUpdatesPolicy = 0x5944 (по умолчанию)

      • Метод WinCS (Параметр –UseWinCS)

    • Создает группы безопасности AD для нацеливания

    • Добавление учетных записей компьютеров в группы безопасности

    • Настройка фильтрации безопасности объектов групповой политики

    • Связывает объект групповой политики с целевым подразделением

    • Мониторы для заблокированных контейнеров (недоступные устройства)

    • Автоматическое разблокирование при восстановлении устройств

  • Использование

    # 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

  • команды Администратор

    # 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

  • Параметры

    Параметр

    По умолчанию

    Описание

    AggregationInputPath

    Обязательные

    UNC-путь к JSON-файлам конечной точки

    ReportBasePath

    Обязательные

    Локальный путь для отчетов и состояния

    TargetOU

    Корневой каталог домена

    Подразделение для связывания объектов групповой политики

    WavePrefix

    SecureBoot-Rollout

    Префикс именования объектов групповой политики или групп

    MaxWaitHours

    72

    За несколько часов до проверки доступности устройства

    PollIntervalMinutes

    1440

    Минуты между проверки состояния

    DryRun

    False

    Показать, что произойдет без изменений

вернуться к "Этап 2. Сценарии оркестрации обновления сертификатов безопасной загрузки"  

Deploy-OrchestratorTask.ps1

  • Цель: Развертывает оркестратор в качестве запланированной задачи Windows.

  • Преимущества

    • Нет запросов безопасности PowerShell (обход ExecutionPolicy)

    • Выполняется в фоновом режиме непрерывно

    • Взаимодействие с пользователем не требуется

    • Выживает перезагрузки

  • Использование

    • Развертывание с помощью учетной записи службы домена (рекомендуется)

      • Использование групповая политика AvailableUpdates (метод по умолчанию)

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

      • Использование метода WinCS

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

    • Развертывание с помощью учетной записи SYSTEM

      • Использование групповая политика AvailableUpdates (метод по умолчанию)

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

      • Использование method.\Deploy-OrchestratorTask.ps1 WinCS

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

      • Требования к учетной записи службы

        • Администратор домена (для New-GPO, New-ADGroup, Add-ADGroupMember)

        • Доступ на чтение к общей папке JSON

        • Доступ на запись в ReportBasePath

вернуться к "Этап 2. Сценарии оркестрации обновления сертификатов безопасной загрузки"  

Get-SecureBootRolloutStatus.ps1

  • Цель: Просмотр хода развертывания с любой рабочей станции.

  • Что он показывает

    • Состояние запланированной задачи (выполняется,готов/остановлено)

    • Номер текущей волны

    • Целевые и обновленные устройства

    • Визуальный индикатор выполнения

    • Сводка по заблокированным контейнерам

    • Ссылка на последнюю панель мониторинга HTML

  • Использование

    # 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

  • Пример выходных данных

    ==============================================================    СОСТОЯНИЕ РАЗВЕРТЫВАНИЯ БЕЗОПАСНОЙ ЗАГРУЗКИ    2026-02-17 19:30:00 ======================================================

    Scheduled Task: Running

    ROLLOUT PROGRESS ---------------------------------------- Состояние: InProgress Текущая волна: 5 Всего целевых: 1250 Всего обновлено: 847

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

    BLOCKED BUCKETS: 2 buckets need attention   Выполните команду -ShowBlocked для получения сведений

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

вернуться к "Этап 2. Сценарии оркестрации обновления сертификатов безопасной загрузки"

в начало 

Этапы развертывания E2E (краткое справочное руководство)

В этом разделе

Этап 1. Инфраструктура обнаружения

  • Шаг 1. Создание общей папки коллекции

    # On file server $sharePath = "D:\SecureBootData" New-Item -ItemType Directory -Path $sharePath -Force New-SmbShare -Name "SecureBootData$" -Path $sharePath -FullAccess "Администраторы домена" -ChangeAccess "Доменные компьютеры"

    # Set NTFS permissions $acl = Get-Acl $sharePath $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Компьютеры домена","Изменить","Разрешить") $acl. AddAccessRule($rule) Set-Acl $sharePath $acl

  • Шаг 2. Развертывание объекта групповой политики обнаружения

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

  • Шаг 3. Ожидание отчетов о конечных точках (24–48 часов)

    # Проверка хода выполнения сбора (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json"). Рассчитывать

вернуться к "Этапы развертывания E2E (краткое справочное руководство)" 

Этап 2. Оркестрованное развертывание

  • Шаг 4. Проверка необходимых компонентов

    • Развернутый объект групповой политики обнаружения (шаг 2)

    • По крайней мере 50+ конечных точек, сообщая JSON

    • Учетная запись службы с правами Администратор домена

    • Сервер управления с PowerShell 5.1 и более поздних версий

  • Шаг 5. Развертывание Orchestrator в качестве запланированной задачи

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

  • Шаг 6. Мониторинг хода выполнения

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

  • Шаг 7. Просмотр панели мониторинга

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

  • Шаг 8. Управление заблокированными контейнерами

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

    # Investigate and unblock .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Manufacturer|Модель|BIOS"

  • Шаг 9. Проверка завершения

    .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" # Состояние должно отображаться "Завершено"

вернуться к "Этапы развертывания E2E (краткое справочное руководство)"  

Files состояния

Оркестратор поддерживает состояние в ReportBasePath\RolloutState\:

Файл

Описание

RolloutState.json

Журнал волн, целевые устройства, состояние

BlockedBuckets.json

Контейнеры, требующие исследования

DeviceHistory.json

Отслеживание устройств по имени узла

Orchestrator_YYYYMMDD.log

Журналы ежедневных действий

вернуться к "Этапы развертывания E2E (краткое справочное руководство)" 

в начало 

Устранение неполадок

В этом разделе

Оркестратор не выполняется

  1. Проверка запланированной задачи

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

  2. Проверка журналов

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

  3. Проверка актуальности данных JSON

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

вернуться к разделу "Устранение неполадок" 

Заблокированные контейнеры

  1. Список заблокированных.

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

  2. Изучение доступности устройства.

  3. Проверьте наличие проблем с встроенным ПО.

  4. Разблокируйте после исследования.

вернуться к разделу "Устранение неполадок"  

Объект групповой политики не применяется

  1. Убедитесь, что объект групповой политики существует.

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

  2. Проверьте фильтрацию безопасности.

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

  3. Убедитесь, что компьютер находится в группе безопасности.

  4. Примените объект групповой политики к целевому объекту.

    gpupdate /force

вернуться к разделу "Устранение неполадок"

в начало 

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.