精通Windows Server 2008 多元密码策略之LDIFDE篇
出处:Windows中文论坛 作者:尘封メ心 时间:2008-9-11 11:52:13
前言
在上一篇文章《精通Windows Server 2008 多元密码策略之ADSIEDIT篇》中我向大家介绍了如何通过ADSIEDIT工具和活动目录用户和计算机管理单元创建、管理密码设置对象PSO。原理性的东西和需要注意的地方我就这这篇文章和之后的文章中不再赘述了。有需要的请查看上篇文章。接下来的重点主要是动手部分。废话少说,开始!为了让大家在操作的时候有一个清晰的思路,我将主要的操作步骤写出来:步骤 1:创建 PSO步骤 2:将 PSO 应用到用户和/或全局安全组步骤 3:管理 PSO步骤 4:查看用户或全局安全组的结果 PSO步骤5:验证结果注:由于通用性和重复性,有些步骤不一定会演示出来,请参考前面的文章。实战Ⅱ. LDIFDE步骤1:创建PSO1. 在使用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) = - 6000000001小时换算成I8值为:
-60*60* (10^7) = -360000000001天换算成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: addobjectClass:msDS-PasswordSettingsmsDS-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 –i –f 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=cnchangetype:modifyreplace:msDS-PSOAppliesTomsDS-PSOAppliesTo:CN=PSOGroup,OU=TestOU,DC=Winos,DC=cnmsDS-PSOAppliesTo:CN=lisi,OU=TestOU,DC=Winos,DC=cn- 图3注: 文件中代码的最后一行中的连字符是必需的。用来表述输入终止。此外,DN字段中不要有中文,LDIFDE不支持中文。
2.
打开命令提示符,键入以下命令,如图4.ldifde –i –f ModifyAppliesTo.ldf 图4步骤 3:管理 PSO1.
如何想查看和修改 PSO 设置、修改 PSO 优先级可以参考前面那篇文章。(尽管仍可以通过ldifde命令实现这些操作,但是通过GUI界面还是方面不少)这里就介绍一下如何使用ldifde删除 PSO2.
通过将以下内容保存到一个文件(例如,DeletePSO.ldf)中,如图5,来指定要删除的 PSO:dn:CN=PSO1,CN=PasswordSettings Container,CN=System,DC=dc1,DC=contoso,DC=com changetype: delete 图53.
打开命令提示符,键入以下命令,如图6ldifde
–i
–f
DeletePSO.ldf 图6步骤 4:查看用户或全局安全组的结果 PSO请参考前面的文章,此处略。步骤5:验证结果请参考前面的文章,此处略。结束语在这篇文章中,我向大家演示了如何通过ldifde工具来管理多元密码策略。由于很多操作在GUI界面中更具备便捷性,所以我就没有进行过多的演示。目的是不想舍近求远。在下一篇文章中,我将向大家阐述如何使用Quese公司出品的针对AD的PowerShell来实现、管理多元密码策略。