このページの本文へ

FIXER Tech Blog - Azure

Azure AutomationでMicrosoft 365グループ作成を自動化する

2023年01月25日 10時00分更新

文● 神守 広介/FIXER

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「Azure Automationを使ったMicrosoft 365グループ作成」を再編集したものです。

前書き

 本記事ではAzure AutomationでのMicrosoft 365関連のPowerShellスクリプト実行について解説します。

 今回は一例としてMicrosoft 365グループの作成を実行します。

 Microsoft 365グループとは、TeamsやSharePointが利用できるグループのことです。

 この記事では下記の内容を実現します。

・Azure Automationを使ってPowerShellを実行する

・各種GraphAPIの権限をAutomationアカウント(Managed Identity)に付与する

・M365グループ作成をGraphのコマンドで実現する

1. Azure Automationアカウントを作成する

 Azure PortalからAzure Automationアカウントを作成します。

  作成をクリックして完了です。

2. AutomationにPowerShell モジュールを登録する

 下記モジュールを追加します。

・Microsoft.Graph.Authentication
・Microsoft.Graph.Groups
・Microsoft.Graph.Teams
・Microsoft.Graph.Users
・Microsoft.Graph.Users.Actions

3. AutomationアカウントのマネージドIDへ権限付与

 ユーザー権限を利用せずにAzure Automationアカウントの権限でスクリプトを実行するため、 Azure AutomationアカウントのマネージドIDに権限を付与します。

 まずはAzure PortalからマネージドIDの情報ををコピーします。

 取得する情報はAzure Automationアカウント>アカウント設定>IDまで遷移した先のオブジェクト(プリンシパル)IDです。

 次にローカル環境から下記のコマンドを実行して権限を付与します。

 今回はMicrosoft 365グループを作成するために必要な権限を設定しています。

4. Azure AutomationでRunbookを作成する

 後半戦です!

 Azure PortalのAzure Automationアカウントの管理画面に移動しましょう。

 Runbookを作成して下記スクリプトを登録後、テスト実行してみましょう。

 マネージドIDを使うと認証周りがすっきりしますね。

 正しくコマンドが動くと下記の画面が表示されます。MailNicknameが1件取得できていれば成功です。

補足:記事作成中に詰まったポイント

 Runbookでコマンドを実行する際にこんなエラーが出ました。むむ、Connect出来ていない。

 モジュールMicrosoft.Graph.Authenticationの一部のランタイムバージョンにおいて、このエラーが発生するようです。

 今回は1.9.6のモジュールを特定してインポートして解決しました。

 参考URL https://github.com/microsoftgraph/msgraph-sdk-powershell/issues/1439

 対象のモジュールは下記スクリプトで取得できます。

 ファイルが作成出来たらAzure PortalのAzure Automationアカウント>共有リソース>モジュール>モジュールの追加をクリック

 アップロード種別に「ファイルの参照」を選択、

 ZIPファイルを指定してインポートすればモジュール更新完了です。

5. 実行したいコマンドを登録する

 詰めに入ります。

 下記のスクリプトをRunbookに登録して実行しましょう。

 内容はMicrosoft 365グループを作成するスクリプトです。実行する場合は$groupDisplayNameから$descriptionを任意の値に修正して実行してください。

 実行してエラーが出なければ成功です。

 Microsoft 365管理センターなどからグループが作成されたことを確認しましょう。

おわり:この仕組みの使い道について

 今のままではスクリプトにパラメーターがハードコーディングされていて使い物になりません。

 下記を実現して自動化することで初めて本領を発揮します。

 1. 何かのトリガーから発火

 2. Runbook実行

 3. 結果(成功/失敗)を通知

 4. 作業ログを記録

 活用例についても別の記事で紹介しようと思います。

神守 広介/FIXER
株式会社FIXERにてCorporate IT業務をエンジョイしてます。

[転載元]
 Azure Automationを使ったMicrosoft 365グループ作成

カテゴリートップへ

この連載の記事