我尝试寻找这个问题的答案但也许根本不可能。
所以我有几个 AD 用户负责不同的任务。
- 姓氏
- for-b.姓氏
- for-c.姓氏
当然,我必须定期更改这些 AD 用户的密码。为此,我总是以每个用户的身份登录,然后按 CTRL-ALT-DEL --> 更改密码。
我正在寻找一个 Powershell / 命令行命令来更改所有这些用户的密码,而无需实际切换。
例如
- 我以 for-a.surname 身份登录
- 打开 Powershell/CMD
ChangePW for-b.surname
- 输入旧密码
- 输入新密码
- 再次输入新密码
- 完毕
答案1
您正在寻找的是 PowerShell cmdlet设置 ADAccountPassword
工作方式与您描述的完全一样(您可以省略“-Identity”参数名称)。
Set-ADAccountPassword -Identity for-b.surname
您还可以将新旧密码作为参数传递(上面的链接中有更多示例):
$old = Read-Host "Old password" -AsSecureString
$new = Read-Host "New password" -AsSecureString
Set-ADAccountPassword -Identity for-b.surname -OldPassword $old -NewPassword $new
Set-ADAccountPassword -Identity for-c.surname -OldPassword $old -NewPassword $new
请注意,传递时-NewPassword
不提供-OldPassword
重置密码,而不是更改密码。如果未传递新密码,则 cmdlet 将仅以交互方式查询旧密码。
net user <username> newpassword
需要管理权限,并且重置密码,不要更改。
该 cmdlet 是 ActiveDirectory 模块的一部分。
要在 Windows 10/11 上安装该模块(需要互联网连接):
Add-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools*
要在 Windows Server 上安装模块:
Install-WindowsFeature -Name RSAT-ADDS-Tools
答案2
Ctrl-Alt-Del 屏幕的标题为“更改A密码”——“用户名”字段是可编辑的,它允许您输入系统识别的任何用户名,不一定是您自己的用户名。(我刚刚在独立 PC 上针对 MIT Kerberos 主体尝试过。)
AD 中的自助密码更改主要通过 Kerberos“kpasswd”协议完成。据我所知,Windows 中没有内置的 CLI 工具,但您可以安装 MIT Kerberos 或 Heimdal Kerberos 工具并使用该命令kpasswd
。(在大多数情况下,它不需要完整的域加入。)
如果你可以访问 Linux(包括 WSL),krb5-user
那么 Debian 或 Ubuntu 就可以完成这项工作,尽管MIT Kerberos 适用于 Windows工具也包括它。(我也期望微软将其作为其中的一部分bruce
;尽管显然目前还没有。)
$ kpasswd [email protected]