数组缺少参数

Array missing argument

最近我构建了以下代码以自动将禁用帐户移动到其他超过 30 天的 OU(处于禁用状态)

   $checkcurrentdate = Get-Date -Format dd/MM/yyyy
    $DateMaxTime = (Get-date).AddDays(-30)
    $getData = get-ADUser -Filter * -Properties * -SearchBase "OU=Disabled,DC=love,DC=donuts" `
    |where {$_.Description -like "LEFT*"} |select name,samaccountname,description
    
    $FinalResult = New-object System.Collections.ArrayList
    
    Foreach ($Data IN $getData){
    $DataPart = $null
    $UserdistinguishedName = $null
    $DataPart=$Data.description
    $DatePart= $DataPart.substring(5,10)
    $FinalDate = [datetime]::ParseExact($DatePart,'dd/MM/yyyy',$null)
    If ($FinalDate -lt $DateMaxTime  ){
     Write-Host "$($Data.samaccountname), $($Data.description) moved to deleteMe" 
     $User = $Data.samaccountname
     $UserdistinguishedName = (Get-ADUser -Identity $User).distinguishedName
     Move-ADObject -Identity $UserdistinguishedName -TargetPath "OU=DeleteMe,,DC=love,DC=donuts,"  #move user to disabled
     $FinalResult.Add(New-Object psobject -Property @{User=$User})
     }
    else{ 
    Write-Host "$($Data.samaccountname), $($Data.description) still in disabled"
    }
    }
    $list = $FinalResult |Select User |Out-String
    $list.gettype()

我启动了任务调度程序,它在自动化方面工作了几个月 但最近我发现了一个错误,如下所示:

Method invocation failed because [System.Management.Automation.PSObject] does not contain a method named 'op_Addition'.

我再次手动 运行 这段代码,错误消失了,但它卡住了我的代码,无法正常工作

我很好奇为什么会发生这种情况,如果发生此错误是否有任何方式提醒我?

可能这发生在行:

 Move-ADObject -Identity $UserdistinguishedName -TargetPath "OU=DeleteMe,,DC=love,DC=donuts,"  #move user to disabled
 $FinalResult += New-Object psobject -Property @{User=$User}

将这些行换成下面的行

$FinalResult = @()
#becomes...
$FinalResult = New-object System.Collections.ArrayList

$FinalResult += New-Object psobject -Property @{User=$User}
#becomes...
$FinalResult.Add(New-Object psobject -Property @{User=$User})

ArrayList 是可变的,可以更改。它总是很快,即使有 的成员。