87
El control de cuenta de usuario El atributo contiene un conjunto de indicadores que definen el estado de una cuenta de usuario en Active Directory.
El valor de userAccountControl se puede ver en el complemento gráfico Usuarios y equipos de Active Directory (ADUC).
- Abra las propiedades del usuario y vaya a la pestaña Editor de atributos.
- Busque el atributo userAccountControl.
- Esto muestra el valor del atributo en hexadecimal, así como un conjunto de indicadores habilitados que indican el estado de la cuenta en AD. Por ejemplo, 0x200 = (CUENTA_NORMAL).
- Cuando abre este atributo, su valor se muestra en decimal.
El valor del atributo userAccountControl está determinado por el conjunto de opciones de usuario de AD habilitadas en el Cuenta pestaña. Cada uno de los atributos resaltados en la pestaña es un bit (bandera). Puede tomar el valor 1 (verdadero) o 0 (FALSO). Todos estos valores son parte de un único atributo userAccountControl, en lugar de almacenarse como atributos separados del usuario de AD.
Por ejemplo, si habilita la La contraseña nunca caduca opción aquí, el valor del atributo userAccountControl cambia a 0x10200 (NORMAL_ACCOUNT|DONT_EXPIRE_PASSWD) o 66048 en decimal.
El atributo UserAccountControl es una máscara bit a bit de 32 bits (4 bytes), donde cada parámetro de cuenta es un bit de la máscara. El valor del atributo userAccountControl es la suma de los valores de los indicadores de estado de cuenta habilitados.
La siguiente tabla enumera los posibles indicadores y sus valores:
MALEFICIO | DIC | NOMBRE |
0x0001 | 1 | GUION |
0x0002 | 2 | CUENTADESHABILITADA |
0x0008 | 8 | HOMEDIR_REQUIRED |
0x0010 | 16 | CIERRE PATRONAL |
0x0020 | 32 | PASSWD_NOTREQD |
0x0040 | 64 | PASSWD_CANT_CHANGE |
0x0080 | 128 | ENCRYPTED_TEXT_PWD_ALLOWED |
0x0100 | 256 | TEMP_DUPLICATE_ACCOUNT |
0x0200 | 512 | NORMAL_ACCOUNT |
0x0800 | 2048 | INTERDOMAIN_TRUST_ACCOUNT |
0x1000 | 4096 | ESTACIÓN DE TRABAJO_TRUST_ACCOUNT |
0x2000 | 8192 | SERVER_TRUST_ACCOUNT |
0x10000 | 65536 | NO_EXPIRE_PASSWORD |
0x20000 | 131072 | MNS_LOGON_ACCOUNT |
0x40000 | 262144 | TARJETA INTELIGENTE_REQUIRED |
0x80000 | 524288 | TRUSTED_FOR_DELEGATION |
0x82000 | 532480 | Controlador de dominio |
0x100000 | 1048576 | NO_DELEGADO |
0x200000 | 2097152 | USE_DES_KEY_ONLY |
0x400000 | 4194304 | DONT_REQ_PREAUTH |
0x800000 | 8388608 | CONTRASEÑA_EXPIRED |
0x1000000 | 16777216 | TRUSTED_TO_AUTH_FOR_DELEGATION |
0x04000000 | 67108864 | PARTIAL_SECRETS_ACCOUNT |
En este ejemplo, el valor 66048 es el resultado de la suma de las siguientes banderas: NORMAL_ACCOUNT (512) +DONT_EXPIRE_PASSWORD (65536) = 512+65536=66048
Por ejemplo, una cuenta de usuario de AD deshabilitada tiene un valor de atributo de 514:ACCOUNTDISABLE (2) + NORMAL_ACCOUNT (512)
Puede usar el cmdlet Get-ADUser de PowerShell para obtener el valor de userAccountControl:
Get-ADUser b.jackson -Properties * | select Name,userAccountControl
Por ejemplo, para enumerar todos los usuarios del dominio con una contraseña que nunca caduca, utilice el siguiente comando con una consulta LDAP:
Get-ADUser -Properties * -Filter {userAccountControl -like 66048} | select Name, userAccountControl
Los administradores pueden cambiar el valor del atributo userAccountControl desde el complemento ADUC habilitando o deshabilitando indicadores en la pestaña Cuenta.
También es posible cambiar el valor del valor userAccountControl directamente en el Editor de atributos o mediante PowerShell. Establezca el valor en 514 para deshabilitar una cuenta de usuario:
Set-ADUser b.jackson -Replace @{userAccountControl=514}
El módulo AD PowerShell también tiene un cmdlet integrado, Establecer-ADAccountControlque se puede utilizar para cambiar los indicadores individuales de userAccountControl:
Set-ADAccountControl b.jackson -PasswordNotRequired $false -PasswordNeverExpires $true -CannotChangePassword $true
Para convertir el valor de userAccountControl en un formato legible por humanos, puede utilizar el servicio en línea Decodificador UAC. Pegue el valor decimal del atributo y el servicio devolverá una lista de indicadores de cuenta habilitados.
También puede usar un script de PowerShell para encontrar los atributos de un usuario de AD que están habilitados:
$UACvalue ="66048" $flags = @("","ACCOUNTDISABLE","", "HOMEDIR_REQUIRED", "LOCKOUT", "PASSWD_NOTREQD","PASSWD_CANT_CHANGE", "ENCRYPTED_TEXT_PWD_ALLOWED", "TEMP_DUPLICATE_ACCOUNT", "NORMAL_ACCOUNT", "","INTERDOMAIN_TRUST_ACCOUNT", "WORKSTATION_TRUST_ACCOUNT", "SERVER_TRUST_ACCOUNT", "", "", "DONT_EXPIRE_PASSWORD", "MNS_LOGON_ACCOUNT", "SMARTCARD_REQUIRED", "TRUSTED_FOR_DELEGATION", "NOT_DELEGATED","USE_DES_KEY_ONLY", "DONT_REQ_PREAUTH", "PASSWORD_EXPIRED", "TRUSTED_TO_AUTH_FOR_DELEGATION") 1..($flags.length) | ? {$UACvalue -band [math]::Pow(2,$_)} | % { $flags[$_] }