步骤 1:创建 PSO
步骤 2:将 PSO 应用到用户和/或全局安全组
步骤 3:管理 PSO
步骤 4:查看用户或全局安全组的结果 PSO
步骤5:验证结果
注:由于通用性和重复性,有些步骤不一定会演示出来,请参考前面的文章。
实战
Ⅱ. LDIFDE
步骤1:创建PSO
1. 在使用LDIFDE工具创建PSO前,我觉得很有必要介绍一下“负PSO 属性值”这个概念。从前面那篇文章可以知道,使用 ADSI Edit 创建密码设置对象 (PSO) 时,是以 dd:hh:mm:ss 格式输入四个与时间相关的 PSO 属性(msDS-MaximumPasswordAge、msDS-MinimumPasswordAge、msDS-LockoutObservationWindow 和 msDS-LockoutDuration)的值。而在这篇文章中使用 ldifde 命令创建 PSO 时,则必须以 I8 格式输入这些属性的值,这种格式以 -100 毫微秒的间隔存储时间。Windows Server 2003“默认域策略”将此确切的时间单位用于其相应的时间相关属性。若要将这些属性设置为适当的值,请将以分钟、小时或天为单位的时间值转换为以 100 毫微秒为间隔的时间值,然后在所得到的值前面加个负号。是不是有点晕?看个例子就很简单了:
1分钟换算成I8值为:
-60*(10^7) = - 600000000
1小时换算成I8值为:
-60*60* (10^7) = -36000000000
1天换算成I8值为:
-24*60*60*(10^7) = -864000000000
例如,如果您希望将 msDS-MaximumPasswordAge 设置为 10 天,则用 -864000000000 乘以 10,并将得到的 I8 值应用到 msDS-MaximumPasswordAge 属性(在本例中为 -8640000000000)。如果您希望将 msDS-LockoutDuration 设置为 30 分钟,则用 -600000000 乘以 30 以得到相应的 I8 值(在本例中为 -18000000000)。
2.
通过将以下示例代码保存为一个文件(例如,AdminPSO.ldf),来创建一个新 PSO 的设置:
dn:CN=AdminPSO,CN=PasswordSettings Container,CN=System,DC=Winos,DC=cn(注意:Password Settings Container3个单词中用空格两两隔开。我这里是为了word排版美观,就没有隔开。)
changetype: add
objectClass:msDS-PasswordSettings
msDS-MaximumPasswordAge:-12096000000000
(密码最长可以使用14天)
msDS-MinimumPasswordAge:-0
(密码最短必须使用0天,即可以立即更改密码)
msDS-MinimumPasswordLength:16
(密码最小长度为16个字符)
msDS-PasswordHistoryLength:3
(密码不能和过去的3个重复)
msDS-PasswordComplexityEnabled:TRUE
(启用密码复杂性要求)
msDS-PasswordReversibleEncryptionEnabled:FALSE
(启用用户密码不可还原加密)
msDS-LockoutObservationWindow:-18000000000
(账号锁定窗口时间30分钟)
msDS-LockoutDuration:-18000000000
(账号锁定观察窗口时间30分钟)
msDS-LockoutThreshold:3
(输入错误密码3次就锁定)
msDS-PasswordSettingsPrecedence:1
(该PSO的优先级)
msDS-PSOAppliesTo:CN=PSOGroup,OU=TestOU,DC=Winos,DC=cn
(GPO应用对象)
图1
如图1所示,请确保不要在每行文本后有多余的空格。
3. 在定义PSO属性的时候,有一些地方还得注意一下,额外的解释就没必要了,主要是一些逻辑上的注意点:
a. msDS-MinimumPasswordAge 的值必须小于或等于 msDS-MaximumPasswordAge 的值。
b.
msDS-LockoutObservationWindow 的值不能小于 msDS-LockoutDuration 的值。
c.
不能将 msDS-MaximumPasswordAge 的值设置为零。
4. 打开命令提示符,键入以下命令,如图2所示。
ldifde �Ci �Cf AdminPSO.ldf
图2
步骤 2:将 PSO 应用到用户和/或全局安全组
1.
在步骤1定义的文件AdminPSO.ldf中,有一个字段msDS-PSOAppliesTo:CN=PSOGroup,OU=TestOU,DC=Winos,DC=cn就表示将该PSO链接到具体的对象。如果想更改链接,可以将以下示例代码复制到一个文件(例如,ModifyAppliesTo.ldf)中,来指定你希望将什么 PSO 应用到哪些用户或全局安全组。例如我再新建一个用户lisi(他并不隶属于PSOGroup安全组),并将AdminPSO链接到他身上,如图3所示。
dn:CN=AdminPSO,CN=PasswordSettings Container,CN=System,DC=Winos,DC=cn
changetype:modify
replace:msDS-PSOAppliesTo
msDS-PSOAppliesTo:CN=PSOGroup,OU=TestOU,DC=Winos,DC=cn
msDS-PSOAppliesTo:CN=lisi,OU=TestOU,DC=Winos,DC=cn
-
图3
注:
文件中代码的最后一行中的连字符是必需的。用来表述输入终止。此外,DN字段中不要有中文,LDIFDE不支持中文。
2.
打开命令提示符,键入以下命令,如图4.
ldifde �Ci �Cf ModifyAppliesTo.ldf
图4
步骤 3:管理 PSO
1.
如何想查看和修改 PSO 设置、修改 PSO 优先级可以参考前面那篇文章。(尽管仍可以通过ldifde命令实现这些操作,但是通过GUI界面还是方面不少)这里就介绍一下如何使用ldifde删除 PSO
2.
通过将以下内容保存到一个文件(例如,DeletePSO.ldf)中,如图5,来指定要删除的 PSO:
dn:CN=PSO1,CN=PasswordSettings Container,CN=System,DC=dc1,DC=contoso,DC=com changetype: delete
图5
3.
打开命令提示符,键入以下命令,如图6
ldifde
�Ci
�Cf
DeletePSO.ldf
图6
步骤 4:查看用户或全局安全组的结果 PSO
请参考前面的文章,此处略。
步骤5:验证结果
请参考前面的文章,此处略。
结束语
在这篇文章中,我向大家演示了如何通过ldifde工具来管理多元密码策略。由于很多操作在GUI界面中更具备便捷性,所以我就没有进行过多的演示。目的是不想舍近求远。在下一篇文章中,我将向大家阐述如何使用Quese公司出品的针对AD的PowerShell来实现、管理多元密码策略。