Поделиться через


Создание корневого ключа служб распространения ключей (KDS)

В этой статье для ИТ-специалистов описывается, как создать корневой ключ службы распространения ключей Майкрософт (kdssvc.dll) на контроллере домена с помощью Windows PowerShell для генерации паролей групповых управляемых учетных записей службы в Windows Server 2012 или более поздней версии.

Контроллеры домена (DC) требуют корневого ключа для начала создания паролей gMSA. Контроллеры домена будут ждать до 10 часов с момента их создания, чтобы позволить всем контроллерам домена завершить репликацию Active Directory, прежде чем разрешить создание управляемой групповой учетной записи службы (gMSA). Ожидание до 10 часов является мерой безопасности, чтобы предотвратить создание паролей до того, как все КД в среде смогут отвечать на запросы gMSA. Попытка использовать gMSA преждевременно может завершиться ошибкой в случае, когда узел gMSA пытается получить пароль, поскольку ключ, возможно, не был реплицирован ко всем контроллерам домена. Ошибки извлечения паролей gMSA также могут возникать при использовании контроллеров домена с ограниченными расписаниями репликации или при возникновении проблемы с репликацией.

Примечание.

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

Минимальным требованием для выполнения этой процедуры является членство в группе Администраторы домена, Администраторы предприятия или другой эквивалентной группе. Дополнительные сведения об использовании подходящих учетных записей и участия в группах см. в разделе Локальные группы и группы домена по умолчанию.

Примечание.

Для выполнения команд Windows PowerShell, которые используются для администрирования групповых управляемых учетных записей служб, необходима 64-разрядная архитектура.

Создание корневого ключа KDS с помощью командлета Add-KdsRootKey

  1. На контроллере домена Windows Server 2012 или более поздней версии запустите Windows PowerShell на панели задач.

  2. В командной строке модуля Active Directory для Windows PowerShell введите следующие команды и нажмите клавишу ВВОД:

    Add-KdsRootKey -ЭффективныйНемедленно

    Совет

    Параметр "Эффективное время" можно использовать, чтобы предоставить время для распространения ключей на все контроллеры домена перед их использованием. Использование Add-KdsRootKey -EffectiveImmediately добавит корневой ключ к целевому контроллеру домена, который будет использоваться службой KDS немедленно. Однако другие контроллеры домена не смогут использовать корневой ключ до тех пор, пока репликация не будет выполнена успешно.

Корневые ключи KDS хранятся в Active Directory в контейнере CN=Master Root Keys,CN=Group Key Distribution Service,CN=Services,CN=Configuration,DC=<forest name>;. У них есть атрибут msKds-DomainID, который связывается с учетной записью компьютера контроллера домена, создавшего объект. Если этот контроллер домена понижен и удален из домена, значение будет ссылаться на могилу учетной записи компьютера. Вы можете игнорировать сломанное значение, так как оно используется только для того, чтобы помочь администратору отслеживать объект при его создании. Вы также можете изменить значение атрибута и указать его на объект компьютера другого контроллера домена в лесу.

В тестовых средах с одним контроллером домена можно создать корневой ключ KDS и установить начальную дату в прошлом, выполнив указанные ниже действия. Это позволит избежать периода ожидания для генерирования ключа. Убедитесь, что событие 4004 было зарегистрировано в журнале событий KDS.

Создание корневого ключа KDS в тестовой среде для незамедлительного использования

  1. На контроллере домена Windows Server 2012 или более поздней версии запустите Windows PowerShell на панели задач.

  2. В командной строке модуля Active Directory для Windows PowerShell введите следующие команды и нажмите клавишу ВВОД:

    $a=Дата-Дата

    $b=$a.AddHours(-10)

    Add-KdsRootKey -EffectiveTime $b

    Либо введите одну команду:

    Add-KdsRootKey -EffectiveTime ((get-date).addhours(-10))

См. также

Групповое управление учетными записями служб