やりたかったこと
・Office365で複数ユーザーを一括登録したい(パスワード自動生成)
・自動生成したパスワードをそのまま本運用で使いたい
(初回にパスワードの変更をしない設定+無期限で使える設定にしたい)
Office365の管理画面から「複数のユーザーを追加」をクリックすると、CSVのインポートが可能で
いけそうな気がするのですが、初回にパスワードの変更をしない設定等がどうやら出来なさそうなので
結局あきらめて、PowerShellを使う方向で行くことにしました。(残念)
PowerShell側の準備
Office365に接続するために必要なモジュールをインストールします。
管理者としてPowerShellを起動して、
Install-Module MSOnline
と打ち込んでEnterキーを押せばインストールが始まります。
途中で Y を2回押せば完了!
PowerShellでOffice365に接続
次に、connect-msolservice と打ち込むと「アカウントにサインイン」が立ち上がります。
ここに、Office365の管理者アカウントのIDとパスワードを入力します。
接続確認を兼ねてライセンスの名前を表示させる
IDとパスワードが正しければ、Office365に接続できているはずですが、
表示が変わらないのでよくわかりません・・・
そこで、確認のために
get-msolaccountsku
と打ち込んでみます。
Office365に接続できていれば、下図のようにライセンス名が表示されます。
この場合は「reseller-account:O365_BUSINESS_PREMIUM」がライセンス名になります。
(それぞれの環境によって違う名前になります)
流し込むCSVファイルを準備
・ユーザー名(必須)
・表示名
・名
・姓
の4列のCSVファイルを準備します。
列の名前はそれぞれ下図のように、UserPrincipalName,DisplayName,FirstName,LastNameとします。
データに日本語が入る場合は、CSVで保存するときにエンコードをUTF8にしておく必要があります。
(Shift-JIS等の文字コードだと文字化けしてしまいます)
このファイルにわかりやすい名前をつけて、わかりやすい場所に設置します。
今回は、C:\test\ という場所に、user.csv という名前で保存しました。
PowerShellでCSVインポートを実行!
この長いコマンドを入力すればインポートが実行されます。
Import-Csv "C:\test\user.csv" | ForEach-Object {New-MsolUser -UserPrincipalName $_.UserPrincipalName -DisplayName $_.DisplayName -FirstName $_.FirstName -LastName $_.LastName -LicenseAssignment reseller-account:O365_BUSINESS -UsageLocation JP -ForceChangePassword $False -PasswordNeverExpires $true} | Export-csv -Path "C:\test\output.csv"
長くて見づらいので、少し形を変えて補足をつけてみました。
※ライセンス名が上の方の図と少し違いますが、実際は同じライセンス名を入れます。
PowerShellに入力して、少し待つと処理が完了します。