Ошибка Microsoft Disk Quota на терминальной ферме
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз я вам подробно показал, как убрать тестовый режим Windows 10. Сегодня мы вновь вернемся к обсуждению работы терминальных серверов, а именно я разберу ситуацию при которой у вас при входе на RDS ферму долго висит надпись "Применение политики Microsoft Disk Quota", и в журнале событий есть ошибки и предупреждения ID 1085, ID 7016 и ID 4016. Я вам покажу из-за чего появляются данные предупреждения и как вам от них избавиться.
Описание проблемы
Есть RDS ферма построенная на операционной системе Windows Server 2012 R2. Есть два посредника подключений и 15 RDCH хостов. При входе на терминальный стол у пользователя долго висит экран с надписью:
После чего сотрудник успешно попадает на свой виртуальный стол. После обращения пользователя, стали рассматривать в чем дело. Раньше я помню, что была политика управления дисковыми квотами, но она была отключена и удалена из объектов GPO. Открыв логи операционной системы Windows, я обнаружил вот такие события и ошибки:
В журнале "Система" было предупреждение с кодом события ID 1085 (Источник GroupPolicy (Microsoft-Windows-GroupPolicy))
Так же в журнале "Журналы приложений и служб" выбрать папку "Microsoft - Windows - GroupPolicy - Operational". Там были события с кодом ID 4016 и ID 7016.
Список применимых объектов групповой политики: (Изменения обнаружены.)
Имя объекта GPO (Который является источником ошибки)
И событие 7016.
Когда вы устанавливаете или отключаете политику дисковой квоты, для атрибута gPCMachineExtensionNames объекта групповой политики устанавливается следующее значение:
[{35378EAC-683F-11D2-A89A-00C04FBBCFA2} {D02B1F72-3407-48AE-BA88-E8213C6761F1}] [{3610EDA5-77EF-11D2-8DC5-00C04FA31A66} {D02B1F72-3407-48AE-BA88-E8213C6761F1}]
Как устранить ошибки
Первое, что вы должны сделать, это удостовериться, есть или нет у вас групповая политика настраивающая дисковые квоты (Microsoft Disk Quota), если она есть, то провести диагностику применения групповой политики. В моем случае ее не было. Ранее была политика, но она была отключена и удалена.
Далее в событии 4016 вы видите, из-за какой политики вы получаете ошибку. Очень полезно будет открыть в режиме XML, там будет полезен раздел EventData.
<Data Name="CSEExtensionId">{3610EDA5-77EF-11D2-8DC5-00C04FA31A66}</Data>
<Data Name="CSEExtensionName">Microsoft Disk Quota</Data>
<Data Name="IsExtensionAsyncProcessing">false</Data>
<Data Name="IsGPOListChanged">true</Data>
<Data Name="GPOListStatusString">%%4102</Data>
<Data Name="DescriptionString">GPO-Имя</Data>
<Data Name="ApplicableGPOList"><GPO ID="{E26B087E-2CF3-40C9-8910-66E48A1E53C5}"><Name>GPO-Имя</Name></GPO></Data>
</EventData>
</Event>
Тут видно имя CSEExtensionName и его ID который нам нужно будет удалить из атрибута gPCMachineExtensionNames. В XML версии события 7016, вы можете обнаружить:
<Data Name="CSEElaspedTimeInMilliSeconds">16</Data>
<Data Name="ErrorCode">2147942402</Data>
<Data Name="CSEExtensionName">Microsoft Disk Quota</Data>
<Data Name="CSEExtensionId">{3610EDA5-77EF-11D2-8DC5-00C04FA31A66}</Data>
</EventData>
</Event>
Где код 2147942402 означает, что объект, который пытается применится не найден. В XML версии события 1085 вы по поводу кода 2147942402 увидите открытым текстом.
<Data Name="SupportInfo1">1</Data>
<Data Name="SupportInfo2">4950</Data>
<Data Name="ProcessingMode">0</Data>
<Data Name="ProcessingTimeInMilliseconds">657</Data>
<Data Name="ErrorCode">2147942402</Data>
<Data Name="ErrorDescription">Не удается найти указанный файл.</Data>
<Data Name="DCName">\\имя контроллера домена</Data>
<Data Name="ExtensionName">Microsoft Disk Quota</Data>
<Data Name="ExtensionId">{3610eda5-77ef-11d2-8dc5-00c04fa31a66}</Data>
</EventData>
</Event>
Как я и писал выше нам из параметра gPCMachineExtensionNames в политике нужно удалить значение {3610eda5-77ef-11d2-8dc5-00c04fa31a66}, которое относится к Microsoft Disk Quota.
- gPCMachineExtensionNames - в этом атрибуте перечисляются клиентские расширения GPO (CSE), необходимые клиенту для обработки параметров групповой политики компьютера
- gPCUserExtensionNames - в этом атрибуте перечисляются клиентские расширения GPO (CSE), необходимые клиенту для обработки определенных параметров групповой политики пользователя.
Что мы делаем, открываем с вами редактор атрибутов ADSIEdit. Далее вы переходите в контекст именования по умолчанию DC=Domain DN, далее CN=System, далее CN=Policies. Тут будут описаны все ваши объекты групповой политики, есть одно но, у всех имя состоит из GUID записи. Как узнать GUID политики GPO я уже рассказывал, советую посмотреть.
Заходим в свойства объекта GPO и находим атрибут gPCMachineExtensionNames. Щелкаем по нему и копируем себе в текстовый редактор его содержимое, для резервной копии. Так же советую сделать копию политики средствами оснастки управления групповыми политиками.
Напоминаю, что удаляем кусок [{3610EDA5-77EF-11D2-8DC5-00C04FA31A66}……{D02B1F72-3407-48AE-BA88-E8213C6761F1}]. После чего новый текст копируем в атрибут gPCMachineExtensionNames и сохраняем его. Где первый набор квадратных скобок - это тот особый «нулевой GUID», за которым следуют привязные GUID MMC для любых предпочтений GP, настроенных в GPO, затем каждая последующая GUID область политики объединяется в свои квадратные скобки.
[{00000000-0000-0000-0000-000000000000}{BEE07A6A-EC9F-4659-B8C9-0B1937907C83}][{35378EAC-683F-11D2-A89A-00C04FBBCFA2}{0F6B957D-509E-11D1-A7CC-0000F87571E3}{53D6AB1D-2488-11D1-A28C-00C04FB94F17}{62C1845D-C4A6-4ACB-BBB0-C895FD090385}{D02B1F72-3407-48AE-BA88-E8213C6761F1}][{3610EDA5-77EF-11D2-8DC5-00C04FA31A66}{D02B1F72-3407-48AE-BA88-E8213C6761F1}][{827D319E-6EAC-11D2-A4EA-00C04F79F83A}{803E14A0-B4FB-11D0-A0D0-00A0C90F574B}][{B087BE9D-ED37-454F-AF9C-04291E351182}{BEE07A6A-EC9F-4659-B8C9-0B1937907C83}][{B1BE8D72-6EAC-11D2-A4EA-00C04F79F83A}{53D6AB1D-2488-11D1-A28C-00C04FB94F17}]
В этом примере выше предполагается, что никакие другие области политики не были реализованы в этом локальном объекте групповой политики. Если они есть, то каждая пара GUID CSE / MMC с разделителями в квадратных скобках должна быть отсортирована в списке в алфавитном порядке, чтобы все это работало. Если эти другие области политики являются настройками GP, то GUID оснастки MMC для каждой из них должен быть включен в квадратные скобки в начале после GUID {00000000-0000-0000-0000-000000000000}. Очевидно, что Microsoft не хотела, чтобы это было взломано вручную, но, тем не менее, это возможно!
Теперь вам осталось перезагрузить сервер или обновить групповую политику в принудительном варианте, через gpupdate /force в командной строке Windows.
Дополнительные ссылки:
- https://sdmsoftware.com/group-policy-blog/tips-tricks/group-policy-preferences-in-the-local-gpo-yes/
- https://blogs.technet.microsoft.com/core/2015/01/08/event-id-1085-source-grouppolicy-windows-failed-to-apply-the-microsoft-disk-quota-settings-resolved/
С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org. Надеюсь, что вы победили свои сообщение с ошибкой "Применение политики Microsoft Disk Quota".