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


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

Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016

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

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

Примечание.

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

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

Примечание.

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

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

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

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

    Add-KdsRootKey -EffectiveImmediately

    Совет

    Для предоставления контроллерам доменов достаточного времени для получения ключей перед их использованием можно использовать параметр "Срок действия". Использование 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. Введите следующие команды в командную строку Windows PowerShell и нажмите клавишу ВВОД:

    $a=Get-Date

    $b=$a.AddHours(-10)

    Add-KdsRootKey -EffectiveTime $b

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

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

См. также

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