iT邦幫忙

0

Get-ADUser 无法转换类型

我有一个脚本,想监测用户 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
jeles51 iT邦研究生 3 級 ‧ 2020-09-07 08:56:13 檢舉
您的 c:\user.csv 列出幾行來看看~
as900 iT邦研究生 5 級 ‧ 2020-09-07 09:07:58 檢舉
user.csv 内容已经附加到帖子里面了。

1 個回答

0
jeles51
iT邦研究生 3 級 ‧ 2020-09-07 09:14:27
最佳解答

Get-ADUser -Identity $i -Properties * | select passwordlastset

改為下列內容即可.

Get-ADUser -Identity $i.name -Properties * | select passwordlastset
as900 iT邦研究生 5 級 ‧ 2020-09-07 09:34:51 檢舉

可以了,谢谢

我要發表回答

立即登入回答