You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中Get-Mailbox与Get-MailboxStatistics组合筛选失败求助

解决Exchange PowerShell筛选邮箱的问题

看起来你遇到的问题是在管道中组合Get-Mailbox和Get-MailboxStatistics的筛选条件时出现了冲突。让我帮你拆解问题并给出可行的解决办法:

问题原因

你最初的命令写法有两个核心问题:

  • Get-MailboxStatistics的-Filter参数是直接从Exchange服务器的统计数据源发起查询,并非对管道传来的邮箱对象做筛选,这会导致和前面Get-Mailbox的筛选逻辑脱节
  • 动态日期计算(get-date).adddays(-90)在-Filter参数中无法正常解析,因为这个参数不支持实时的PowerShell表达式计算

正确的命令写法

我们把筛选逻辑拆分,先获取目标邮箱的统计数据,再用Where-Object对结果做二次过滤,就能完美实现你的需求:

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

为什么这个写法有效

  • 第一步Get-Mailbox -Filter 'ExtensionCustomAttribute1 -eq $null' 先筛选出符合条件的邮箱,这部分你已经验证过是可行的
  • 第二步Get-MailboxStatistics获取这些邮箱的完整统计信息
  • 第三步Where-Object对已拿到的统计对象做精准筛选:
    • 排除已断开连接的邮箱(DisconnectDate -eq $null)
    • 只保留近90天内有登录记录的邮箱(LastLogonTime -gt (Get-Date).AddDays(-90))

这样既保证了逻辑清晰,也避免了参数冲突和表达式解析的问题。

内容的提问来源于stack exchange,提问作者jarred power

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:46:42