Compartilhar via


Função DsServerRegisterSpnA (ntdsapi.h)

A função DsServerRegisterSpn compõe dois SPNs para um serviço baseado em host. Os nomes são baseados nos nomes DNS e NetBIOS do computador local. A função modifica o atributo servicePrincipalName de uma conta especificada ou da conta associada ao thread de chamada. A função registra ou cancela o registro dos SPNs.

Um serviço baseado em host é uma instância de serviço que fornece serviços identificados com seu computador host, como diferenciados de um serviço replicável em que os clientes não têm preferência em qual computador host uma instância de serviço é executada.

Sintaxe

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

Parâmetros

[in] Operation

Especifica qual operação DsServerRegisterSpn deve executar. Esse parâmetro pode ter um dos valores a seguir.

DS_SPN_ADD_SPN_OP

Adiciona os SPNs à conta de usuário ou computador.

DS_SPN_DELETE_SPN_OP

Exclui os SPNs especificados da conta.

DS_SPN_REPLACE_SPN_OP

Remove todos os SPNs registrados atualmente na conta de usuário ou computador e os substitui pelos novos SPNs.

[in] ServiceClass

Ponteiro para uma cadeia de caracteres terminada em nulo constante especificando a classe do serviço. Esse parâmetro pode ser qualquer cadeia de caracteres exclusiva para esse serviço; O nome do protocolo (por exemplo, ldap) ou a forma de cadeia de caracteres de um GUID funcionará.

[in, optional] UserObjectDN

Ponteiro para uma cadeia de caracteres terminada em nulo constante especificando o nome diferenciado de um objeto de conta de usuário ou computador para gravar os SPNs. Se esse parâmetro for NULL, DsServerRegisterSpn gravará no objeto de conta do usuário primário ou representado associado ao thread de chamada. Se o thread estiver em execução no contexto de segurança da conta LocalSystem, a função gravará no objeto de conta do computador local.

Retornar valor

Se a função registrar com êxito um ou mais SPNs, ela retornará ERROR_SUCCESS. A modificação é executada permissivamente, para que a adição de um valor que já existe não retorne um erro.

Comentários

Os dois SPNs compostos pela função DsServerRegisterSpn têm o seguinte formato:

<ServiceClass>/<host>

Em um SPN, o computador host é o nome DNS totalmente qualificado do computador local. No outro SPN, o componente host é o nome NetBIOS do computador local.

Na maioria dos casos, o chamador DsServerRegisterSpn deve ter privilégios de administrador de domínio para modificar com êxito o atributo servicePrincipalName de um objeto de conta. A exceção a essa regra é se o thread de chamada estiver em execução na conta LocalSystem, DsServerRegisterSpn será permitido se o parâmetro UserObjectDN for NULL ou especificar o nome diferenciado da conta de computador local.

Observação

O cabeçalho ntdsapi.h define DsServerRegisterSpn como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho ntdsapi.h
Biblioteca Ntdsapi.lib
DLL Ntdsapi.dll

Confira também

Funções de gerenciamento de replicação e controlador de domínio

DsGetSpn

DsWriteAccountSpn