如何在Powershell where-object中使用和或过滤器

时间:2019-07-31 21:04:13

标签: powershell

我正在尝试获取AD用户对象的属性列表。除了应用“ where-object”过滤器外,大多数脚本都可以运行。我想让所有满足以下条件的用户:LastLogonDate超过75天(此功能),已启用(此功能)并且具有以下任一功能-帐户将来会过期或永不过期。 $ when定义正确。

我尝试了许多选项,但通常没有任何输出,或者输出中没有一个。

| Where-Object{($_.lastlogondate -le $When -AND $_.enabled -eq $True) -AND Where-Object($_.AccountExpirationDate -gt (Get-Date) -OR $_.AccountExpirationDate -eq 0)} |

我应该会看到将来有到期日期的帐户,并且这些帐户不会过期,但是我在使用“ This AND this AND(this OR this)”时遇到了问题

1 个答案:

答案 0 :(得分:1)

代码中多余的Where-Object应该引发错误...

    Where-Object {
            $_.lastlogondate -le $When -AND 
            $_.enabled -eq $True -AND 
            ($_.AccountExpirationDate -gt (Get-Date) -OR $_.AccountExpirationDate -eq 0)
    }

如果您的输入正确,这应该可以工作。