嗨,我试图通过交换(和在线交换)执行脚本来查找主题中的共享邮箱
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/
答案 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
存储最终查询结果,您只需键入变量名即可访问该查询结果。在处理每个对象时输出(与我们在此处所做的不同)非常缓慢。