Use os sinalizadores UserAccountControl para manipular as propriedades da conta de usuário

Este artigo descreve informações sobre como usar o atributo UserAccountControl para manipular as propriedades da conta de usuário.

Aplica-se a: Windows Server 2012 R2, Windows Server 2016, Windows Server 2019, Windows Server 2022
Número original do KB: 305144

Resumo

Quando abrir as propriedades de uma conta de usuário, clique na guia Conta e, em seguida, marque ou desmarque as caixas de seleção na caixa de diálogo Opções de conta, valores numéricos são atribuídos ao atributo UserAccountControl. O valor atribuído ao atributo informa ao Windows quais opções foram habilitadas.

Para visualizar as contas do usuário, clique em Iniciar, aponte para Programas, Ferramentas administrativas e clique em Usuários e computadores do Active Directory.

Lista de sinalizadores de propriedade

Você pode exibir e editar esses atributos usando a ferramenta Ldp.exe ou o snap-in Adsiedit.msc.

A tabela a seguir lista os possíveis sinalizadores que você pode atribuir. Você não pode definir alguns dos valores em um objeto de usuário ou computador porque esses valores podem ser definidos ou redefinidos apenas pelo serviço de diretório. Ldp.exe mostra os valores em hexadecimal. Adsiedit.msc exibe os valores em decimal. Os sinalizadores são cumulativos. Para desabilitar a conta de um usuário, defina o atributo UserAccountControl como 0x0202 (0x002 + 0x0200). Em decimal, é 514 (2 + 512).

Observação

Você pode editar diretamente o Active Directory no Ldp.exe Adsiedit.msc. Somente administradores experientes devem usar essas ferramentas para editar o Active Directory. Ambas as ferramentas estão disponíveis depois que você instala as ferramentas de suporte da mídia de instalação original do Windows.

Sinalizador de propriedade Valor em hexadecimal Valor em decimal
Script 0x0001 1
ACCOUNTDISABLE 0x0002 2
HOMEDIR_REQUIRED 0x0008 8
LOCKOUT 0x0010 16
PASSWD_NOTREQD 0x0020 32
PASSWD_CANT_CHANGE

Você não pode atribuir essa permissão modificando diretamente o atributo UserAccountControl. Para obter informações sobre como definir a permissão programaticamente, consulte a seção Descrições do sinalizador de propriedade.
0x0040 64
ENCRYPTED_TEXT_PWD_ALLOWED 0x0080 128
TEMP_DUPLICATE_ACCOUNT 0x0100 256
NORMAL_ACCOUNT 0x0200 512
INTERDOMAIN_TRUST_ACCOUNT 0x0800 2048
WORKSTATION_TRUST_ACCOUNT 0x1000 4096
SERVER_TRUST_ACCOUNT 0x2000 8192
DONT_EXPIRE_PASSWORD 0x10000 65536
MNS_LOGON_ACCOUNT 0x20000 131072
SMARTCARD_REQUIRED 0x40000 262144
TRUSTED_FOR_DELEGATION 0x80000 524288
NOT_DELEGATED 0x100000 1048576
USE_DES_KEY_ONLY 0x200000 2097152
DONT_REQ_PREAUTH 0x400000 4194304
PASSWORD_EXPIRED 0x800000 8388608
TRUSTED_TO_AUTH_FOR_DELEGATION 0x1000000 16777216
PARTIAL_SECRETS_ACCOUNT 0x04000000 67108864

Observação

Em um domínio baseado no Windows Server 2003, LOCK_OUT e PASSWORD_EXPIRED foram substituídos por um novo atributo chamado ms-DS-User-Account-Control-Computed. Para obter mais informações sobre esse novo atributo, consulte o atributo ms-DS-User-Account-Control-Computed.

Descrições do sinalizador de propriedade

  • SCRIPT: o script de logon será executado.

  • ACCOUNTDISABLE: a conta de usuário está desabilitada.

  • HOMEDIR_REQUIRED: a pasta base é necessária.

  • PASSWD_NOTREQD: nenhuma senha é necessária.

  • PASSWD_CANT_CHANGE: o usuário não pode alterar a senha. É uma permissão no objeto do usuário. Para obter informações sobre como definir essa permissão programaticamente, consulte Como modificar o usuário não pode alterar senha (provedor LDAP).

  • ENCRYPTED_TEXT_PASSWORD_ALLOWED: o usuário pode enviar uma senha criptografada.

  • TEMP_DUPLICATE_ACCOUNT: é uma conta para usuários cuja conta primária está em outro domínio. Essa conta fornece acesso de usuário a esse domínio, mas não a nenhum domínio que confie nesse domínio. Às vezes, ele é conhecido como uma conta de usuário local.

  • NORMAL_ACCOUNT: é um tipo de conta padrão que representa um usuário típico.

  • INTERDOMAIN_TRUST_ACCOUNT: é uma permissão para confiar em uma conta para um domínio do sistema que confia em outros domínios.

  • WORKSTATION_TRUST_ACCOUNT: é uma conta de computador para um computador que está executando o Microsoft Windows NT 4.0 Workstation, o Microsoft Windows NT 4.0 Server, o Microsoft Windows 2000 Professional ou o Windows 2000 Server e é membro desse domínio.

  • SERVER_TRUST_ACCOUNT: é uma conta de computador para um controlador de domínio que é membro desse domínio.

  • DONT_EXPIRE_PASSWD: representa a senha, que nunca deve expirar na conta.

  • MNS_LOGON_ACCOUNT: é uma conta de logon do MNS.

  • SMARTCARD_REQUIRED: quando esse sinalizador é definido, ele força o usuário a fazer logon usando um cartão inteligente.

  • TRUSTED_FOR_DELEGATION: quando esse sinalizador é definido, a conta de serviço (a conta de usuário ou computador) na qual um serviço é executado é confiável para delegação Kerberos. Qualquer serviço desse tipo pode representar um cliente solicitando o serviço. Para habilitar um serviço para delegação Kerberos, você deve definir esse sinalizador na propriedade userAccountControl da conta de serviço.

  • NOT_DELEGATED: quando esse sinalizador é definido, o contexto de segurança do usuário não é delegado a um serviço, mesmo que a conta de serviço seja definida como confiável para delegação Kerberos.

  • USE_DES_KEY_ONLY: (Windows 2000/Windows Server 2003) restrinja essa entidade de segurança para usar somente tipos de criptografia DES (Data Encryption Standard) para chaves.

  • DONT_REQUIRE_PREAUTH: (Windows 2000/Windows Server 2003) essa conta não exige a pré-autenticação kerberos para fazer logon.

  • PASSWORD_EXPIRED: (Windows 2000/Windows Server 2003) a senha do usuário expirou.

  • TRUSTED_TO_AUTH_FOR_DELEGATION: (Windows 2000/Windows Server 2003) a conta está habilitada para delegação. É uma configuração sensível à segurança. As contas que têm essa opção habilitada devem ser rigidamente controladas. Essa configuração permite que um serviço executado na conta assuma a identidade de um cliente e autentique-se como esse usuário em outros servidores remotos na rede.

  • PARTIAL_SECRETS_ACCOUNT: (Windows Server 2008/Windows Server 2008 R2) a conta é um RODC (controlador de domínio somente leitura). É uma configuração sensível à segurança. Remover essa configuração de um RODC compromete a segurança nesse servidor.

Valores userAccountControl

Aqui estão os valores padrão de UserAccountControl para determinados objetos:

  • Usuário típico: 0x200 (512)
  • Controlador de domínio: 0x82000 (532480)
  • Estação de trabalho/servidor: 0x1000 (4096)
  • Confiança: 0x820 (2080)

Observação

Uma conta de confiança do Windows está isenta de ter uma senha por meio de PASSWD_NOTREQD de valor de atributo UserAccountControl porque os objetos de confiança não usam a política de senha tradicional e os atributos de senha da mesma forma que objetos de usuário e computador.

Os segredos de confiança são representados por atributos especiais nas contas de confiança de interdomínio, indicando a direção da confiança. Os segredos de confiança de entrada são armazenados no atributo trustAuthIncoming, no lado "confiável" de uma confiança. Os segredos de confiança de saída são armazenados no atributo trustAuthOutgoing, na extremidade "confiável" de uma confiança.

  • Para confianças bidirecionais, o objeto INTERDOMAIN_TRUST_ACCOUNT em cada lado da confiança terá ambos definidos.
  • Os segredos de confiança são mantidos pelo controlador de domínio que é a função FSMO (Operação Mestra Única Flexível) do controlador de domínio primário (PDC) no domínio confiável.
  • Por esse motivo, o atributo UserAccountControl do PASSWD_NOTREQD é definido em contas INTERDOMAIN_TRUST_ACCOUNT por padrão.