Powershellを利用してAzureADのグループ及びグループのメンバー取得をする際につまづいた部分、気になった点等をメモとして記載します。
事前準備(モジュール、AAD接続)
PowershellにてAzureAD関連の操作をするためにはモジュールのインストールとAzureADディレクトリへの接続が必要となります。
・モジュールのインストールとインポートは以下コマンドを実行します。 C:\Windows\system32> install-module azuread
C:\Windows\system32> import-module azuread
・ディレクトリへの接続は以下コマンドを実行します。
資格情報の入力を求められますので権限のある管理者アカウント等を利用して認証します。 C:\Windows\system32> Connect-AzureAD
Get-AzureADGroup,Get-AzureADGroupMember
AzureADのグループの情報、グループのメンバーの情報(一覧)を取得する際はGet-AzureADGroup,Get-AzureADGroupMemberを利用します。
その際にに気になった点は以下のような点となります。
- 共にObjectIdでの指定が基本:Get-AzureADGroup(Member) -ObjectId <String>
- Get-AzureADGroupは[-SearchString <String>][-Filter <String>]の指定が可能
その場合は以下のような形となる
また汎用的にパイプでつないでWhereを利用してのフィルタも可能Get-AzureADGroup -Filter "SecurityEnabled eq true"
Get-AzureADGroup -SearchString "表示名等"
Get-AzureADGroup -All $true | Where { $_.SecurityEnabled -eq $True }
- 上記Filterの真偽値の判定には小文字である必要がある(true/false:〇、True:×、$True:×)
- 一覧出力時にデフォルトでは100グループのみ出力される、全てを出力したい場合は
「-All <Boolean>」の指定が必要
※-All $true , -All:$true
- 上記より表示名等でグループとメンバーの一覧を取得する場合は以下のように一度グループを取得し、オブジェクトを変数に格納(またはパイプでの引き渡し)する形で対応する
$AzureADGroup = Get-AzureADGroup -All $true | Where-Object {$_.DisplayName -eq "表示名"}
Get-AzureADGroupMember -ObjectId $AzureADGroup.ObjectId
なお、ユーザー側からも所属しているグループの確認も可能となります。
その場合は「Get-AzureADUserMembership」を利用します。
但し、Get-AzureADGroupMemberもObjectIdでの指定が必要となるので必要に応じてGet-AzureADUser等のコマンドと組み合わせます。
ユーザーが所属しているセキュリティグループを出力したい場合Get-AzureADUserMembership -ObjectId ”オブジェクトID” | Where { ($_.SecurityEnabled -eq $true) -and ($_.MailEnabled -eq $false) }
参考URL
・Get-AzureADGroup
https://learn.microsoft.com/ja-jp/powershell/module/azuread/get-azureadgroup?view=azureadps-2.0
・Get-AzureADGroupMember
https://learn.microsoft.com/ja-jp/powershell/module/azuread/get-azureadgroupmember?view=azureadps-2.0
簡単ですがPowerShellでのAAD操作での留意事項を記載してみました。
コメント