我有一个脚本,想监测用户 passwordlastset 属性,如果为空,重置用户密码,并将用户密码设置为默认密码 P@ssw0rd,并要求用户在第一次登陆时,重置密码。
脚本内容如下:
$pass = ConvertTo-SecureString -AsPlainText P@ssw0rd -Force
$user = Import-Csv -Path c:\user.csv
foreach ( $i in $user)
{
$password = Get-ADUser -Identity $i -Properties * | select passwordlastset
if ($password -ne $null)
{
Set-ADAccountPassword -Identity $i -Reset -NewPassword $pass
Set-ADUser -Identity $i -ChangePasswordAtLogon $true
$i
}
}
但运行该脚本时,报错:
Get-ADUser : 无法绑定参数“Identity”。无法将值“@{name=test3}”转换为类型“Microsoft.ActiveDirectory.Management.ADUser”。错误:“无法将“System.Management.Automation.PSCustomObject”类型的
“@{name=test1}”值转换为“Microsoft.ActiveDirectory.Management.ADUser”类型。”
这个是怎么回事?我脚本哪里写错了吗?
user.csv 内容:
name
test1
test2
test3
把
Get-ADUser -Identity $i -Properties * | select passwordlastset
改為下列內容即可.
Get-ADUser -Identity $i.name -Properties * | select passwordlastset