Моя проблема заключается в том, что групповая политика не применяется при новой загрузке клиента. Сразу после загрузки клиент публикует сообщение об ошибке в журнале событий с источником «GroupPolicy (Microsoft-Windows-GroupPolicy)» и идентификатором события 1058: «Обработка групповой политики завершилась неудачей. [...]». На вкладке Сведения код ошибки равен 50, что означает ERROR_NOT_SUPPORTED. Это не просто косметическая проблема: политики действительно не применяются должным образом: например, подключенные сетевые диски отсутствуют. Через некоторое время выполнение «gpupdate» работает, и политики применяются нормально: отображаются подключенные сетевые диски.
Простейший сценарий, в котором мне удалось воспроизвести проблему: недавно созданный домен на недавно установленной Windows Server 2012R2, клиент - это недавно установленная 64-разрядная машина с Windows 10. Домен состоит только из одного контроллера домена и не имеет никаких отношений с другими доменами.
Поскольку в сообщении об ошибке говорится, что Windows не может прочитать файл .GPT из общей папки домена Sysvol, я попытался получить доступ к этому файлу из командной строки. И действительно, когда я открываю командную строку сразу после загрузки, я получаю следующее:
C:\Users\username>dir \\domain.example.com\sysvol
The request is not supported.
Подождав минуту или две, выполнение той же команды выдаст список каталогов. Запуск gpupdate на этом этапе будет работать нормально.
Я установил для параметра групповой политики «Всегда ждать сеть при запуске компьютера и входе в систему» значение «Включено», и я знаю, что эта политика применяется: в том же объекте политики указывается параметр реестра, и когда я проверяю реестр на клиенте указанная настройка есть.
Другие факторы, которые могут иметь значение:
- NTLM ограничен в домене, но это, похоже, не имеет значения: даже после его включения, обновления политик и перезагрузки всех компьютеров симптомы остаются прежними.
- Не имеет значения, настроен ли сервер с использованием DHCP или со статической конфигурацией.
- DNS-сервер для домена не поддерживает динамические обновления. Необходимые записи были добавлены вручную (из C: \ Windows \ System32 \ config \ netlogon.dns)
- Гибернация отключена на клиенте (используется
powercfg /h off
), поэтому каждая загрузка является полной загрузкой, а не быстрой загрузкой - Время ожидания обработки политики запуска политики установлено на 120 секунд.
- Подключение к DC работает нормально. Пинги будут работать. Выключение клиента, отключение моей учетной записи в AD, включение клиента приведет к тому, что клиент не будет входить в систему: он сразу же заметит, что учетная запись отключена.
- Помимо этой проблемы, я не замечаю ничего необычного.
Кажется, это больше проблема SMB, чем проблема групповой политики. Обнаружение соединения на стороне сервера показывает кое-что интересное: при первом выполнении команды dir \\domain.example.com\sysvol
в Microsoft Message Analyzer на контроллере домена отображается следующее:
- Клиент устанавливает TCP-соединение с портом 445 контроллера домена, и ComNegotiation успешно выполняется (DialectRevision: 0x02FF).
- Сразу после этого переговоры успешно выполнены. DialectRevision является 0x0302.
- Сразу после этого клиент закрывает TCP-соединение с TCP RST (??)
Каждый раз, когда я выполняю команду и получаю ошибку, выполняются шаги 2 и 3.
Когда команда начинает работать, выполняются шаги 1 и 2, но вместо того, чтобы клиент отправил TCP RST, выполняется SessionSetup, затем TreeConnect, а затем происходит много (на первый взгляд, нормального) болтовни SMB.
Таким образом, похоже, что клиент не будет правильно общаться SMB с DC в течение одной или двух минут после загрузки, и это приводит к сбою обработки групповой политики.
Кто-нибудь знает, как я могу отладить и решить эту проблему?