使用Get-MessageTrace查询周日消息时Count属性无输出问题
问题原因与解决方案
这个问题是PowerShell的常见行为导致的:
- 当
Get-MessageTrace返回多条消息时,结果会自动包装为数组,数组自带.Count属性,因此能正常返回数量。 - 当仅返回单条消息时(比如你遇到的周日场景),结果是单个对象而非数组,单个对象没有
.Count属性,直接调用就会输出空白。
可行的解决办法
方法1:强制将结果转为数组
用@()包裹Get-MessageTrace的调用,强制把结果转为数组结构,无论返回1条还是多条消息,都能正常读取.Count:
$inboundMessages = @(Get-MessageTrace -Start $objStartDTcount1 -End $objEndDTcount1 -RecipientAddress $mailbox) $inboundMessageCount = $inboundMessages.Count $inboundMessageCount
方法2:使用Measure-Object统计数量
你已经验证过这个方法有效,直接通过管道传递给Measure-Object获取计数:
$inboundMessages = Get-MessageTrace -Start $objStartDTcount1 -End $objEndDTcount1 -RecipientAddress $mailbox $inboundMessageCount = ($inboundMessages | Measure-Object).Count $inboundMessageCount
内容的提问来源于stack exchange,提问作者Tester123
相关产品推荐
相关产品推荐

