Microsoft 365ユーザーをPowerShellで一括作成する


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ユーザーの一括作成手順は以上です。

コメント

タイトルとURLをコピーしました