Exchange获取活动邮箱的最近活动不早于

时间:2019-06-11 10:41:34

标签: powershell exchange-server e

嗨,我试图通过交换(和在线交换)执行脚本来查找主题中的共享邮箱

Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails SharedMailbox | Where {(Get-MailboxStatistics $_.Id
entity).LastLogonTime -gt (Get-Date).AddDays(-60)} | Sort -Property @{e={( Get-MailboxStatistics $_.Identity).LastLogonTime}} -Descending | Select-Object DisplayName,@{n="LastLogonTime";e={(Get-Mailbo
xStatistics $_.Identity).LastLogonTime}}|Where-Object {($_.PrimarySMTPAddress -like "*.uk*")}

我遇到错误

  

管道未执行,因为管道已在执行。   管道不能同时执行。       + CategoryInfo:操作已停止:(Microsoft.Power ... tHelperRunspace:ExecutionCmdletHelperRunspace)[],   PSInvalidOperationException       + FullyQualifiedErrorId:RemotePipelineExecutionFailed

我无法识别错误...您能帮忙吗?

我在以下来源中使用了

http://www.thatlazyadmin.com/get-exchange-active-mailboxes/

https://www.codetwo.com/admins-blog/list-of-active-mailboxes-powershell/

1 个答案:

答案 0 :(得分:1)

我已经重新排列了查询的各个部分,以使其正常工作。

$Output = Foreach ($mailbox in (Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails SharedMailbox |
    Where-Object {$_.PrimarySMTPAddress -like "*.uk*"})) {
        $stats = $null
        $stats = Get-MailboxStatistics $mailbox.UserPrincipalName |
            Where-Object {$_.LastLogonTime -gt (Get-Date).Adddays(-60)}
        $stats | Sort-Object LastLogonTime -Descending |
            Select-Object DisplayName,LastLogonTime
}
$Output # Outputs to the console

这应该更快,因为它减少了运行Get-MailboxStatistics的次数。 $Output存储最终查询结果,您只需键入变量名即可访问该查询结果。在处理每个对象时输出(与我们在此处所做的不同)非常缓慢。