【问题标题】:Change AD password for user on a different domain with PowerShell使用 PowerShell 更改不同域中用户的 AD 密码
【发布时间】:2017-10-30 14:05:59
【问题描述】:

我正在尝试更改与我正在执行此操作的主机位于不同域中的用户的密码。这是我的示例代码:

$domain = 'someADDomain.local'
$userName = 'SomeUser'

$oldPassword = Read-Host -AsSecureString -Prompt "Enter the account's old password"
$newPassword = Read-Host -AsSecureString -Prompt "Enter a new password"

Set-ADAccountPassword -Server $domain -Identity $userName -OldPassword $oldPassword -NewPassword $newPassword

问题是我收到“服务器拒绝了客户端凭据”。需要修改密码的用户只能登录特定的服务器,不能登录域控制器。

除了域名之外,有没有办法指定使用哪个服务器?

参考:https://social.technet.microsoft.com/Forums/en-US/bae9fa8f-f602-4533-97fe-9b2bc9bb800d/powershell-how-to-reset-domain-account-password-for-multiple-domains?forum=ITCG

【问题讨论】:

  • 请求修改密码的用户是否有权限为其他域的其他用户修改密码(报错提示没有)?
  • 密码更改应向需要更改的帐户本身请求并使用旧/新密码。
  • 是的,这是正常的建议。
  • 基本上我有用户和旧密码,我可以 RDP 到该域上的服务器 2012。我的系统在不同的域上。问题是 AD PowerShell 模块未安装在 2012 服务器上,我正在尝试从我的系统中安装它。
  • @user1781482,如果您可以 RDP 到不同域上的服务器,这并不一定意味着您是域管理员。

标签: windows powershell active-directory


【解决方案1】:

当前域中的当前用户显然没有权限更改其他域中用户的密码,这意味着您需要向Set-ADAccountPassword cmdlet 提供其他凭据(请参阅-Credential)。

试试:

$Password = ConvertTo-SecureString "PlainTextPassword" -AsPlainText -Force $oldPassword
$Credential = New-Object System.Management.Automation.PSCredential ("$domain\$userName", $Password)
Set-ADAccountPassword -Credential $Credential -Server $domain -Identity $userName -OldPassword $oldPassword -NewPassword $newPassword
#                     -----------------------

在示例中,我假设用户有权更改(其自己的)密码,否则您将需要提供其他凭据,例如另一个域的域管理员凭据。这可能只是 OtherDomain\YourAccountName)

【讨论】:

  • 应该也加密$newPassword,然后它对我有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多