問題
當您使用遠端 Exchange PowerShell 命令收件匣 ResultSize時,若要在貴組織中取得 Exchange Online 信箱的相關資訊,您會收到類似以下的錯誤訊息:
[Set-clientaccessserver = XXXXXXXXXCA014,BackEndServer = XXXXXXmb294. namprd05. .com,RequestId = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,TimeStamp =<日期><時間>]。命令中的資料超過會話設定所允許的最大值。 允許的最大值為500MB。 變更輸入、在遠端電腦上使用不同的會話設定,或變更會話設定的「PSMaximumReceivedObjectSizeMB」和「PSMaximumReceivedDataSizePerCommandMB」屬性
原因
當程式嘗試在一個會話中檢索大量資料時,就會發生此問題。 當您嘗試從超大型組織中檢索信箱資訊時,可能會發生這個問題。
避免
若要解決此問題,請執行要在伺服器上執行的命令,然後在每個命令之間新增暫停,以避免節流。
步驟1:從伺服器中檢索物件清單
使用Invoke 命令Cmdlet 來從伺服器執行命令。 例如:
$mailboxes = Invoke-Command -Session (Get-PSSession) -ScriptBlock {Get-Mailbox -ResultSize Unlimited | Select-Object -Property Identity,DisplayName}
步驟2:在每個命令之間新增暫停
使用 [啟動-睡眠] Cmdlet,在處理的每個物件之間新增暫停。 例如:
foreach($m in $mailboxes) {Get-MailboxPermission $m.Identity.ToString() | Where { ($_.AccessRights -eq "FullAccess") -and ($_.IsInherited -eq $False) -and -not ($_.User -like "NT AUTHORITY\SELF")}; Start-Sleep -Milliseconds 500}
其他相關資訊
如需詳細資訊,請參閱下列 Microsoft TechNet 資源:
是否仍需要協助? 前往 Microsoft Community。