Функция 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 |