Определить режим восстановления службы каталогов в коде - PullRequest
1 голос
/ 08 марта 2011

На контроллере домена Windows, как я могу проверить из кода, который я запускаю в «Режиме восстановления служб каталогов»?

Мне нужно сделать это на Java, C или C ++, но приветствуются другие примеры кода.

1 Ответ

0 голосов
/ 09 марта 2011

Вызов функции Win API GetSystemMetrics (SM_CLEANBOOT) . Он дает результат типа int, который затем можно интерпретировать следующим образом:

  • 0 = Работа в обычном режиме
  • 1 = Работа в безопасном режиме
  • 2 = Работа в безопасном режиме с сетью
  • 3 = Работа в режиме восстановления служб каталогов

Альтернативой является проверка реестра по адресу:

HKLM \ SYSTEM \ CurrentControlSet \ Control \ SafeBoot \ Вариант \ OptionValue

При загрузке в безопасном режиме этот раздел реестра (который не существует при нормальной загрузке) будет содержать значение DWORD, соответствующее вышеуказанным значениям.

Если значение параметра равно 1, то только службы и драйверы, указанные в

HKLM \ SYSTEM \ CurrentControlSet \ Control \ SafeBoot \ Minimal

будет загружено. Аналогично, если значение равно 2, то только службы и драйверы, указанные в

HKLM \ SYSTEM \ CurrentControlSet \ Control \ SafeBoot \ Network

будет загружено

...