前言
在上一篇文章《精通Windows Server 2008 多元密码策略之ADSIEDIT篇》中我向大家介绍了如何通过ADSIEDIT工具和活动目录用户和计算机管理单元创建、管理密码设置对象PSO。原理性的东西和需要注意的地方我就这这篇文章和之后的文章中不再赘述了。有需要的请查看上篇文章。接下来的重点主要是动手部分。废话少说,开始!为了让大家在操作的时候有一个清晰的思路,我将主要的操作步骤写出来:
步骤 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所示,请确保不要在每行文本后有多余的空格。