如何使用PowerShell/CMD命令修改其他AD用户的密码(无需切换用户)
如何使用PowerShell/CMD命令修改其他AD用户的密码(无需切换用户)
当然可以实现!不用每次切换用户那么麻烦,用PowerShell就能轻松搞定——毕竟AD管理本来就是PowerShell的强项之一。下面给你详细的步骤和命令:
前提条件
首先要确认你当前登录的用户(比如for-a.surname)拥有修改目标AD用户密码的权限,否则操作会失败。如果权限不够,得联系域管理员给你分配对应的权限。
单用户修改命令
- 先打开管理员权限的PowerShell(右键开始菜单,选择「Windows PowerShell(管理员)」或者「终端(管理员)」)。
- 确保Active Directory模块已加载(域控制器或安装了RSAT工具的机器默认已加载,如果没加载,先运行:
Import-Module ActiveDirectory)。 - 运行以下命令修改单个用户(比如
for-b.surname)的密码:
Set-ADAccountPassword -Identity "for-b.surname" -OldPassword (Read-Host -AsSecureString "Enter old password") -NewPassword (Read-Host -AsSecureString "Enter new password") -Reset $false
参数解释:
-Identity:指定要修改的AD用户名(也可以用用户的DN、SID,不过用户名最直观)-OldPassword/-NewPassword:用Read-Host -AsSecureString安全输入密码,输入时不会明文显示,避免泄露-Reset $false:表示这是修改密码操作(需要验证旧密码),如果设为$true就是重置密码(不需要旧密码,但需要更高权限),完全符合你要输入旧密码的需求。
批量修改多个用户
如果你要一次性改多个用户的密码,可以写个简单的循环脚本,省去重复输入命令的麻烦:
# 把需要修改的用户名放在这个数组里 $targetUsers = @("for-b.surname", "for-c.surname") foreach ($user in $targetUsers) { Write-Host "正在修改用户 $user 的密码..." Set-ADAccountPassword -Identity $user -OldPassword (Read-Host -AsSecureString "请输入 $user 的旧密码") -NewPassword (Read-Host -AsSecureString "请输入 $user 的新密码") -Reset $false Write-Host "用户 $user 的密码修改完成`n" }
运行这个脚本后,会依次提示你输入每个用户的旧密码和新密码,全程不用切换用户。
关于CMD的说明
很遗憾,CMD没有原生的直接修改AD用户密码的命令,所以还是推荐用上面的PowerShell方法,操作更简单、功能更完善。
备注:内容来源于stack exchange,提问作者Hagbart Celine




