はじめに
AzureADのユーザーを作成する際、AzureポータルからCSVを使えば複数のユーザーをまとめて作成する事が可能です。
が、今回のとある要件で利用するには向かなかったので、PowerShellのスクリプトを作成しました。
要件
今回の要件は以下のようなものでした。
- 複数のユーザーを一度に作成する
- 管理者が設定したパスワードを変えずに利用させたい(初回ログイン時のパスワード変更を表示させない)
※ なお、このようなユーザーの作り方は用途によっては適切ではありません。今回は、研修用に作成し、数時間で削除する事を想定しているため、管理者の設定したパスワードをそのまま使う形にしています
PowerShell スクリプト
このようになりました。(パスワードやUPNは架空のものに変更しています)
### 初期パスワードを変更しないでもすむユーザーを複数作成する
## 変数の設定
#ユーザー数
$UserCount = 3
#パスワードのベース
$PasswordBaseStrings = "Password"
#UPNのベース
$UpnBase = "@example.com"
#ユーザー名のベース
$UserNameBase = "Test"
#AzureADのテナントID
$TenantId = "xxxxx-xxxxx-xxxxx-xxxxx"
## スクリプトの実行
Import-Module -Name AzureAD
Connect-AzureAD -TenantId $TenantId
for($i=1; $i -le $usercount; $i++){
# パスワードポリシーの設定
$PasswordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$PasswordStrings = $PasswordBaseStrings + $i.ToString("00")
$PasswordProfile.Password = $PasswordStrings
$PasswordProfile.ForceChangePasswordNextLogin = $false
# ユーザーの作成
$UserName = $usernamebase + $i.ToString("00")
$Upn = $UserName + $UpnBase
New-AzureADUser -AccountEnabled $true -DisplayName $UserName -UserPrincipalName $Upn -PasswordProfile $PasswordProfile -MailNickName $UserName
}
CSVからユーザーリストを読み込んでも良かったのですが、今回は連番で簡単に作ってみました。これで、User01, User02,User03...と任意の数のユーザーを作成出来ます。
おわりに
最初はCSVでユーザーを作ってからForceChangePasswordNextLoginの値を変えようと思ったのですが、そこまでやるならユーザー作成自体もPowerShellで実行した方が楽だと気づきました。
繰り返しになりますが、ForceChangePasswordNextLoginは本番運用や、テストでも要件によってはオフにすべきではないケースがあります。今回はあくまで使い捨てのユーザーでの設定になりますので、ご利用になる際は十分ご注意ください。
舟越 匠(日本ビジネスシステムズ株式会社)
人材開発部に所属。社内向けの技術研修をしつつ、JBS Tech Blog編集長を兼任。2024年8月からキーマンズネットでPower Automateの連載を開始。好きなサービスはPower AutomateやLogic Apps。好きなアーティストはZABADAKとSound Horizon。
担当記事一覧