管道Get-mailbox -filter到Get-mailboxstatistics -filter

时间:2018-03-21 20:52:55

标签: powershell exchange-server

我正在尝试使用两个命令过滤列表 - 按属性过滤,然后按“未断开连接”和“在过去90天内登录”进行过滤。 尝试这样的事情,但它不起作用。

  

get-mailbox -filter'ExtensionCustomAttribute1 -eq $ null'|   Get-MailboxStatistics -filter {DisconnectDate -eq $ null -and   LastLogonTime -gt(获取日期).adddays(-90)}

当我跑步时;

  

get-mailbox -filter'ExtensionCustomAttribute1 -eq $ null'|   得到-MailboxStatistics

我得到了我正在寻找的信息的第一部分结果 - 我无法进一步过滤此列表。即添加 -filter 不起作用。

结果是:

Results of code

2 个答案:

答案 0 :(得分:0)

Technet文档指定必须使用单引号来完成过滤器,而不是大括号。

-Filter 'DisconnectDate -ne $null'

这里给出的例子是:https://technet.microsoft.com/en-us/library/bb124612(v=exchg.160).aspx

我在过滤AD用户之前遇到过这个问题。我必须假设他们在过去的某个时间改变了他们的标准。

如果你没有成功,你可以尝试使用where-object过滤到正确的...即:

Get-MailboxStatistics | ?{$_.DisconnectDate -ne $null}

如果有效,显然要使用前者。

答案 1 :(得分:0)

我说你问题的最佳解决方案是通过前面所述的where-object进行过滤。

以下内容应该适合您,它尚未经过测试但应该是正确的。

Get-Mailbox -Filter 'ExtensionCustomAttribute1 -eq $null' | Get-MailboxStatistics | where {$_.DisconnectDate -eq $null -and $_.LastLogonTime -gt (Get-Date).AddDays(-90)}