DsServerRegisterSpnA-Funktion (ntdsapi.h)

Die DsServerRegisterSpn-Funktion erstellt zwei SPNs für einen hostbasierten Dienst. Die Namen basieren auf den DNS- und NetBIOS-Namen des lokalen Computers. Die Funktion ändert das servicePrincipalName-Attribut eines angegebenen Kontos oder des Kontos, das dem aufrufenden Thread zugeordnet ist. Die Funktion registriert oder hebt die Registrierung der SPNs auf.

Ein hostbasierter Dienst ist ein Dienst instance, der Dienste bereitstellt, die mit seinem Hostcomputer identifiziert werden. Dies unterscheidet sich von einem replizierbaren Dienst, bei dem Clients nicht bevorzugt haben, auf welchem Hostcomputer ein Dienst ausgeführt instance.

Syntax

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

Parameter

[in] Operation

Gibt an, welcher Vorgang dsServerRegisterSpn ausgeführt werden soll. Dieser Parameter kann einen der folgenden Werte aufweisen.

DS_SPN_ADD_SPN_OP

Fügt die SPNs dem Benutzer- oder Computerkonto hinzu.

DS_SPN_DELETE_SPN_OP

Löscht die angegebenen SPNs aus dem Konto.

DS_SPN_REPLACE_SPN_OP

Entfernt alle SPNs, die derzeit für das Benutzer- oder Computerkonto registriert sind, und ersetzt sie durch die neuen SPNs.

[in] ServiceClass

Zeiger auf eine konstante NULL-endende Zeichenfolge, die die Klasse des Diensts angibt. Dieser Parameter kann eine beliebige Zeichenfolge sein, die für diesen Dienst eindeutig ist. entweder der Protokollname (z. B. ldap) oder die Zeichenfolgenform einer GUID funktioniert.

[in, optional] UserObjectDN

Zeiger auf eine konstante NULL-endende Zeichenfolge, die den distinguished Name eines Benutzer- oder Computerkontoobjekts angibt, in das die SPNs geschrieben werden sollen. Wenn dieser Parameter NULL ist, schreibt DsServerRegisterSpn in das Kontoobjekt des primären oder imitierten Benutzers, der dem aufrufenden Thread zugeordnet ist. Wenn der Thread im Sicherheitskontext des LocalSystem-Kontos ausgeführt wird, schreibt die Funktion in das Kontoobjekt des lokalen Computers.

Rückgabewert

Wenn die Funktion einen oder mehrere SPNs erfolgreich registriert, gibt sie ERROR_SUCCESS zurück. Änderungen werden freizügig ausgeführt, sodass das Hinzufügen eines bereits vorhandenen Werts keinen Fehler zurückgibt.

Hinweise

Die beiden VON der DsServerRegisterSpn-Funktion zusammengesetzten SPNs haben das folgende Format:

<ServiceClass>/<host>

In einem SPN ist der Hostcomputer der vollqualifizierte DNS-Name des lokalen Computers. Im anderen SPN ist die Hostkomponente der NetBIOS-Name des lokalen Computers.

In den meisten Fällen muss der DsServerRegisterSpn-Aufrufer über Domänenadministratorberechtigungen verfügen, um das servicePrincipalName-Attribut eines Kontoobjekts erfolgreich ändern zu können. Die Ausnahme von dieser Regel ist, wenn der aufrufende Thread unter dem LocalSystem-Konto ausgeführt wird. DsServerRegisterSpn ist zulässig, wenn der UserObjectDN-Parameterentweder NULL ist oder den distinguished Name des lokalen Computerkontos angibt.

Hinweis

Der ntdsapi.h-Header definiert DsServerRegisterSpn als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile ntdsapi.h
Bibliothek Ntdsapi.lib
DLL Ntdsapi.dll

Weitere Informationen

Domänencontroller- und Replikationsverwaltungsfunktionen

DsGetSpn

DsWriteAccountSpn