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

Microsoft Entra ID のユーザーを一括で追加したい――。

そんなときに最もシンプルで柔軟なのが Microsoft Entra PowerShell を使った方法です。

1.CSVファイル作成

下記のようなユーザー情報を記載した UTF-8 形式の CSV ファイルを作成します。

UserPrincipalName,DisplayName,GivenName,Surname,MailNickname
taro.tanaka@contoso.com,田中 太郎,太郎,田中,t.tanaka
hanako.sato@contoso.com,佐藤 花子,花子,佐藤,h.sato


2.ユーザー作成

下記のコマンドで Entra へ接続し、ユーザーを作成します。

# 接続
Connect-Entra -Scopes "User.ReadWrite.All","Directory.AccessAsUser.All"

# パスワード設定
$Password = '<パスワード>'
$passwordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$passwordProfile.Password = $Password

# ユーザー作成
Import-Csv C:\Work\User.csv | ForEach-Object {New-EntraUser -UserPrincipalName $_.UserPrincipalName -DisplayName $_.DisplayName -Surname $_.Surname -GivenName $_.GivenName -MailNickname $_.MailNickname -AccountEnabled $true -PasswordProfile $passwordProfile -UsageLocation "JP" -PreferredLanguage "ja-JP"}


3.ユーザー作成の確認

下記のコマンドで正常にユーザーが作成されたことを確認します。

Import-Csv C:\Work\User.csv | ForEach-Object {Get-EntraUser -UserPrincipalName $_.UserPrincipalName} | Select-Object DisplayName,Surname,GivenName,UserPrincipalName,MailNickname,AccountEnabled,UsageLocation,PreferredLanguage | Export-Csv C:\Work\User_check.csv


4.初回ログイン時のパスワード変更強制

ユーザー作成時の「PasswordProfile」オプションでも設定できますが、正常に動作しない場合があるという情報があるため、個別に設定します。

# パスワードのハッシュ化
$Secure = ConvertTo-SecureString $Password -AsPlainText -Force

# パスワード強制変更
Import-Csv C:\Work\User.csv | ForEach-Object {Set-EntraUserPasswordProfile -UserId $_.UserPrincipalName -Password $Secure -ForceChangePasswordNextSignIn}

コメント

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