使用 UserAccountControl 标志操作用户帐户属性

本文介绍有关使用 UserAccountControl 属性操作用户帐户属性的信息。

适用于:Windows Server 2012 R2、Windows Server 2016、Windows Server 2019、Windows Server 2022
原始 KB 编号: 305144

摘要

打开用户帐户的属性时,单击“帐户”选项卡,然后选择或清除“帐户选项”对话框中的复选框,数值将分配给“UserAccountControl”属性。 分配给该属性的值告诉 Windows 已启用哪些选项。

要查看用户帐户,单击“开始”,依次指向“程序”“管理工具”,然后单击“Active Directory 用户和计算机”

属性标志列表

可以使用 Ldp.exe 工具或 Adsiedit.msc 管理单元查看和编辑这些属性。

下表列出了可以分配的可能标志。 无法在用户或计算机对象上设置某些值,因为这些值只能由目录服务设置或重置。 Ldp.exe 显示十六进制值。 Adsiedit.msc 显示十进制值。 标志是累积的。 要禁用用户的帐户,请将“UserAccountControl”属性设置为“0x0202”(0x002 + 0x0200)。 以十进制表示为 514 (2 + 512)。

注意

可以在 Ldp.exe 和 Adsiedit.msc 中直接编辑 Active Directory。 只有有经验的管理员才应使用这些工具来编辑 Active Directory。 从原始 Windows 安装介质安装支持工具后,这两种工具都可用。

属性标志 十六进制值 十进制值
SCRIPT 0x0001 1
ACCOUNTDISABLE 0x0002 2
HOMEDIR_REQUIRED 0x0008 8
LOCKOUT 0x0010 16
PASSWD_NOTREQD 0x0020 32
PASSWD_CANT_CHANGE

无法通过直接修改 UserAccountControl 属性来分配此权限。 有关如何以编程方式设置权限的信息,请参阅“属性标志说明”部分。
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

注意

在基于 Windows Server 2003 的域中,LOCK_OUT 和 PASSWORD_EXPIRED 已替换为名为 ms-DS-User-Account-Control-Computed 的新属性。 有关此新属性的详细信息,请参阅 ms-DS-User-Account-Control-Computed 属性

属性标志说明

  • SCRIPT - 将运行登录脚本。

  • ACCOUNTDISABLE - 已禁用用户帐户。

  • HOMEDIR_REQUIRED - 需要主文件夹。

  • PASSWD_NOTREQD - 无需密码。

  • PASSWD_CANT_CHANGE - 用户无法更改密码。 它是用户对象的权限。 有关如何以编程方式设置此权限的信息,请参阅 修改用户无法更改密码(LDAP 提供程序)

  • ENCRYPTED_TEXT_PASSWORD_ALLOWED - 用户可以发送加密的密码。

  • TEMP_DUPLICATE_ACCOUNT - 它是用户的主帐户位于另一个域中的帐户。 此帐户提供用户对此域的访问权限,但不提供对信任此域的任何域的访问权限。 它有时是指本地用户帐户。

  • NORMAL_ACCOUNT - 它是表示典型用户的默认帐户类型。

  • INTERDOMAIN_TRUST_ACCOUNT - 它是信任其他域的系统域信任的帐户。

  • WORKSTATION_TRUST_ACCOUNT - 它是运行 Microsoft Windows NT 4.0 Workstation、Microsoft Windows NT 4.0 Server、Microsoft Windows 2000 Professional 或 Windows 2000 Server 的计算机的计算机帐户,是此域的成员。

  • SERVER_TRUST_ACCOUNT - 它是域控制器的计算机帐户,该域控制器是此域的成员。

  • DONT_EXPIRE_PASSWD - 表示不应在帐户上过期的密码。

  • MNS_LOGON_ACCOUNT - 这是一个 MNS 登录帐户。

  • SMARTCARD_REQUIRED - 设置此标志时,它会强制用户使用智能卡登录。

  • TRUSTED_FOR_DELEGATION - 设置此标志时,Kerberos 委派信任的运行服务的服务帐户(用户或计算机帐户)。 任何此类服务都可以模拟请求该服务的客户端。 若要为 Kerberos 委派启用服务,必须在服务帐户的 userAccountControl 属性上设置此标志。

  • NOT_DELEGATED - 设置此标志时,即使服务帐户设置为受信任的 Kerberos 委派,也不会将用户的安全上下文委派给服务。

  • USE_DES_KEY_ONLY - (Windows 2000/Windows Server 2003) 限制此主体仅使用数据加密标准 (DES) 密钥加密类型。

  • DONT_REQUIRE_PREAUTH - (Windows 2000/Windows Server 2003) 此帐户不需要对登录进行 Kerberos 预身份验证。

  • PASSWORD_EXPIRED - (Windows 2000/Windows Server 2003) 用户的密码已过期。

  • TRUSTED_TO_AUTH_FOR_DELEGATION - (Windows 2000/Windows Server 2003) 该帐户已启用委派。 这是一个安全敏感设置。 应严格控制启用此选项的帐户。 此设置允许在帐户下运行的服务假定客户端的身份,并以该用户的身份向网络上的其他远程服务器进行身份验证。

  • PARTIAL_SECRETS_ACCOUNT - (Windows Server 2008/Windows Server 2008 R2) 该帐户为只读域控制器 (RODC)。 这是一个安全敏感设置。 从 RODC 中删除此设置会损害该服务器上的安全性。

UserAccountControl 值

下面是某些对象的默认 UserAccountControl 值:

  • 典型用户:0x200 (512)
  • 域控制器:0x82000 (532480)
  • 工作站/服务器:0x1000 (4096)
  • 信任:0x820 (2080)

注意

Windows 信任帐户通过PASSWD_NOTREQD UserAccountControl 属性值免除密码,因为信任对象使用传统密码策略和密码属性的方式与用户和计算机对象不同。

信任机密由域间信任帐户上的特殊属性表示,指示信任的方向。 入站信任机密存储在信任的“受信任”端的 trustAuthIncoming 属性中。 出站信任机密存储在信任的“信任”端的 trustAuthOutgoing 属性中。

  • 对于双向信任,信任的每一端的 INTERDOMAIN_TRUST_ACCOUNT 对象将同时设置这两个对象。
  • 信任机密由域控制器维护,域控制器是主域控制器, (PDC) 仿真器灵活单一主机操作 (FSMO) 信任域中的角色。
  • 因此,默认情况下,PASSWD_NOTREQD UserAccountControl 属性在INTERDOMAIN_TRUST_ACCOUNT帐户上设置。