Exchange Online の PowerShell で受信者の取得にページングで利用する

Exchange Online で Remote PowerShell をご利用いただく際に受信者オブジェクトについて取得して処理をするということが多々あるかと思います。 この時対象となるオブジェクトが多数となると、一度に処理を実行しようとするとエラーになる場合があります。このような場合にはページングによって小分けにデータを取得して処理することで回避できることがあります。目安としては 1000 以上の受信者を処理するのであればページングを検討いただくと良いかと思います。 以下では Get-Recipient でページングを利用する方法についてご紹介いたします。 ※ この機能は現状 Exchange Online のみでご利用いただけます。 以下のシンプルな function をサンプルとして用意しました。 ここでのページングの主なポイントは Get-Recipient の使い方となり、ResultSize にページサイズを指定した上で、DisplayName でソートして、BookmarkDisplayName にブックマークを指定する点となります。 ブックマークは全体のどの一部分を取得したいのかを指定しています。そのためループする際にブックマークを更新することで最終的に全体を処理することになります。なお、ブックマークには DisplayName を利用するため、Select するプロパティにこれを含めます。他の任意のプロパティを含めていただいても問題ないです。以下のサンプルでは、ページングで取得した結果を Get-Mailbox へパイプして Name と AdminDisplayVersion を取得していますが、これはあくまでページングの結果を使った例となります。 サンプル ~~~~~~~~ function Get-RecipientByPaging {     [CmdletBinding()]     param(         [Parameter(Mandatory=$True)]         [int]$PageSize     )     $result = @()     $firstPage = $true     Do     {         #…