コマンド内のデータが、-ResultSize Unlimited の実行時にセッション構成エラーによって許可される最大値 Get-Mailbox 超えました

元の KB 番号: 2922668

現象

リモート Exchange PowerShell コマンド Get-Mailbox -ResultSize Unlimited を使用して、organization内Exchange Onlineメールボックスに関する情報を取得すると、次のようなエラー メッセージが表示されます。

[ClientAccessServer=XXXXXXXXXCA014,BackEndServer=XXXXXXmb294.namprd05.prod.outlook.com,RequestId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,TimeStamp=<Date><Time>] コマンドのデータがセッション構成で許可されている最大値を超えました。 許可される最大値は 500 MB です。 リモート コンピューター上のセッション構成の入力の変更、別のセッション構成の使用、または "PSMaximumReceivedObjectSizeMB" プロパティと "PSMaximumReceivedDataSizePerCommandMB" プロパティの変更

原因

この問題は、1 つのセッションで大量のデータを取得しようとするときにプロセスがタイムアウトしたときに発生します。 この問題は、非常に大きなorganizationからメールボックス情報を取得しようとすると発生する可能性があります。

回避策

この問題を回避するには、コマンドを実行してサーバー上で実行し、各コマンドの間に一時停止を追加して調整を防ぎます。

手順 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 リソースを参照してください。

さらにヘルプが必要ですか? Microsoft コミュニティを参照してください。