다음을 통해 공유


DsServerRegisterSpnA 함수(ntdsapi.h)

DsServerRegisterSpn 함수는 호스트 기반 서비스에 대해 두 개의 SPN을 구성합니다. 이름은 로컬 컴퓨터의 DNS 및 NetBIOS 이름을 기반으로 합니다. 함수는 지정된 계정 또는 호출 스레드와 연결된 계정의 servicePrincipalName 특성을 수정합니다. 함수는 SPN을 등록하거나 등록 취소합니다.

호스트 기반 서비스는 호스트 컴퓨터로 식별되는 서비스를 제공하는 서비스 instance, 클라이언트가 서비스를 실행할 instance 호스트 컴퓨터를 기본 설정하지 않는 복제 가능한 서비스와 구별됩니다.

구문

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

매개 변수

[in] Operation

DsServerRegisterSpn이 수행해야 하는 작업을 지정합니다. 이 매개 변수는 다음 값 중 하나를 가질 수 있습니다.

DS_SPN_ADD_SPN_OP

사용자 또는 컴퓨터 계정에 SPN을 추가합니다.

DS_SPN_DELETE_SPN_OP

계정에서 지정된 SPN을 삭제합니다.

DS_SPN_REPLACE_SPN_OP

사용자 또는 컴퓨터 계정에 현재 등록된 모든 SPN을 제거하고 새 SPN으로 바꿉니다.

[in] ServiceClass

서비스의 클래스를 지정하는 null로 끝나는 상수 문자열에 대한 포인터입니다. 이 매개 변수는 해당 서비스에 고유한 문자열일 수 있습니다. 프로토콜 이름(예: ldap) 또는 GUID의 문자열 형식이 작동합니다.

[in, optional] UserObjectDN

SPN을 쓸 사용자 또는 컴퓨터 계정 개체의 고유 이름을 지정하는 null로 끝나는 상수 문자열에 대한 포인터입니다. 이 매개 변수가 NULL인 경우 DsServerRegisterSpn 은 호출 스레드와 연결된 기본 또는 가장된 사용자의 계정 개체에 씁니다. 스레드가 LocalSystem 계정의 보안 컨텍스트에서 실행되는 경우 함수는 로컬 컴퓨터의 계정 개체에 씁니다.

반환 값

함수가 하나 이상의 SPN을 성공적으로 등록하면 ERROR_SUCCESS 반환됩니다. 수정은 허용적으로 수행되므로 이미 존재하는 값을 추가해도 오류가 반환되지 않습니다.

설명

DsServerRegisterSpn 함수로 구성된 두 SPN의 형식은 다음과 같습니다.

<ServiceClass>/<host>

한 SPN에서 호스트 컴퓨터는 로컬 컴퓨터의 정규화된 DNS 이름입니다. 다른 SPN에서 호스트 구성 요소는 로컬 컴퓨터의 NetBIOS 이름입니다.

대부분의 경우 DsServerRegisterSpn 호출자는 계정 개체의 servicePrincipalName 특성을 성공적으로 수정하려면 도메인 관리자 권한이 있어야 합니다. 이 규칙의 예외는 호출 스레드가 LocalSystem 계정에서 실행되는 경우 UserObjectDN 매개 변수가 NULL이거나 로컬 컴퓨터 계정의 고유 이름을 지정하는 경우 DsServerRegisterSpn이 허용됩니다.

참고

ntdsapi.h 헤더는 DsServerRegisterSpn을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
대상 플랫폼 Windows
헤더 ntdsapi.h
라이브러리 Ntdsapi.lib
DLL Ntdsapi.dll

추가 정보

도메인 컨트롤러 및 복제 관리 함수

DsGetSpn

DsWriteAccountSpn