数组缺少参数
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 是可变的,可以更改。它总是很快,即使有 吨 的成员。
最近我构建了以下代码以自动将禁用帐户移动到其他超过 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 是可变的,可以更改。它总是很快,即使有 吨 的成员。