Azure ADのPowerShell(v2)でMicrosoft365を操作(その3:ユーザの一括登録)

投稿者: | 2020年5月4日

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

コメントを残す

メールアドレスが公開されることはありません。