我对 Active Directory 更改密码的权限有疑问。是否可以撤销特定 OU 用户的更改密码权限?
我该如何完成这项任务?我知道可以为特定用户组完成这项任务,但是特定 OU 中的用户可以完成这项任务吗?
更新
感谢你们的所有回答。它们真的很有帮助。遗憾的是,由于我的声誉较低,我无法对这些回复点赞 ;)
95% 的用户都在我所写的 OU 中。我正在考虑从 Everyone 组中删除更改密码权限,并为能够更改密码的用户创建组。问题是,来自此 OU 的用户在另一个应用程序中,他们应该使用此应用程序更改密码,而不是在 AD 中。不在此 OU 中的用户仅在 AD 中,因此他们可以在 AD 中更改密码。
您认为这是一个好的解决方案还是会存在问题?
感谢帮助。
答案1
John Rennie 和 Sam Cogan 的回答(正如 John 恰当地指出的那样)是“黑客行为”,因为他们试图禁用用户界面来更改密码,但实际上并没有剥夺用户更改密码的能力。
我认为您正在寻找对 Active Directory 在用户帐户所在的 OU 上默认设置的权限的更改。我要提醒您不要这样做。由于 Microsoft 已经通过用户帐户对象的属性提供了此功能,因此使用已提供的属性确实比更改 AD 权限更好。您很可能会找到一个有效的权限,而且操作系统也可能不会显示有用的消息。
您确实应该只使用 Active Directory 用户和计算机来修改所有受影响的用户的属性。 Dart 的答案在功能上与选择所有用户帐户并以图形方式设置其“用户无法更改密码”相同。如果您更喜欢命令行,请这样做。
在 Windows 2003 中,可以使用 Active Directory 权限通过“扩展权限”执行此操作。我找不到有关该功能的良好文档。以下是与更改密码相关的“扩展权限”的一些背景信息,第一个与 Active Directory“应用程序模式”(或 Microsoft 本周对其的称呼)有关:
我尝试通过在我的测试 W2K3 Active Directory(Windows 2003 域功能级别)中的一个 OU 上放置“SELF - 拒绝 - 用户对象 - 扩展权限:更改密码”权限来验证 Massimo 的答案,并发现该 OU 或以下的用户对象仍然能够使用 GUI 密码更改功能更改其密码。查看每个用户对象,我可以看到继承的“拒绝”权限,但 Active Directory 似乎忽略了它。
只需删除用户对象上的“SELF - 允许 - 更改密码”权限,即可获得与上述测试相同的功能。用户仍被允许更改其密码。
基于此,我想说 Massimo 的回答也没有达到你想要的效果。
我发现本文来自 Microsoft 并对其进行了测试。当我将脚本定位到单个用户对象时,它的行为符合预期,用户无法更改密码。但是,这对您没有太大帮助,因为您想基于每个 OU 进行设置。
但是,当我将 Microsoft 的脚本定位到 OU 时,行为不再符合预期。(此外,如果我修改添加到 OU 的 ACE 以应用于“此对象和子对象”,而不是脚本授予的“仅此对象”,行为仍然不如预期。
我真的在这个问题上绞尽脑汁。这看起来像是 Active Directory 行为的一个怪癖,但并没有很好的记录。我经历过“Active Directory 域服务”和Active Directory 架构文档,但我没有找到文档来描述这种行为。
答案2
看http://support.microsoft.com/kb/324744
但请注意,这有点像黑客行为。它不会阻止用户更改密码,只是从 ctrl-alt-del 对话框中删除了更改密码的选项。用户仍然可以使用命令行密码更改器。
JR
答案3
是的,您可以通过组策略来实现。打开要限制的 OU 的组策略编辑器(右键单击 OU,属性,组策略选项卡)。创建新策略,或编辑现有策略,然后转到:
User Configuration -> Administrative Templates -> System
在这里,选择 Ctrl+Alt+Del 选项,在右侧窗格中,启用“删除更改密码”选项。
关闭组策略编辑器。为确保其立即应用,请打开命令提示符并运行
gpupdate /target:user /force
答案4
您可以通过从分配给“SELF”的用户权限中删除(或明确拒绝)“更改密码”来删除特定用户执行此操作的权限。
您必须手动编辑用户对象本身的 ACL;您可以通过在 Active Directory 用户和计算机控制台中启用高级功能(查看 -> 高级功能),然后打开用户的属性并选择“安全”来访问它。