1. UserAccountControl属性
因为在修改AD域用户状态的时候发现,一些博客给定的禁用和启用用户的状态值并不一致,参考官网文档和国外的博客发现用户在禁用状态下,也会包含其他属性,这些属性有些是相加的。全量的属性列表如下:
如何参考并使用这个对照表呢?
可以搜索表中关于
Disabled
的行对应的十进制值,在程序中可以使用作为状态的判断——
UserAccountControl属性为
514
、
546
、
66050
、
66080
、
66082
里面的值的可以判断为禁用账号;
搜索
Enabled
,值为
544
、
66048
、
262656
的以及默认账户类型
512
可以判断为启用账户;
在开发中,现在的做法是:
self
.
disabled_user_flag
=
[
514
,
546
,
66050
,
66080
,
66082
]
# 禁用账户的userAccountControl值列表
self
.
enabled_user_flag
=
[
512
,
544
,
66048
,
262656
]
# 启用账户
.
.
.
if
en
[
'attributes'
]
[
'userAccountControl'
]
in
self
.
disabled_user_flag
:
# 遍历用户的userAccountControl属性,在self.disabled_user_flag标志列表中的则为禁用账户
HOMEDIR_REQUIRED – 主文件夹是必需的。
PASSWD_NOTREQD – 不需要密码。
PASSWD_CANT_CHANGE – 用户无法更改密码。这是对用户对象的权限。 有关如何以编程方式设置此权限的信息,请访问以下网站:
Modifying User Cannot Change Password (LDAP Provider)
ENCRYPTED_TEXT_PASSWORD_ALLOWED – 用户可以发送加密的密码。
TEMP_DUPLICATE_ACCOUNT – 这是其主要帐户位于另一个域中的用户的帐户。该帐户为用户提供对该域的访问权限,但不提供对任何信任该域的域的访问权限。有时称为本地用户帐户。
NORMAL_ACCOUNT – 这是代表典型用户的默认帐户类型。
INTERDOMAIN_TRUST_ACCOUNT – 这是允许信任信任其他域的系统域的帐户的许可。
WORKSTATION_TRUST_ACCOUNT – 这是运行Microsoft Windows NT 4.0工作站,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删除此设置会损害该服务器上的安全性。
2. 重要用户属性
AD域中的字段
对象创建时间
2020-10-09 09:17:49+00:00
用于表示日期和时间的国际标准是ISO8601。其完整参考编号是ISO 8601:1988(E),其标题是“数据元素和交换格式-信息交换-日期和时间的表示”。
whenChanged
对象修改时间
2020-10-09 09:17:50+00:00
displayname
givenName
si.li@XXX.com
mobile
15002510721,13341667654
telephoneNumber
051632423534
company
department
title
accountExpires
如果您在AD中设置了一个帐户,该帐户于2020年10月15日下午5:00到期,则该帐户在AD中有效的最后一天是7月14日。
如果使用Microsoft管理控制台将帐户设置为在2020年10月15日到期,则“登录到期时间”的
accountExpires
属性设置为在2020年10月16日上午12:00到期,因为Microsoft管理控制台不允许使用要设置的时间值,默认值为12:00 am
在AD中将accountExpires的值设置为“ -1”将导致eDirectory设置为:2106年2月7日,美国东部标准时间(2860207062815Z)1:28:15。
**accountExpires**字段在创建用户的时候可以给定限制,假设当前时间是2020年11月23日,我们给这个用户三个月的有限期,则有如下`python`代码: