【Office365】ユーザアカウントを一括で作成してライセンスを付与

Office365
スポンサーリンク

Office365アカウントユーザを作成して、ライセンスの付与、利用できるサービスの制限をPowershellを利用して、スクリプト化します。
手動でのアカウント作成やライセンス付与はミスが発生する可能性が高いためスクリプトで実行するのが生産性も高くなります。

更に人事系システムと連携すれば、入社日に合わせて社内ポリシーに適用させたOffice365アカウントを自動発行することも可能になります。

スポンサーリンク

参考にする過去のエントリー一覧

ユーザアカウントを作成

【Office365】ユーザアカウントを一括で作成する方法
ユーザーのアカウントを一括で作成する方法です。 毎月アカウントの追加が発生するので、PowerShellで一括で登録するようにしています。 元々はCSVファイルを作成して管理センターから読み込んでいたのですが、ある時急に読み込み時にエラーが...

パスワードの一括設定(今回はアカウント作成時にパスワードまで設定するので未使用)

【Office365】PowerShellでアカウントのパスワードを一括で変更
ユーザーのパスワードを一括で変更する方法です。 アカウント作成時に初期パスワードをまとめて設定する場合に手作業で一人一人対応すると時間がかかるため、Powershellで一括変更するのが便利です。 Azure ADに接続 Azure Act...

利用できるサービスを制限

【Office365】PowerShellでアカウントが利用できるサービスを一括設定
作成済みのOffice365ユーザアカウントに対して、一部のサービスを使用不可にしたい場合の一括設定方法です。 年度始まりや毎月の新規ユーザに対してミスなく同一の設定を割り当てることができます。 CSVファイルを準備 準備するファイルが2つ...

CSVファイルを準備

準備するファイルが2つあります。

・新規に作成するユーザアカウントの一覧
・無効にするサービスの一覧

まずは新規に作成するユーザアカウントの一覧をCSV形式で準備します。

UserPrincipalName,DisplayName,FirstName,LastName,Department,Password
user1@example.com,user1,user,1,Sales,Pass0001
user2@example.com,user2,user,2,Sales,Pass002
user3@example.com,user3,user,3,Sales,Pass003

CSVファイルはUTF-8形式で保存してください。
※Excelで作成して、保存する時に「CSV UTF-8(コンマ区切り)(*.csv)」を選択

続いて、無効にするサービスの一覧をtxt形式で作成します。
※ヘッダーは不要です

TEAMS1
SWAY
BPOS_S_TODO_1

新規でユーザを作成するとライセンスに紐づく全てのサービスが「有効」になっているため、不要なサービスを「無効」にします。
注意して欲しいのは無効にするサービスの一覧であって、有効にするサービスの一覧ではありません。

ライセンスに紐づくサービス一覧の取得などについてはこちらのエントリーを参照してください。

【Office365】PowerShellでアカウントが利用できるサービスを一括設定
作成済みのOffice365ユーザアカウントに対して、一部のサービスを使用不可にしたい場合の一括設定方法です。 年度始まりや毎月の新規ユーザに対してミスなく同一の設定を割り当てることができます。 CSVファイルを準備 準備するファイルが2つ...

Powershellファイルの作成

次の条件でPowerShellのファイルを作成します。

・作成するPowerShellファイル「C:\temp\AddAcount.ps1」
・新規に作成するユーザの一覧「C:\temp\UserList.csv」
・無効にするサービスの一覧「C:\temp\DisabledServiceList.txt」

下記構文の「xxxx:ENTERPRISEPACK」を環境に合わせて書き換えてください。

# 新規ユーザ作成ファイル読込
$UserLists = Import-Csv -Path "C:\temp\UserList.csv"
# サービス制限リスト読込
$ServicePlans = Get-Content -Path "C:\temp\DisabledServiceList.txt"

# ライセンス設定
$License = "xxxx:ENTERPRISEPACK"

foreach($User in $UserLists){
    # 新規ユーザ作成
    New-MsolUser -UserPrincipalName $User.UserPrincipalName -DisplayName $User.DisplayName -FirstName $User.FirstName -LastName $User.LastName -Department $User.Department -LicenseAssignment -Password $User.Password $License -UsageLocation JP -ForceChangePassword $False
    # サービス制限
    $Licenseoptions = New-MsolLicenseOptions -AccountSkuId $License -DisabledPlans $ServicePlans
    Set-MsolUserLicense -UserPrincipalName $User.UserPrincipalName -LicenseOptions $Licenseoptions
}

これをテキストエディタ(メモ帳など)で作成して、C:\tempにファイル名「AddAcount.ps1」保存します。

PowerShellの実行

作成したAddAcount.ps1を実行します。

Azure Active Directory PowerShellモジュールを使用します。
PowerShellを管理者で起動してAzure ADに接続します。

接続方法についてはこちらをご覧ください。

【Office365】PowershellでMSOnline Moduleを使うためにAzure Active Directory(Azure AD)に接続する方法
MSOnline Moduleを利用する場合にはAzure ADへの接続が必要です。 MSOnline ModuleはGet-MsolUserやGet-MsolGroupなどのようにコマンドに「Msol」を含んでいます。 PowerShel...
PS C:\Windows\system32> cd C:\temp
PS C:\temp> .\AddAcount.ps1