Exchange Online で Get-Mailbox –ResultSize Unlimited コマンドを実行すると "コマンドのデータが、セッション構成で許可された上限を超えています" というエラーが表示される


現象
リモート Exchange PowerShell で Get-Mailbox -ResultSize Unlimited コマンドを実行し、組織の Exchange Online メールボックス情報を取得しようとすると、以下のようなエラー メッセージが表示されます。
“[ClientAccessServer=XXXXXXXXXCA014,BackEndServer=XXXXXXmb294.namprd05.prod.outlook.com,RequestId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,TimeStamp=<Date><Time>] The data in the command exceeded the maximum permitted by the session configuration. The allowed maximum is 500MB. Change the input, use a different session configuration, or change the "PSMaximumReceivedObjectSizeMB" and "PSMaximumReceivedDataSizePerCommandMB" properties of the session configuration on the remote computer”

([ClientAccessServer=XXXXXXXXXCA014,BackEndServer=XXXXXXmb294.namprd05.prod.outlook.com,RequestId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,TimeStamp=<Date><Time>] コマンドのデータが、セッション構成で許可された上限を超えています。許可されている上限は 500MB です。入力内容を変更するか、別のセッション構成を使用するか、リモート コンピューターのセッション構成の "PSMaximumReceivedObjectSizeMB" および "PSMaximumReceivedDataSizePerCommandMB" プロパティを変更してください。)
原因
この問題は、1 セッション中に大量のデータ抽出を試行し、処理がタイムアウトする場合に発生します。また、大規模組織からメールボックス情報を取得する際にも発生する場合があります。
回避策
この問題を回避するには、サーバーで以下のコマンドを実行し、各コマンド間に一時停止を追加して調整が実行されないよう構成します。

手順 1: サーバーからオブジェクト一覧を取得する

サーバーで Invoke-Command コマンドレットを実行します。例:
$mailboxes = Invoke-Command -Session (Get-PSSession) -ScriptBlock {Get-Mailbox -ResultSize Unlimited | Select-Object -Property Identity,DisplayName}

手順 2: 各コマンド間に一時停止を追加する

Start-Sleep コマンドレットを使用し、処理中の各オブジェクト間に一時停止を追加します。例:
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 資料を参照してください。

その他トピックは Office 365 コミュニティ Web サイトを参照してください。
プロパティ

文書番号:2922668 - 最終更新日: 04/19/2016 05:42:00 - リビジョン: 3.0

Microsoft Exchange Online

  • o365 o365a o365e o365p o365m o365022013 KB2922668
フィードバック