userAccountControl 590336: User, password never expires, trusted for delegation
userAccountControl Decoder: Decode Active Directory userAccountControl values (512, 514, 66048, 532480) into flags, see what each means and how to set it, or build one.
Active Directory keeps an account's switches (disabled, password never expires, trusted for delegation…) as bits added up in
its userAccountControl attribute: 66048 is 65536 + 512. Type a value from ADSI Edit, Get-ADUser -Properties
userAccountControl or a security report to see which flags it holds, what each means and how to change it, or tick flags
below to build one. Flag names and values are from Microsoft's
UserAccountControl property flags.
User, password never expires, trusted for delegation
590336 = 0x90200 = 512 + 65536 + 524288
| Value | Flag | Meaning |
|---|---|---|
| 512 0x200 |
NORMAL_ACCOUNT | An ordinary user account. Every user has it; 512 alone is a plain, enabled user. |
| 65536 0x10000 |
DONT_EXPIRE_PASSWORD | The password never expires. Common on service accounts; a group Managed Service Account (gMSA) is the better answer there. Active Directory Users and Computers: "Password never expires" PowerShell: Set-ADAccountControl -PasswordNeverExpires $true |
| 524288 0x80000 |
TRUSTED_FOR_DELEGATION review |
Unconstrained delegation: services on this account can act as any user who signs in to them, anywhere. Normal on domain controllers; on anything else it's a well-known attack path. Prefer constrained or resource-based delegation. Active Directory Users and Computers: "Trust this user/computer for delegation to any service (Kerberos only)" PowerShell: Set-ADAccountControl -TrustedForDelegation $true |
Find accounts like this
| Exactly this value | Get-ADObject -LDAPFilter "(userAccountControl=590336)" -Properties userAccountControl |
|---|---|
| Users with these flags | Get-ADUser -LDAPFilter "(userAccountControl:1.2.840.113556.1.4.803:=589824)" |
| LDAP filter | (userAccountControl:1.2.840.113556.1.4.803:=589824) |