Azure ADでメンバーを出力するお話


1 はじめに

業務の都合上、オンプレのADからAzureに移行したい。

出力はPowershellで実施する。

やりたいことは既存メンバーの特定グループへの権限追加。

その為に、現在のObject-IDが必要なので出力する。

がデフォルトで100人までしか出力できない。これは困った!

という事象の解決方法。


2 使用環境準備

環境は2.0以降を推奨。

できることが増えているので。

Azure Active Directory でグループを管理するための PowerShell の例

https://docs.microsoft.com/ja-jp/azure/active-directory/users-groups-roles/groups-settings-v2-cmdlets

上記リンクを参考にインストール、インポートを実施。


PS C:\Windows\system32> install-module azuread

PS C:\Windows\system32> import-module azuread


環境構築は完了。

念の為Ver確認。

PS C:\Windows\system32> get-module azuread

以下の文字列が返ってきてVerがわかります。

ModuleType Version Name ExportedCommands

---------- ------- ---- ----------------

Binary 2.0.1.16 AzureAD {Add-AzureADApplicationOwner, Add-AzureADDeviceRegisteredO...


3 実施手順


 3-1 PowerShellを起動しAzureADに接続

Connectします。

PS C:\Windows\system32> Connect-AzureAD


3-2 ログインの画面が出るので資格情報を入力。

アドレスとパスワードです。

Powershellの画面に戻ります。


3-3 インポートするグループがあることを確認。

PS C:\Windows\system32> get-azureadgroup

返り値として一覧が出力されることを確認。

(環境次第ですがもっといっぱい出ます)

ObjectId DisplayName Description

-------- ----------- -----------

aaaaaaaa-bbbb-cccc-dddd-xxxxxxxxxxxx test-group テスト用Group

ここのObjectIdを控えます。使うので。


3-4 ユーザー情報を出力。

get-azureadgroup -SearchString "test-group" | Get-AzureADGroupMember

ここで詰まりました。

何度やっても100人しか出ない。。。

調べたところAllの引数を入れれば使えるとのこと。

やったろうやんけ。

と思ったけどエラーコードバンバン返ってくる。

よくよく見たらAllの引数渡した時にプール値が必要らしい。今回は1で設定。

デフォルト100っていう制限もなんとかしてもらいたいもんだが。。。仕方ない。

Get-AzureADGroup -ALL 1 -Filter "DisplayName eq 'test-group'" | Get-AzureADGroupMember -ALL 1

$Trueでも実施可能。$True=1みたいなもんですな。

Get-AzureADGroup -ALL $True -Filter "DisplayName eq 'test-group'" | Get-AzureADGroupMember -ALL $True

返り値はこんな感じ。

ObjectId DisplayName Description

-------- ----------- -----------


11111111-2222-3333-4444-xxxxxxxxxxxx 中原 一也 xxxxxx.xxxxxxxxx@aaaaa.co.jp Member

ObjectId

ユーザーのObject-Id 紐付けの際に使用します。

DisplayName

ユーザー名です。

Description

メールアドレスです。

一番右は原則Memberかと思います。

場合によってはOwnerのパターンもありますが。

これで全員分のObject-Idが出力できたのでそれを紐付け。

Add-AzureADGRoupMember -objectId aaaaaaaa-bbbb-cccc-dddd-xxxxxxxxxxxx -RefObjectId 11111111-2222-3333-4444-xxxxxxxxxxxx

こんな感じでいい感じに整型できたら流し込みます。


4 参考にしたサイト

Managing Office 365 Groups Using Azure AD Powershell V2

https://drewmadelung.com/managing-office-365-group-using-azure-ad-powershell-v2/


まとめ

Azureとは言え、Powershellみが強いなと思いました。

ただ、固有のConnectする時のGUIとかあるのでフルCLIでやりたい場合は別の方の記事を参考にするといいでしょう。

Blogもやってます。基本アウトプットはそっちでやろうと思ってます。

https://natsuo.jp/