Microsoft 365 グループとチームのメンバーシップ レポート スクリプトのアップグレード
Microsoft 365 グループ レポート スクリプトを Azure AD からグラフ SDK に移動する
2 年前、私は Microsoft 365 のグループとチームのメンバーシップを報告するスクリプトを作成しました。このスクリプトは、ユーザー アカウントを処理してメンバーであるアカウントを検索し、詳細レポートと概要レポートを生成します。
結局のところ、私はスクリプトの2つのバージョンを書くことになりました.1つはExchange Online PowerShellおよびAzure ADモジュールの標準のPowerShellコマンドレットを使用し、もう1つはGraph APIリクエストを使用します。Graph バージョンの方が高速ですが、Azure AD アプリの登録、アクセス許可への同意などが必要なため、グラフベースのスクリプトが気に入らない人もいます。
時間とテクノロジが進み、2023 年 6 月の非推奨が差し迫っているため、Azure AD モジュールを使用するスクリプトを確認する時が来ました。差し迫った言葉は、5か月半後に起こることについて使うのは奇妙な言葉のように聞こえますが、時間は過ぎ去り、常に何か違うことをする必要があります。時間があり、"古い" ゲスト アカウントを報告するようにスクリプトをアップグレードすることに既にコミットしていたので、コードに飛び込んで、Azure AD と Exchange Online コマンドレットを Microsoft Graph PowerShell SDK に置き換えることをお勧めします。
Azure AD アカウントとグループを処理するスクリプト
私は、Azure ADアカウントとグループに関係することすべてにSDKを使用するのが最善であると考えるようになりました。Exchange Online 管理モジュールには、Microsoft 365 グループに対して動作するコマンドレットが含まれているため、スクリプトでこれらのコマンドレットを使用することもできますが、スクリプトで 1 つのモジュールだけを使用する方が簡単です。
スクリプトの 2 つのバージョンは、GitHub から入手できます。
SDK へのアップグレードに関する変更
スクリプトをアップグレードするために行われた変更には、次のものがあります。
- でグラフに接続します コネクトグラフ、適切なアクセス許可を設定し、ベータ エンドポイントを選択します。
- 交換を交換してください 取得-組織 SDK を使用したコマンドレット Get-MG組織 テナント名を取得します。
- 取り替える Get-AzureADUser で Get-MgUser.で使用されるフィルター Get-MgUser ライセンス アカウントのみを取得します (会議室メールボックスとリソース メールボックスに使用されるゲストとアカウントを除く)。交換 Get-AzureADUser は、スクリプトをアップグレードするときにユーザーが行う最も一般的な変更の1つです。詳細については、この記事を参照してください。
- 取り替える 取得-統合グループ で Get-MgTeam をクリックして、チーム対応グループのリストを取得します。
- 取り替える 受信者の取得 グラフ付き メンバーオブ ユーザーがメンバーになっているグループのセットを検索するための API。ザ Invoke-MgGraphRequest コマンドレットは、Graph クエリを実行して、アプリを登録する必要がなくなります。
- 使う Get-MgGroupOwner を使用して、 で使用可能な ManagedBy プロパティからこの情報を取得するのではなく、グループ所有者を返します。 取得-統合グループ.
- コードのレビュー時に行った型のその他の変更。
このコードでは、以前と同じレポートが生成されます (HTML レポート – 図 1 – と 2 つの CSV ファイル)。すべての変更は配管にあります。水上では何も変わりません。

予測できないアップグレード作業
Microsoft Graph PowerShell SDK を使用するようにスクリプトをアップグレードするのにかかる時間を見積もることは困難です。要因は次のとおりです。
- スクリプト内のコードの行数。
- 置き換える Azure AD コマンドレットの数。
- コマンドレットを置き換えるのがいかに簡単か。マイクロソフトは、 コマンドレット マップ 開発者をガイドします。注意点は、推奨される SDK コマンドレットが対応する Azure AD コマンドレットとは異なる出力を生成する場合があるため、追加の処理が必要になることです。グループメンバーと所有者に対処することは、変更の可能性が高い例です。
一つ確かなことがあります。組織がインベントリとアップグレードを開始するのが早ければ早いそのスクリプトは、作業が早く完了し、Microsoft が Azure AD および MSOL モジュールを非推奨にしたときに、作業が時間の制約に陥る可能性は低くなります。非推奨は、コマンドレットが必ずしも動作を停止することを意味するわけではありません (ライセンス管理コマンドレットのように、動作を停止するものもあります)。サポートは終了し、非推奨のモジュールのさらなる開発は行われず、それは運用スクリプトに必要な状態ではありません。時間は衰退しています…
常に多くの変化があります。マイクロソフトがOffice 365全体で行うすべての更新に遅れないようにすることは課題です。購読する IT プロフェッショナル向け Office 365 eBook では、何が起こるのか、なぜ起こるのか、PowerShell モジュールの変更がテナントにとって何を意味するのかについて、毎月の洞察を得ることができます。
ディスカッション
コメント一覧
まだ、コメントがありません