从命令行更改其他用户密码

我在AD域,我想改变某人的密码(已过期,但我认为是无关紧要的)。

我不是一个ADpipe理员,所以net user <username> * /domain不起作用。

我可以改变它按CTRL + ALT + DELETE->更改密码input旧密码 ,我有; 有没有一个相当于这个过程的命令行?

实际上,如果您不是域pipe理员(或帐户pipe理员),则相关:对于密码过期的帐户,您必须执行交互式login才能更改密码。

否则,如果您知道其他用户的密码,则可以使用这些凭据启动Powershell会话,并使用@Ryan Bolger刚发布的代码。 甚至更简单:

 Set-ADAccountPassword otheruser -oldpassword typeoldpassword -newpassword typenewpassword 

****编辑****

忘记上面的一切:你可以用这个命令来做,因为这个命令实际上是一个交互式login。 所以只要做:

 Set-ADAccountPassword otheruser 

系统会提示您input旧密码,然后input新密码,然后重新input新密码。 我只是testing它! 🙂

如果您知道用户的LDAP专有名称(DN)值,可以使用Powershell来完成,如下所示:

 $oldpass = 'XXXXXXX' $newpass = 'XXXXXXX' $user = [ADSI]"LDAP://CN=myuser,OU=MyOU,DC=example,DC=com" $user.ChangePassword($oldpass,$newpass) 

我应该注意到,即使密码已经过期,这种方法仍然有效,这是一个很好的奖励。

如果您不知道DN,则只会稍微困难一些,因为您必须先search对用户的引用。 以下是使用adsisearcher通过sAMAccountName查找用户的adsisearcher 。 尽pipe您可以使用任何LDAPfilter。 你可以用这个代替上面的$user = blah行。

 $user = ([adsisearcher]"(&(sAMAccountType=805306368)(sAMAccountName=myuser))").FindOne()