1. はじめに
AzureADへの操作にはGUIとしてAzureポータルやOffice365ポータルがありますが、AzureAD PowerShellによりスクリプトからも操作することが可能です。
備忘録ですがAzureAD PowerShellのコマンドレットについてメモを残しておきたいと思います。まだ作成中なので随時更新予定です。
2. 概要
AzureAD PowerShellのモジュールは2種類存在しますが、今回は2の方を利用します。
1. MSOnlineモジュール(AzureADv1)
2. AzureAD for Graphモジュール(AzureADv2)
(1は主にOffice365の操作に使う,AzureADv2モジュールで対応しないコマンドの実行。またAzureADv2 previewなるものもありますが割愛します)
AzureADに対してカスタムドメイン(WindowsServerADドメイン)を追加してディレクトリ同期している場合、AzureADのアカウントだけでなくWindowsServerADのアカウントでも認証することができます。
ただMSOnlineモジュールの場合、カスタムドメインのユーザアカウントで認証できないようです(環境依存か)。カスタムドメイン内のアカウントで認証する場合にはAzureADv2(AzureAD for Graph)が必要になります。
3. AzureADv2モジュールのインストールと接続
3-1. WindowsServer2016でAzureADv2インストール
PowerShellを起動し以下を実行します。
Save-Module -Name AzureAD -Path "C:Program Files¥WindowsPowerShell¥Modules"
Install-Module -Name AzureAD
3-2. AzureADv2モジュールインポート/AzureAD接続
Import-Module -Name AzureAD
Connect-AzureAD
Connect-AzureADを行うとログインダイアログが出るのでADアカウントの資格情報を入力してサインインします。(Get-Credentialで完全にスクリプトにできるかは要確認)
4.アカウント操作系コマンドレット
4-1.ユーザアカウント属性情報の取得
$upn = "UserPrincipalName"
$user = (Get-AzureADUser -ObjectID $upn)
$user | Get-Member
$user | Select-Object -Property UserPrincipalName,Mail,DisplayName
Get-Memberコマンドレットでオブジェクトのプロパティ一覧を確認できます。
4-2.セキュリティグループのユーザ(UPN)一覧を取得
#$groupname = "mygroupname"
$group = Get-AzureADGroup -Filter "DisplayName eq '$groupname'"
$userlist = Get-AzureADGroupMember -ObjectId $group.ObjectId | FT UserPrincipalName
さらにユーザ一覧をCSVに出力する
$userlist | Select-Object -Property UserPrincipalName,Mail,DisplayName | Export-Csv -Path C:¥userlist.csv
Get-AzureADGroupMemberは規定では100アカウントまでしか取得できない。所属アカウントのすべての一覧が欲しい場合は-Allオプションを追加(要確認)
4-3.ユーザアカウントを指定グループに所属
$upn = "UserPrincipalName"
$groupname = "GroupName"
$user = (Get-AzureADUser -ObjectID $upn)
$group = Get-AzureADGroup -Filter "DisplayName eq '$groupname'"
Add-AzureADGroupMember -ObjectId $group.ObjectId -RefObjectId $user.ObjectId
5. ライセンス操作系コマンドレット
5-1.ユーザのライセンス情報取得
$upn = "UserPrincipalName"
$userlicense = (Get-AzureADUserLicenseDetail -ObjectId $upn).ServicePlans
ライセンス付与などは要確認です。
6. 参考記事
Azure Active Directory の PowerShell モジュール
Azure Active Directory PowerShell for Graph