Powershell / cmd 命令更改 AD 用户密码

Powershell / cmd 命令更改 AD 用户密码

我尝试寻找这个问题的答案但也许根本不可能。

所以我有几个 AD 用户负责不同的任务。

  • 姓氏
  • for-b.姓氏
  • for-c.姓氏

当然,我必须定期更改这些 AD 用户的密码。为此,我总是以每个用户的身份登录,然后按 CTRL-ALT-DEL --> 更改密码。

我正在寻找一个 Powershell / 命令行命令来更改所有这些用户的密码,而无需实际切换。

例如

  1. 我以 for-a.surname 身份登录
  2. 打开 Powershell/CMD
  3. ChangePW for-b.surname
  4. 输入旧密码
  5. 输入新密码
  6. 再次输入新密码
  7. 完毕

答案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]

相关内容