Синий экран 0xc00002e2, решаем за минуту

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов В прошлый раз мы с вами рассматривали менеджер пакетов Winget, который позволяет с помощью PowerShell много чего устанавливать. В сегодняшней статье я буду бороться с пресловутым синим экраном 0xc00002e2, который я поймал на одном из контроллеров домена. Что ж не приятно, но не смертельно, давайте выходить из этой ситуации.
❌Описание ситуации с BSOD 0xc00002e2 на контроллере домена
И так есть Active Directory состоящий из леса и трех доменов, в одном из доменов есть четыре контроллера домена. Один из них в какой-то момент перестал отвечать в системе мониторинга. Это была виртуальная машина на базе Vmware ESXI. Подключившись к консольному подключению я увидел вот такую картину:
Stop code: 0xc00002e2
После перезагрузки сервер опять выпадал в BSOD, и далее по циклу. В логах вы можете потом обнаружить, если доберетесь:
STOP c000002e2 Directory Services could not start because of the following error:
A device attached to the system is not functioning.
Error Status: 0xc0000001
Please shutdown this system and reboot into Directory Services Restore Mode, check the event log for more detailed information.
Как исправить синий экран 0xc00002e2
Надеюсь, что у вас это не последний контроллер домена в сети, поэтому самый простой способ это:
👀Читайте так же устранение ошибки активации 0xC004F074
- Восстановить из резервной копии данный контроллер, при условии, что его копия не старше дня, чтобы не было проблем с репликацией
- Полностью удалить недоступный контроллер домена и заменить его на новый. Если на сервере были роли FSMO, то их сначала нужно захватить и перенести.
- Но если решились восстанавливать то давайте приступать, может, что и получиться.
Когда вы раза три увидите синий экран с кодом 0xc00002e2, то сервер загрузиться в режиме восстановления WinPE, его при желании можно вызвать клавишей F8 при загрузке. У любого контроллера домена есть специальный режим восстановления службы каталогов (Directory Services Repair Mode - DSRM).
На экране "Choose an option" выберите пункт "Troubleshoot".
Далее выбираем пункт "Startup Settings".
Перезагружаем сервер.
Далее при загрузке найдите пункт "Directory Services Repair Mode"
Начнется загрузка DSRM, по сути вы увидите привычную загрузку Windows, в которую вы сможете войти под локальным администратором DSRM, он задается при настройке.
Если вы не помните пароль от Администратора DSRM, то придется его сбрасывать, например через MsDART или любой другой загрузочный диск
Попав в систему вы первым делом должны запустить командную строку от имени администратора, и далее нам понадобиться одна из самых важных утилит в Active Directory ntdsutil. Вводим команды:
- Ntdsutil (Запускаем саму утилиту)
- activate instance ntds (Подключаемся к активной БД Active Directory)
- Files (Делаем запрос к файлам. где лежит БД)
- Info (Смотрим все файлы и их расположение)
(по умолчанию это будет директория C:\Windows\NTDS)
В моем случае это нестандартный каталог, у меня все лежит в папке C:\ADDS\NTDS\. Тут же вы можете посмотреть размер файла БД NTDS.dit.
Теперь попробуйте проверить целостность базы данных, для этого вводим:
integrity
У меня выскочила ошибка:
Error: Access to source database 'C:\ADDS\NTDS\ntds.dit' failed with Jet error - 1206. Operation terminated with error - 1206 (Jet_errDatabaseCorrupted, Non database file or corrupted db) after 0.0 seconds
Или еще распространенная ошибка:
Could not initialize the Jet engine: database is inconsistent.
Failed to open DIT for AD DS/LDS instance NTDS. Error -2147418113
Попробуем восстановить целостность Базы данных Active Directory, для этого есть всем известная утилита esentutl, она очень часто используется при работе с почтовым сервером Exchange. Перед любыми работами всегда нужно сделать резервную копию данных, для этого:
mkdir c:\ntds_backup - Создаем папку для резервных копий
xcopy c:\ADDS\NTDS\*.* c:\ntds_backup - Копируем содержимое c:\ADDS\NTDS\ в c:\ntds_backupПроверим целостность файла ntds.dit:
esentutl /g c:\ADDS\NTDS\ntds.dit
Утилита вам сообщит. что с базой не все хорошо и она повреждена:
The database is not up-to-date. This operation may find that this database is corrupted because data from the log files has not yet to be placed in the database. To ensure the database is up-to-date please use the Recovery operation. Integrity check completed. Database is CORRUPTED.
После чего начнется процесс восстановления, а может и не начаться и вы легко можете опять получить ошибку Jet error - 1206.
Первый процесс закончен, попробуем исправить найденные ошибки, для этого выполните команду:
esentutl /p c:\ADDS\NTDS\\ntds.dit
Если все хорошо, то вы должны получить сообщение "Operation completed successfully in xx seconds".
Обязательно еще раз проверьте в целостности базы данных, выполните:
esentutl /g
должно появиться сообщение:
Integrity test successful. It is recommended you to run semantic database analysis to ensure semantic database consistence as well.
теперь выполним семантический анализ, для этого:
ntdsutil
activate instance ntds
semantic database analysis
go
При обнаружении семантических ошибок примените ключ fixup:
go fixup

Произведем сжатие БД ntds.dit:
activate instance ntds
files
compact to c:\ADDS\NTDS\Temp
Перезапишем оригинальный файл ntds.dit:
copy c:\ADDS\NTDS\Temp\ntds.dit c:\ADDS\NTDS\ntds.dit
Удалите все лог файлы из каталога NTDS:
Del c:\ADDS\NTDS\*.log
Перезагрузка
Проверка прав на файлы NTDS
Еще очень важно проверить не сброшены ли были чем-то права на файлы из папки NTDS. Для этого в командной строке введите предварительно попав нужный каталог:
cacls ntds.dit
Должны быть права NT AUTHORITY\SYSTEM: (ID) F и BUILTIN\Administrators: (id) f
NTDS. dit /s
Должны быть D:AI(A;ID;FA;;;SY)(A;ID;FA;;;BA)
cacls edb.chk
Должно быть NT AUTHORITY\SYSTEM: (ID) F и BUILTIN\Administrators: (id) f
Cacls edb. chk/s en
Должно быть D:AI (A; ID; FA;;; SY) (A; ID; FA;;; BA)
Надеюсь, что было полезно. С вам был Иван Сёмин, автор и создатель данного проекта.


















