Exchange で使用されていない配布グループを見つけて削除する方法 (オンプレミスとオンライン)
使われていない配布グループを見つけるのは本当に大変です。特に、ユーザーログオンのように「最終使用日」の属性が明確に存在しないためです。さらに、これらのグループの中には忘れ去られたまま放置され、GAL を乱雑にしたり、単にスペースを占有したりするものもあります。そのため、ここでは主に PowerShell を使用します。これは、ローカルの Exchange Server でも Microsoft 365 の Exchange Online でも同じです。ここでのポイントは、特に整理整頓を目的とする場合、メンバーがいないグループ (おそらく放棄されている)、または長期間メールを受信していないグループ (つまり、もう使われていないグループ) を特定することです。もちろん、Exchange は最終メールの送信日を直接追跡しないため、このアプローチは少々ハック的ですが、十分に効果的です。—
PowerShell を使用して Exchange 内の空の配布グループを一覧表示する
配布グループにメンバーがいない場合は、おそらく不要なグループになっているでしょう。ある設定ではうまくいきましたが、別の設定では…あまりうまくいきませんでした。それでも、明らかに使われていないグループを特定するための最初のステップとしては有効です。なぜこれが役立つのか:空のグループが直接表示されます。必ずしも非アクティブであるとは限りませんが、おそらくもう必要ないことの良い指標となります。これを実行すると、メンバーがいないグループの一覧が表示されるので、クリーンアップが容易になります。これらのグループは、古いプロジェクトやチームの再編で残ったものである場合があります。これを実行する際は、PowerShell 経由で Exchange 環境に接続していることを確認してください。Exchange Server の場合は、Exchange 管理シェルを開くか、リモートで接続することになります。Exchange Online の場合は、Exchange Online PowerShell モジュールが必要で、`Connect-ExchangeOnline` で接続します。開始するためのコマンドは次のとおりです:powershell Get-DistributionGroup –ResultSize Unlimited | Where-Object { (Get-DistributionGroupMember –Identity $_. Name –ResultSize Unlimited).Count -eq 0 } | Select-Object Name, PrimarySmtpAddress `Get-DistributionGroupMember` 部分はメンバーを取得します。値が0の場合、そのグループはもう必要ないか、構成が間違っている可能性があります。大量のグループがある場合、このコマンドは多少遅くなる可能性がありますが、試してみる価値はあります。動的配布グループの場合は、以下のコマンドで同様の操作を実行できます。powershell Get-DynamicDistributionGroup -ResultSize Unlimited | Where-Object { (Get-Recipient -RecipientPreviewFilter (Get-DynamicDistributionGroup -Identity $_. Identity).RecipientFilter).Count -eq 0 } | Select-Object Name, PrimarySmtpAddress 完璧ではありませんが、静的グループと動的グループの両方で目的を達成できます。—
Exchange Serverで非アクティブな配布グループを見つける方法
ここからが少し厄介です。Exchange は、メッセージ追跡を明示的に確認しない限り、グループのアクティビティを記録しません。しかし、これは実際には非常に有益な情報です。なぜなら、しばらくグループにメールが届いていない場合は、グループが機能していない可能性があるからです。これが役立つ理由:メンバーシップだけでなく、メールトラフィックに基づいて、あまり使用されていないグループを特定できます。ただし、ある程度のログ分析が必要になります。通常は次のようにします。`Get-MessageTrackingLog` を使用します。ログをスキャンして、過去90日間程度にグループに送信されたメールを検索できます。例:powershell Get-MessageTrackingLog -Start (Get-Date).AddDays(-90) -ResultSize unlimited -Recipients “
Microsoft 365 (Exchange Online) で非アクティブな配布リストを特定する
クラウドは少し異なります。メッセージログの代わりに、Exchange 管理センター または PowerShell のメッセージトレースを使用します。問題は、ネイティブのメッセージトレースは10日間しか記録されないため、非アクティブな評価には不十分だということです。メリット:グループが最近メールを受信したかどうかを確認できるため、過去1か月ほどのアクティビティの兆候が分かります。まず、PowerShell セッションに接続します: powershell Connect-ExchangeOnline 次に、メールアクティビティを確認するために、履歴検索を開始します: powershell foreach ($group in Get-DistributionGroup) { Start-HistoricalSearch -ReportTitle $group. PrimarySmtpAddress ` -StartDate 04/20/2023 -EndDate 06/20/2023 ` -ReportType MessageTrace ` -RecipientAddress $group. PrimarySmtpAddress ` -NotifyAddress [email protected] } 注: このコマンドには 24 時間あたり 250 回の検索という制限があるため、一度にいくつかのグループに対して実行するか、スクリプトを賢く作成するとより実用的です。 完了したら、結果を確認します: powershell Get-HistoricalSearch “Global Admin DL” レポートがない場合、または `Rows` カウントが 0 の場合、おそらく過去 90 日間に誰もグループにメールを送信していないことを意味します。使われていないと思われる場合は、無効化または削除できます。また、アクティビティインサイトが統合された、より最新のMicrosoft 365グループに切り替えることもできます。—
まとめ
- `Get-DistributionGroup` + `Get-DistributionGroupMember` を使用して、グループが空かどうかを確認します。
- 電子メール ログをスキャンして、特に Exchange Server 上でグループが引き続きメッセージを受信しているかどうかを確認します。
- アクティビティを確認するには、Microsoft 365 のメッセージ追跡または履歴検索を使用します。
- 特に大規模な環境を管理する場合は、リストをエクスポートして比較することを忘れないでください。
- 非アクティブ化を確認した後は、非アクティブ化または削除 (`Remove-DistributionGroup` 経由) が最後の手順になります。
まとめ
使われていないExchangeグループを削除するのには多少の手間がかかりますが、これらの方法を使えば、不要なグループを見つけるのがずっと簡単になります。設定によっては、メンバーもメールアドレスもゼロのまま何ヶ月も放置されているグループが見つかるかもしれません。そのようなグループはもう必要ないことは明らかです。削除する前には特に注意が必要です。特に動的グループや、サブシステムがグループに依存しているグループの場合はなおさらです。必ず二重チェックをしてください。これで、誰かのために数時間もかけて探し回る手間が省けるでしょう。念のため、事前にリストのバックアップまたはエクスポートを行ってください。