如何删除错误。我的 notcontains 逻辑有缺陷

How do I remove Error. My logic for notcontains is flawed

我建了一个对象数组,如果有错误有兴趣记录一下。 对象数组开始是这样的

[array]$UsersResults = $GSuspend | ForEach-Object {
    gam update user $_.primaryEmail archived on | Out-Null
    [PSCustomObject]@{
        Email = $_.primaryEmail
        Error = $LASTEXITCODE
    }
}

我只是想知道是否有任何错误不为 0。

如果每个错误都是 0。稍后在我的脚本中,我从数组中删除了错误列,但我很确定下面的逻辑是有缺陷的。

If (-not ($UsersResults.error -notcontains 0)) {

有没有一种简单的方法可以让我找到大于 0 的错误编号,或者如果发现错误则仅将错误添加到脚本顶部的数组中?

使用Where-Object根据Error列的值过滤数组:

$failedResults = $UsersResults |Where-Object Error -ne 0

if($failedResults.Count -gt 0){
    Write-Warning "'$($failedResults.Count)' errors occurred!"
}
else {
    Write-Host "No errors occurred!"
}

如果您希望结果只是电子邮件地址的平面数组,请使用 $UsersResults.Email$UsersResults |ForEach-Object Name。如果您想要一个保留 Email 属性 但没有 Error 属性 的新对象数组,请使用 $UsersResults |Select-Object Email