Microsoft365(office365) へのユーザ登録は通常はブラウザから管理ツールを使って行います。ユーザ登録やライセンスの許可などの場合は、多くのユーザアカウントで同じ作業の繰り返しとなります。
オンプレミスのActive Directoryがあれば、AAD(Azure AD Connect)の同期を使えば一気にMicrosoft365アカウントの作成ができますが、手動で行うとなると大変な作業です。
ここでは、Azure ADのPowerShellもVersion 2 (Graph 用 Azure Active Directory PowerShell)でcsvファイルを使いユーザの一括登録や設定を行うことができます。
目次
ユーザ作成の流れ
excelで作ったcsvファイルを使ってMicrosoft365にユーザを一括登録する流れは以下になります。
①Microsoft365へ接続しライセンスの確認
③excelでユーザ情報を作成しcsvファイル形式で保存する
③powershellを実行する。
Microsoft365へ接続しライセンスの確認
Microsoft365へ接続しライセンスの購入数と使用数を確認します。操作手順はこちらを参照ください。
なお、ライセンス状況は以下になります。
・Enabled:購入したライセンス数
・ConsumedUnits:使用(消費)したライセンス数
#ライセンスの確認 PS> Get-AzureADSubscribedSku | Select -Property Sku*,ConsumedUnits -ExpandProperty PrepaidUnits SkuId : xxxxxxxx-xxxxxx-xxxxxx SkuPartNumber : O365_BUSINESS_PREMIUM ConsumedUnits : 1 Enabled : 1 Suspended : 0 Warning : 0
excelでユーザ情報を作成しcsvファイル形式で保存する
ここでは以下の情報をもとにMicrosoft365にユーザを作成するものとします。
これに基づいてexcelファイルを作成します。
・UserPrincipalName (メールアドレス ログオン名)
・GivenName(姓)
・SurName (名)
・DisplayName (表示名)
・AccountSkuId(付与するライセンス)
これをもとにcsv形式で保存します。
UserPrincipalName,GivenName,SurName,DisplayName,mailNickname,AccountSkuId ichisuz@dom.co.jp,鈴木,一郎,鈴木 一郎,ichisuz,dom:O365_BUSINESS_PREMIUM tanhana@dom.co.jp,田中,花子,田中 花子,tanhana,dom:O365_BUSINESS_PREMIUM
注意点は、文字化け防止のためcsvファイルを保存する際に文字コードをUTF-8 に指定することです。
powershellでMicrosoft365にユーザ作成する
作成したcsvファイルをもとにMicrosoft365にユーザ作成します。
ここでは作成したcvsファイル名は users_add.csv とします。
また、以下の条件を付けたしてあります。
・初期パスワードは「P@ssword123」
・日本で使う
PS> #パスワード生成 PS> $PasswordProfile=New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile PS> $PasswordProfile.Password="P@ssword123" #ユーザ登録 & ライセンス有効 PS> Import-Csv -Path ".\users_add.csv" | ForEach-Object {New-AzureADUser` -DisplayName $_.DisplayName ` -GivenName $_.GivenName ` -SurName $_.SurName ` -mailNickname $_.mailNickname ` -UserPrincipalName $_.UserPrincipalName ` -PasswordProfile $PasswordProfile ` -AccountEnabled $true ` -UsageLocation JP ` }
ユーザパスワードの無期限化
最近のMicrosoft365 はユーザ認証にパスワードよりも生体認証を推奨しているようで、パスワードを無期限化することを進めています。
その是非は置いといて、ユーザパスワードを無期限化するのは以下になります。
PS>#パスワード無期限ユーザの確認 PS> Get-AzureADUser -All $true | ` Select-Object UserprincipalName,@{N="PasswordNeverExpires";E={$_.PasswordPolicies ` -contains "DisablePasswordExpiration"}} PS> #特定のユーザに設定 PS> Set-AzureADUser -UserPrincipalName "<ユーザー名>" ` -PasswordPolicies DisablePasswordExpiration PS> #全ユーザに設定 PS> Get-AzureADUser | Set-AzureADUser -PasswordPolicies DisablePasswordExpiration
確認
ユーザが作成できたかはMicrosoft管理センターでも確認できます。
Powershellで書確認するなら、
PS># azureログオン情報 PS> $credential = Get-Credential PS># azure Ad接続 PS> Connect-AzureAD -Credential $credential PS> #ユーザ一覧 PS> Get-AzureADUser -all $true | Format-Table -AutoSize -Wrap PS> # csv 出力 PS> Get-AzureADUser -all $true | Export-csv -NoTypeInformation -Encoding UTF8 c:\temp\aadusers.csv