Compartilhar via


Criando um usuário

Para criar um usuário nos Serviços de Domínio Active Directory, crie um objeto de usuário no contêiner de domínio do domínio onde você deseja colocar o usuário. Os usuários podem ser criados na raiz do domínio, em uma unidade organizacional ou em um contêiner.

Ao criar um objeto de usuário, você também deve definir os atributos, listados na tabela a seguir, para definir o objeto como um usuário legal reconhecido pelos Serviços de Domínio Active Directory e pelo sistema de Segurança do Windows.

Atributo Descrição
Cn Especifica o nome do objeto de usuário no diretório. Esse será o nome distinto relativo (RDN) do objeto.
sAMAccountName Especifica uma cadeia de caracteres que é o nome usado para oferecer suporte a clientes e servidores de uma versão anterior do Windows. O sAMAccountName deve ter menos de 20 caracteres para oferecer suporte a clientes de uma versão anterior do Windows.
O sAMAccountName deve ser exclusivo entre todos os objetos de entidade de segurança dentro do domínio. Você deve executar uma consulta no domínio para verificar se o sAMAccountName é exclusivo dentro do domínio.
sAMAccountName é um atributo opcional. O servidor criará um valor sAMAccountName aleatório se nenhum for especificado.

Você também pode definir outros atributos. Os atributos de usuário a seguir serão definidos com valores padrão se você não defini-los explicitamente no momento da criação.

Atributo Descrição
accountExpira Especifica quando a conta expirará. O padrão é TIMEQ_FOREVER, o que indica que a conta nunca expirará.
nTSecurityDescriptor Um descritor de segurança é criado com base em regras específicas. Para obter mais informações, consulte Como os descritores de segurança são definidos em novos objetos de diretório.
objectCategory Especifica a categoria do usuário. O padrão é "Pessoa".
name Especifica o nome de usuário. O padrão é o valor definido para cn.
pwdLastSet Especifica quando o usuário definiu a senha pela última vez. O padrão é zero, o que indica que o usuário deve alterar a senha no próximo logon.
userAccountControl Contém valores que determinam vários recursos de logon e conta para o usuário.
Por padrão, os seguintes sinalizadores são definidos:
  • UF_ACCOUNTDISABLE - A conta está desativada.
  • UF_PASSWD_NOTREQD - Nenhuma senha é necessária.
  • UF_NORMAL_ACCOUNT - Tipo de conta padrão que representa um usuário típico.
membroDe Especifica o(s) grupo(s) do(s) qual(is) o usuário é membro direto. O padrão é "Usuários do domínio".

Um usuário é criado vinculando-se ao contêiner desejado e, em seguida, usando um dos seguintes métodos. Os atributos cn e sAMAccountName devem ser definidos antes que o usuário seja confirmado no servidor.

Método Descrição
IADsContainer.Create O atributo cn é obtido do parâmetro bstrRelativeName . O novo usuário deve ser confirmado chamando IADs.SetInfo ou o objeto não será criado. Para obter mais informações, consulte Código de exemplo para criar um usuário.
IDirectoryObject::CreateDSObject O atributo cn é retirado do parâmetro pszRDNName . O novo usuário é confirmado quando CreateDSObject é chamado. Para obter mais informações, consulte Código de exemplo para criar um usuário.
DirectoryEntries.Add O atributo cn é retirado do parâmetro name . O novo objeto de usuário deve ser confirmado chamando DirectoryEntry.CommitChanges ou o objeto não será criado. Para obter mais informações, consulte Adicionando objetos de diretório.

O novo usuário deve ser confirmado no servidor antes que quaisquer atributos diferentes de cn e sAMAccountName possam ser modificados. Isso ocorre porque a conta de usuário não existe de fato até que o usuário seja confirmado. Se um atributo for recuperado ou modificado para um objeto que não existe no servidor, ocorrerá um erro. Isso inclui chamar o método IADsUser.SetPassword . Por exemplo, a seguinte sequência seria seguida ao criar um usuário com IADsContainer.Create:

  1. Chame IADsContainer.Create para criar o usuário no cache local com o cn especificado.
  2. Defina o atributo sAMAccountName para o valor desejado com o método IADs.Put.
  3. Agora modifique outros atributos, como userAccountControl. Essa restrição também se aplica às propriedades ADSI, como IADsUser.AccountDisabled, e métodos como IADsUser.SetPassword.
  4. Chame IADs.SetInfo para confirmar o novo usuário no servidor.

Quando uma nova conta de usuário é criada, ela é desabilitada por padrão. A conta deve ser habilitada manualmente ou programaticamente. Para habilitar programaticamente uma conta de usuário, remova o sinalizador ADS_UF_ACCOUNTDISABLE do atributo userAccountControl .

Quando uma nova conta de usuário é criada, o atributo userAccountControl da conta tem automaticamente o sinalizador UF_PASSWD_NOTREQD definido, o que indica que nenhuma senha é necessária para a conta. Se as diretivas de segurança do domínio em que a conta é criada exigirem uma senha para todas as contas de usuário, o sinalizador de UF_PASSWD_NOTREQD deverá ser removido do atributo userAccountControl da conta.

Código de exemplo para criar um usuário