我正在尝试通过我编写的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。
出现此错误的原因可能是什么?
答案 0 :(得分:0)
我不知道如何在AD中定义tempPassword
。但是,根据您收到的内容,这意味着您将获得一系列元素。
试试这个:
$password = $user.tempPassword[0]