Microsoft 365ユーザーの作成は、一度に大量のユーザーを作成したり、定期的に作成したりすることがあります。
そのため、PowerShellで作成出来るようにしておくと便利です。
PowerShellコマンドは、Graph 用 Azure Active Directory PowerShell モジュールを使用します。
今回は、PowerShellでユーザー作成とライセンス付与まで実施します。
1.CSVファイル作成
まずはユーザー情報を記載したCSVファイルを用意します。
「UserPrincipalName」、「MailNickName」、「DisplayName」など任意の値を指定します。
初期パスワードを全ユーザー同じ値にする場合、「Password」列は不要です。
UserPrincipalName,MailNickName,DisplayName,Surname,GivenName,Department,Password
test001@xxxx.com,test001,テスト001,テスト,001,システム,Passw0rd
test002@xxxx.com,test002,テスト002,テスト,002,システム,Passw1rd
test003@xxxx.com,test003,テスト003,テスト,003,システム,Passw2rd
test004@xxxx.com,test004,テスト004,テスト,004,システム,Passw3rd
test005@xxxx.com,test005,テスト005,テスト,005,システム,Passw4rd
2.ユーザー作成
それでは実際にユーザーを作成していきます。
共通手順としてユーザーの初期パスワード設定用の「PasswordProfile」オブジェクトを作成します。
$PasswordProfile=New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
初期パスワードを全ユーザー同じ値にする場合
事前に「PasswordProfile」オブジェクトにパスワードを指定します。
$PasswordProfile.Password=”<パスワード>”
Import-Csv C:\Work\User_List.csv -Encoding default | ForEach-Object {New-AzureADUser -UserPrincipalName $_.UserPrincipalName -MailNickName $_.MailNickName -DisplayName $_.DisplayName -GivenName $_.GivenName -Surname $_.Surname -UsageLocation JP -Country Japan -Department $_.Department -AccountEnabled $true -PasswordProfile $PasswordProfile}
初期パスワードをユーザーごとに異なる値にする場合
「Password」列を利用し、コマンドを連続で実行します。
Import-Csv C:\Work\User_List.csv -Encoding default | ForEach-Object {$PasswordProfile.Password=$_.Password ; New-AzureADUser -UserPrincipalName $_.UserPrincipalName -MailNickName $_.MailNickName -DisplayName $_.DisplayName -GivenName $_.GivenName -Surname $_.Surname -UsageLocation JP -Country Japan -Department $_.Department -AccountEnabled $true -PasswordProfile $PasswordProfile}
コマンドが正常終了した場合は下記の通り表示されます。
なお、「MailNickName」が指定されていない場合、下記のエラーが表示されます。
New-AzureADUser : Error occurred while executing NewUser
Code: Request_BadRequest
Message: Property mailNickname value is required but is empty or missing.
3.ライセンス割り当て
最後に作成したユーザーにライセンスを割り当てます。
下記のコマンドで割り当てたいライセンスの「SkuPartNumber」を確認し、変数に格納します。
Get-AzureADSubscribedSku
$planName = “<SkuPartNumber>”
下記のコマンドで「LicensesToAssign」オブジェクトを作成します。
$License = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicense
$License.SkuId = (Get-AzureADSubscribedSku | Where-Object -Property SkuPartNumber -Value $planName -EQ).SkuID
$LicensesToAssign = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses
$LicensesToAssign.AddLicenses = $License
下記のコマンドでライセンスを割り当てます。
コマンドが正常終了した場合は何も表示されません。
Import-Csv C:\Work\User_List.csv -Encoding default | ForEach-Object {Set-AzureADUserLicense -ObjectId $_.UserPrincipalName -AssignedLicenses $LicensesToAssign}
Microsoft 365ユーザーの一括作成手順は以上です。
コメント