通过PowerShell批量更改AD中用户的密码

时间:2014-12-23 07:38:15

标签: powershell active-directory

我正在尝试通过我编写的powershell脚本更改AD中多个用户的密码。在我的AD中,我添加了一个名为tempPassword的属性,它带有unicode字符串,其中包含所有用户的随机生成密码。我想将此tempPassword属性编写为用户密码。为此,我的powershell脚本是:

$users = Get-ADUser -properties * -Filter *
foreach($user in $users)
{
    $password = $user.tempPassword
    $secure_string_pwd = convertto-securestring -String $password -asplaintext -force
    Set-ADAccountPassword -Identity $user -NewPassword $secure_string_pwd
} 

当我执行此脚本时,出现以下错误:

ConvertTo-SecureString : Cannot convert 'Microsoft.ActiveDirectory.Management.ADPropertyValueCollection' to the type 'S
ystem.String' required by parameter 'String'. Specified method is not supported.

密码包含数字,小写和大写字符,长度均为8。

出现此错误的原因可能是什么?

1 个答案:

答案 0 :(得分:0)

我不知道如何在AD中定义tempPassword。但是,根据您收到的内容,这意味着您将获得一系列元素。

试试这个:

$password = $user.tempPassword[0]