В Windows Server 2016 есть не особенно известная функция «Сбор данных о настройках и загрузочных событиях». Она позволяет удаленно собирать информацию о событиях, произошедших в процессе загрузки системы. Такая возможность особенно полезна при поиске «плавающих» проблем во время загрузки ОС. В статье я расскажу, как можно удобно собирать эти недостающие сведения. Ниже приводятся типы событий, информацию о которых можно узнать с помощью функции «Сбор данных о настройках и загрузочных событиях»: После сбора всех необходимых данных о событиях на сервере-сборщике для их анализа можно использовать хорошо знакомые инструменты – Event Viewer, Wevutil или PowerShell. Далее мы рассмотрим, как настроить сервер и удаленные узлы для сбора данных. Роль сборщика может выполнять исключительно Windows Server 2016 – это может быть либо сервер с возможностями рабочего стола, либо Server Core. Ниже приведена таблица с интернет-ресурса TechNet, в которой показаны поддерживаемые виртуализованные типы ОС для сборщиков и целевых компьютеров: На серверы, с которых вы хотите собирать данные, должна быть установлена или Windows Server 2016, или Windows 10. Кроме того, в качестве целевого узла может выступать компьютер с Nano Server. Также можно собирать данные из окон системы Windows Server 2016, даже если они работают как виртуальная машина на компьютерах с Windows Server 2012 R2. Для получения и отображения ETL-событий с целевых компьютеров необходимо настроить узел сборщика. Первое – необходимо подключить службу сбора событий, используя один из нижеуказанных методов. При помощи DISM: Командой PowerShell: Также можно установить этот компонент с помощью Server Manager GUI: 
Установка службы с помощью диспетчера сервера. После установки службы сбора событий вы получите доступ к новой службе – Boot Event Collector, запущенной под учетной записью Network Service. 
Свойства Boot Event Collector. Существует также инструмент командной строки bevtcol.exe, который можно запустить с некоторыми полезными параметрами. Он поможет протестировать ваши настройки перед установкой полного сервиса. 
Параметры bevtcol.exe. Например, можно запустить bevtcol.exe – config NewConfig.xml – checkOnly только для проверки правильности файла конфигурации. И потом выйти без запуска самого процесса. Затем вам нужно проверить, были ли созданы файлы конфигурации по умолчанию на узле сборщика – это поможет вам создать свой первый файл конфигурации компьютера-сборщика. В папке C:\ProgramData\Microsoft\BootEventCollector\Config, вы увидите три XML файла конфигурации, созданные сразу после установки сервиса. 
Файлы конфигурации XML. Active.xm содержит аналогичную Empty.xml конфигурацию. Каждая новая конфигурация должна быть сохранена в этом файле: 
*XML-файл с пример*ом конфигурации. Если взглянуть на структуру папки С:\ProgramData\Microsoft\BootEventCollector, можно увидеть, что разные папки созданы для разных целей: 
ETL and log file folders. Теперь мы можем создать наш первый файл конфигурации. Создайте новый XML-файл в каталоге %SystemDrive%\ProgramData\Microsoft\BootEventCollector\Config и скопируйте содержимое конфигурации, указанной ниже, в .xml-файл. В файле конфигурации есть несколько важных моментов. Этот параметр на самом деле является своего рода защитой, поскольку события ETW были разработаны для их интерпретации компьютерами, на которых они и были сгенерированы.  Но как только вы хотите переместить события на другой компьютер, может возникнуть какое-либо несоответствие. Преобразование в формат XML делает события доступными для более широкого спектра целевых узлов. Единственным недостатком является то, что преобразование в XML также нагружает узел-сборщик. Вы можете указать несколько целевых компьютеров, добавив дополнительные target-узлы:  После того, как вы закончите с файлом конфигурации, сохраните его и настройте целевой узел. Чтобы настроить целевые компьютеры для отправки ETW-событий, необходимо активировать передачу событий. Вы можете активировать ее локально с помощью команды bcdedit или удаленно с помощью команды PowerShell Remote и Enable-SbecBcd. В моей лаборатории у меня есть доступ к моим целевым компьютерам, поэтому я буду использовать bcdedit: Где: 
Активация передачи событий через команду bcdedit. Я настроил ключи шифрования. Вы можете проверить конфигурацию с помощью следующей команды bcdedit: 
Проверка конфигурации события BCD. Теперь я могу вернуться к моему серверу и применить новый файл конфигурации, который я создал ранее, с указанными ключами. Set-SbecActiveConfig cmdlet нам в этом поможет: 
Применение файла конфигурации на компьютере-сборщике. 
Получение принятой конфигурации. И наконец последний шаг – настройка целевых компьютеров для отправки ETW-событий. На сервере выполните следующую команду:  
Настройка целевого компьютера для отправки ETW-событий. На сервере файл конфигурации active.xml обновился с моими настройками. 
Обновленный файл active.xml. Также был создан новый log-статус: 
Обновленный log-файл. Кроме того, создается новый ETL-файл, который уже может собирать информацию о настройках и загрузочных событиях с целевого компьютера (Server01). После перезапуска одного из ваших серверов, в нем появится информация: 
Собранные ETL-файлы. Теперь можно открыть собранные ETL-файлы в инструменте просмотра событий Windows: 
События, собранные после первой перезагрузки целевого компьютера.