【发布时间】:2019-08-01 05:47:14
【问题描述】:
我正在尝试获取 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)”的问题
【问题讨论】:
-
你不能像这样链接
Where-Object。 [grin] 您需要在 one W-O 阶段使用一组复合标准。 -
另外,像这样在管道中调用
Get-Date会减慢速度 - 每个项目都会调用一次。 [grin] 在您进入管道之前计算该值。
标签: powershell