Пример руководства по безопасной загрузке E2E Automation
Применяется к
Исходная дата публикации: 16 марта 2026 г.
Идентификатор базы знаний: 5084567
В этой статье
Обзор
В этом руководстве описывается система автоматического развертывания для обновлений сертификатов базы данных безопасной загрузки Windows с использованием групповая политика и последовательного развертывания.
Автоматизация развертывания сертификатов безопасной загрузки — это система на основе PowerShell, которая развертывает обновления сертификатов базы данных безопасной загрузки Windows на компьютерах, присоединенных к домену, управляемым путем.
Основные функции
|
Функция |
Описание |
|
Выпускное развертывание |
1 > 2 > 4 > 8... устройства на контейнер |
|
Автоматическая блокировка |
Контейнеры с недоступными устройствами исключаются |
|
Автоматическое развертывание объекта групповой политики |
Сценарий с одним оркестратором обрабатывает все |
|
Запланированное выполнение задачи |
Интерактивные запросы не требуются |
|
Мониторинг в режиме реального времени |
Средство просмотра состояния с индикатором выполнения |
Справочник по параметрам Обновления сертификатов
В этом разделе
Групповая политика AvailableUpdatesPolicy
|
Расположение реестра |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot |
|
Имя |
AvailableUpdatesPolicy |
|
Значение |
0x5944 (DWORD) |
Это ключ, контролируемый объектом групповой политики или ADMX, который:
-
Сохраняется при перезагрузках
-
Задается групповая политика или MDM
-
Не вызывает повторных циклов (очищается с помощью ClearRolloutFlags)
-
Правильный ключ для развертывания на основе политики
Вернуться к разделу "Справочник по параметрам Обновления сертификатов"
WinCSFlags — флаги системы конфигурации Windows
Администраторы домена могут также использовать систему конфигурации Windows (WinCS), выпущенную с обновлениями ОС Windows, для развертывания обновлений безопасной загрузки на клиентах и серверах Windows, присоединенных к домену. Она состоит из служебной программы интерфейса командной строки (CLI) для локального запроса и применения конфигураций безопасной загрузки к компьютеру.
|
Имя компонента |
Клавиша WinCS |
Описание |
|
Feature_AllKeysAndBootMgrByWinCS |
F33E0C8E002 |
Включение этого ключа позволяет установить на устройстве следующие новые сертификаты безопасной загрузки, предоставленные Корпорацией Майкрософт.
|
Справка: API системы конфигурации Windows (WinCS) для безопасной загрузки
Вернуться к разделу "Справочник по параметрам Обновления сертификатов"
Архитектура
Этап 1. Обнаружение и мониторинг состояния на уровне предприятия
В этом разделе
Скрипты, необходимые для этапа 1
Примеры сценариев сбора данных инвентаризации безопасной загрузки
|
Имя примера скрипта |
Цель |
Выполняется в |
|
Собирает данные о состоянии устройства |
Каждая конечная точка (через объект групповой политики) |
|
|
Создает отчеты и панели мониторинга |
Рабочая станция Администратор |
|
|
Автоматизирует создание объекта групповой политики для сбора данных |
Контроллер домена |
вернуться к "Этап 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. Мониторинг обнаружения и состояния на уровне предприятия"
Развертывание объекта групповой политики
Используйте скрипт автоматизации, предоставленный контроллером домена:
# Запуск на контроллере домена как Администратор домена для интерактивного подразделения — рекомендуется # Замените "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
Примеры сценариев сбора данных инвентаризации безопасной загрузки
|
Имя примера скрипта |
Цель |
Поддерживаемые платформы |
|
Собирает данные о состоянии устройства |
Каждая конечная точка (через объект групповой политики) |
|
|
Создает отчеты и панели мониторинга |
Рабочая станция Администратор |
|
|
Автоматизирует создание объекта групповой политики для сбора данных |
Контроллер домена |
|
|
Полностью автоматизированная непрерывная оркестрация с автоматическим развертыванием объекта групповой политики для установки сертификата |
Рабочая станция Администратор |
|
|
Развертывает скрипт Orchestrator в качестве запланированной задачи для автоматического развертывания |
Контроллер домена |
|
|
Просмотр состояния развертывания сертификата безопасной загрузки с любой рабочей станции |
Рабочая станция Администратор |
|
|
Включает задачу обновления безопасной загрузки |
В конечных точках, где задача отключена (выполните только один раз, чтобы включить задачу, если она отключена) |
вернуться к "Этап 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 (краткое справочное руководство)"
Устранение неполадок
В этом разделе
Оркестратор не выполняется
-
Проверка запланированной задачи
Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"
-
Проверка журналов
Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50
-
Проверка актуальности данных JSON
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count
Заблокированные контейнеры
-
Список заблокированных.
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
-
Изучение доступности устройства.
-
Проверьте наличие проблем с встроенным ПО.
-
Разблокируйте после исследования.
Объект групповой политики не применяется
-
Убедитесь, что объект групповой политики существует.
Get-GPO -Name "SecureBoot-Rollout-Wave*"
-
Проверьте фильтрацию безопасности.
Get-GPPermission -Name "GPO-Name" -All
-
Убедитесь, что компьютер находится в группе безопасности.
-
Примените объект групповой политики к целевому объекту.
gpupdate /force