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


Функция DsServerRegisterSpnA (ntdsapi.h)

Функция DsServerRegisterSpn состоит из двух имен субъектов-служб для службы на основе узла. Имена основаны на DNS- и NetBIOS-именах локального компьютера. Функция изменяет атрибут servicePrincipalName указанной учетной записи или учетной записи, связанной с вызывающим потоком. Функция регистрирует или отменяет регистрацию имен субъектов-служб.

Служба на основе узла — это экземпляр службы, который предоставляет службы, определенные на своем хост-компьютере, в отличие от реплицируемой службы, где клиенты не имеют предпочтения, на каком хост-компьютере работает экземпляр службы.

Синтаксис

NTDSAPI DWORD DsServerRegisterSpnA(
  [in]           DS_SPN_WRITE_OP Operation,
  [in]           LPCSTR          ServiceClass,
  [in, optional] LPCSTR          UserObjectDN
);

Параметры

[in] Operation

Указывает, какую операцию должен выполнить DsServerRegisterSpn . Этот параметр может иметь одно из следующих значений.

DS_SPN_ADD_SPN_OP

Добавляет имена субъектов-служб в учетную запись пользователя или компьютера.

DS_SPN_DELETE_SPN_OP

Удаляет указанные имена субъектов-служб из учетной записи.

DS_SPN_REPLACE_SPN_OP

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

[in] ServiceClass

Указатель на константную строку, завершающуюся null, задающую класс службы. Этот параметр может быть любой строкой, уникальной для этой службы; будет работать либо имя протокола (например, ldap), либо строковая форма GUID.

[in, optional] UserObjectDN

Указатель на константную строку, завершающуюся значением NULL, указывающую различающееся имя объекта учетной записи пользователя или компьютера для записи имен субъектов-служб. Если этот параметр имеет значение NULL, DsServerRegisterSpn выполняет запись в объект учетной записи основного или олицетворенного пользователя, связанного с вызывающим потоком. Если поток выполняется в контексте безопасности учетной записи LocalSystem, функция выполняет запись в объект учетной записи локального компьютера.

Возвращаемое значение

Если функция успешно регистрирует одно или несколько имен субъектов-служб, она возвращает ERROR_SUCCESS. Изменение выполняется разрешительно, чтобы при добавлении уже существующего значения не возвращалось сообщение об ошибке.

Комментарии

Два имени субъекта-службы, состоящие из функции DsServerRegisterSpn , имеют следующий формат:

<ServiceClass>/<host>

В одном имени субъекта-службы главный компьютер — это полное DNS-имя локального компьютера. В другом имени субъекта-службы компонент узла — это NetBIOS-имя локального компьютера.

В большинстве случаев вызывающий объект DsServerRegisterSpn должен иметь права администратора домена для успешного изменения атрибута servicePrincipalName объекта учетной записи. Исключением из этого правила является то, что если вызывающий поток выполняется под учетной записью LocalSystem, dsServerRegisterSpn разрешен, если параметр UserObjectDN имеет значение NULL или указывает различающееся имя учетной записи локального компьютера.

Примечание

Заголовок ntdsapi.h определяет DsServerRegisterSpn в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header ntdsapi.h
Библиотека Ntdsapi.lib
DLL Ntdsapi.dll

См. также раздел

Контроллер домена и функции управления репликацией

DsGetSpn

DsWriteAccountSpn