PowerShell で Office 365 のユーザーを作成する(クラウド ID モデル)

Disclaimer: 本エントリの内容は2018年1月2日時点の Office 365 の仕様に基づいています。

Office 365 のクラウド ID モデルのユーザーを PowerShell で作成する方法を確認してみた。なお、クラウド ID モデルのユーザーとは、オンプレミスの Active Directory から Azure AD に同期されたユーザーではなく、Office 365 上に直接作成されたユーザーのことである。

大まかな手順は以下のとおり。

  1. ユーザーを作成する
  2. ユーザーの所在地を設定する
  3. ユーザーにライセンスを割り当てる
  4. ユーザーの初期パスワードを設定する

ユーザーを作成する

はじめに Office 365 上にユーザーを作成する。

# Connect-MsolService が完了した状態で
New-MsolUser -UserPrincipalName <upn> -DisplayName <dn>

New-MsolUser には、少なくとも UserPrincipalName (UPN) と DisplayName を指定する必要がある。 <dn> を空文字("")や $null にして New-MsolUser を実行するとエラーとなるため、 DisplayName には空文字以外の何らかの文字列を指定する必要がある。

ユーザーの所在地を設定する

次に、ユーザーの所在地を設定する。

Set-MsolUser -UserPrincipalName <upn> -UsageLocation <ul>

<upn> には前の手順で作成したユーザーの UPN を指定する。 <ul> には、ユーザーが Office 365 を使用する場所を「2文字の国または地域番号」で指定する。日本の場合は ”JP” である。なお、所在地を設定しないと次の手順(ライセンス割り当て)が失敗するため、所在地の設定は必須である。

f:id:umanohoneo:20180102173619p:plain Fig: 所在地が未設定の状態でライセンスを割り当てる

ユーザーにライセンスを割り当てる

所在地の設定が完了した後、ユーザーに Office 365 のライセンスを割り当てる。

Set-MsolUserLicense -UserPrincipalName <upn> -AddLicenses <AccountSkuId>

<AccountSkuId> には所有しているライセンスの SKU ID を指定する。なお、所有しているライセンスとその SKU ID は Get-MsolAccountSku で確認できる。

Get-MsolAccountSku
#
#AccountSkuId              ActiveUnits WarningUnits ConsumedUnits
#------------              ----------- ------------ -------------
#<tenant>:ENTERPRISEPACK 25          0            6

上記の例では、 "<tenant>:ENTERPRISEPACK" の部分が SKU ID である。<tenant> の部分はテナント名(初期ドメイン xxx.onmicrosoft.com の xxx の部分)が入る。

ユーザーの初期パスワードを設定する

最後に初期パスワードを設定する。

# パターン1
# パスワードをランダムに生成する
Set-MsolUserPassword -UserPrincipalName <upn>
# 生成されたパスワードが表示される

パスワードを指定する場合は、 -NewPassword パラメータを使用する。

# パターン2
# パスワードを指定する
Set-MsolUserPassword -UserPrincipalName <upn> -NewPassword <password>

上記のいずれのパターンでも、ユーザーは初回サインイン時にパスワード変更を要求される。ユーザーにパスワード変更を要求しない場合は、 -ForceChangePassword $false を指定して Set-MsolUserPassword を実行する。

# パターン3
# パスワードをランダムに生成し、パスワード変更を要求しない
Set-MsolUserPassword -UserPrincipalName <upn> -ForceChangePassword $false