新しい 1.5 TB の制限に近い Alternate オンライン アーカイブ メールボックスを検索する方法
ごく数テラバイトプラスのアーカイブが使用されています
マイクロソフトの決定 2021 年 11 月 1 日から、自動拡張アーカイブに対して新しい 1.5 TB の制限を適用する、私が起こるだろうと思ったよりも多くの関心を引き起こしました。「底なしアーカイブ」を持っているという考えは素晴らしい機能のように思えますが、実際の状況は比較的少ないです。 3億奇数百万 Office 365 ライセンスユーザー アーカイブ メールボックスは、テラバイトに近い場所に配置されます。
PowerShell を使用して大規模な拡張アーカイブを識別する
Practical365.com で公開したメモには、アーカイブが有効なメールボックスの状態を報告する PowerShell スクリプトが含まれています。その後、新しい 1.5 TB の制限に達する危険性があるメールボックスを報告するようにスクリプトを簡単に変更できるかどうか尋ねられました。
良いアイデアは、私は考え、仕事に設定します。完全なスクリプトは GitHub からダウンロード可能をクリックすると、処理の流れがここにあります。
- 1.5 TB (1649267441664) のバイト数と警告レベルを保持する変数を宣言します。私は良い警告しきい値として90%を選択しました。低い値または高い値を選択できます。
- アーカイブを含むメールボックスを検索します。これはサーバー側のフィルタです。 ゲットエキソメールボックスなので、かなり速いです。次に、クライアント側のフィルタを使用して、展開可能なアーカイブを使用しないメールボックスを削除します。
- メールボックスのサイズを計算します。この場合、Microsoft は全面的なアプローチを取っており、回復可能なアイテムを含む完全なメールボックスの内容に対して 1.5 TB の制限を評価します。これは、"非ゴミ箱" フォルダーのみをカウントする通常のメールボックス格納域の制限とは異なっています。
- 各メールボックスが警告の制限内にあるかどうかを確認し、true の場合はステータス メッセージを作成します。
- 私はアーカイブの1日の成長率を評価する何らかの方法を望んでいました。PowerShell からこの数値を生成する明白な方法はないので、メールボックスの作成日を使用して、使用日数を計算します。次に、日数を現在のアーカイブ サイズに分割して、1 日の平均成長率を計算します。それは粗雑なメカニズムですが、何もないよりはましです。
- また、毎日の平均成長率を使用して、アーカイブが制限に達するまでの日数を見積もります。ほとんどのメールボックスでは、これは大きな数値です。
メールボックスの主な処理ループを次に示します。
$Report = [System.Collections.Generic.List[Object]]::new() ForEach ($M in $ExMbx) { $Status = $Null Write-Host "Processing mailbox" $M.DisplayName [int]$DaysSinceCreation = ((New-TimeSpan -Start ($M.WhenCreated) -End ($Now)).Days) $Stats = Get-ExoMailboxStatistics -Archive -Identity $M.UserPrincipalName [string]$ArchiveSize = $Stats.TotalItemSize.Value [string]$DeletedArchiveItems = $Stats.TotalDeletedItemSize.Value [long]$BytesInArchive = $Stats.TotalItemSize.Value.ToBytes() [long]$BytesInRecoverableItems = $Stats.TotalDeletedItemSize.Value.ToBytes() [long]$TotalBytesInArchive = $BytesInArchive + $BytesInRecoverableItems # Check if archive size is within 10% of the 1.5 TB limit - the size that counts is the combination of Recoverable Items and normal folders If ($TotalBytesInArchive -ge $TBBytesWarning) { Write-Host ("Archive size {0} for {1} is within 10% of 1.5 TB limit" -f $ArchiveSize, $M.DisplayName ) $Status = "Archive within 10% of 1.5 TB limit" } [long]$BytesPerDay = $TotalBytesInArchive/$DaysSinceCreation [long]$NumberDaysLeft = (($TBBytes - $TotalBytesInArchive)/$BytesPerDay) $BytesPerDayMB = $BytesPerDay/1MB $GrowthRateDay = [math]::Round($BytesPerDayMB,4) $TotalArchiveSizeGB = [math]::Round(($TotalBytesInArchive/1GB),2) $ReportLine = [PSCustomObject][Ordered]@{ Mailbox = $M.DisplayName UPN = $M.UserPrincipalName Created = $M.WhenCreated Days = $DaysSinceCreation Type = $M.RecipientTypeDetails "Archive Quota" = $M.ArchiveQuota.Split("(")[0] "Archive Status" = $M.ArchiveStatus "Archive Size" = $ArchiveSize.Split("(")[0] "Archive Items" = $Stats.ItemCount "Deleted Archive Items Size" = $DeletedArchiveItems.Split("(")[0] "Deleted Items" = $Stats.DeletedItemCount "Total Archive Size (GB)" = $TotalArchiveSizeGB "Daily Growth Rate (MB)" = $GrowthRateDay "Days Left to Limit" = $NumberDaysLeft Status = $Status } $Report.Add($ReportLine) } #End ForEach
データの検討
このスクリプトは、メールボックス データを含む CSV ファイルを生成します。私はまた、を使用して画面上のデータを出力するのが好きです。 アウトグリッドビュー を使用して、結果に関する洞察を得ることができます。たとえば、図 1 は、テナント内のメールボックスからの出力を示しています。ご覧のとおり、18.07 MB/日の成長率で、現在の9.129 GBから1.5 TBに達するには84,228日かかります。なんて安心なんだろう。

PowerShell の柔軟性の例
このスクリプトは、PowerShell が Microsoft 365 テナント管理者に洞察を提供する方法の例として機能します。ほとんどのアーカイブは 100 GB 未満で、その有効期間中に新しい 1.5 TB の制限に達しないため、運用上の意味でスクリプトを価値あるものと見つけるテナントはほとんどいないと思います。しかし、数行のコードで質問に答えることができるのは常に良いことです。
Office 365 が実際にどのように機能するか (PowerShell とアーカイブ メールボックスを含む) について、サブスクリプションを作成して、継続的に IT 担当者向け Office 365 電子書籍。毎月の更新プログラムでは、Office 365 エコシステム全体で重要な情報を購読者に通知します。
関連
ディスカッション
コメント一覧
まだ、コメントがありません