首页 > 解决方案 > 使用 PowerShell 问题重置 AD 用户密码

问题描述

我正在检查使用 PowerShell 重置 AD 用户密码的方法,我发现Set-ADAccountPassword它正在工作,但是我不确定如何在我的环境中使用它。

我有一个包含许多子域的森林:example.local作为主域和x.example.localy.example.com以及z.example.com作为子域。

我想要实现的是能够从位于父域中的服务器重置子域帐户的密码现在,以下事情对我有用。

如果从位于子域中的服务器运行x.example.local

Set-ADAccountPassword -Identity "John.Doe" -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "ABCD1234" -Force)

在森林内的任何地方工作:

Set-ADAccountPassword -Identity "CN=Doe, John X.,OU=b,OU=a,DC=x,DC=example,DC=local" -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "ABCD1234" -Force)

我真正需要的是能够将Windows 用户登录名从服务器父域 ie 中放入脚本中,如下所示,example.local顺便说一句,这不起作用。

Set-ADAccountPassword -Identity "CN=John.Doe,OU=b,OU=a,DC=x,DC=example,DC=local" -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "ABCD1234" -Force)

我怎样才能做到这一点?

标签: powershellactive-directory

解决方案


我认为其他答案存在一些混乱,我希望将它们正确设置。

如果我理解您的问题,您希望使用 Sam 帐户名称而不是用户的 DN。

尝试这个。

Set-ADAccountPassword -Identity "Jdoe" -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "ABCD1234" -Force)

JDOE 是 John Doe 的登录 ID。如果您想在不同的域中执行此操作,请添加 -server 选项。对于 childdomain.MyDomain.local 域,这样做:

Set-ADAccountPassword -Identity "Jdoe" -Reset -server ChilDomain.MyDomain.Local -NewPassword (ConvertTo-SecureString -AsPlainText "ABCD1234" -Force)

与其中一条评论不同,仅仅因为您有信任,并不意味着您将有权更改目标域中的密码。

您在其中运行此进程的 AD 帐户将需要具有该权限,或者通过 DC 上其他域的本地管理员组的成员身份,或者通过策略专门添加到其他域中的 AD(或直接应用于 OU在用户所在等),或企业管理员的成员。

当然,您可以为其他域中的用户使用 CN,但请记住,每个域之间的 CN 会有所不同。


推荐阅读