【Office365】PowerShellでアカウントのパスワードを一括で変更

Office365
スポンサーリンク


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

スポンサーリンク

Azure ADに接続

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」を含んでいます。 Pow...

CSVファイルを準備

パスワードを変更するユーザの一覧をCSV形式で準備します。

UserPrincipalName, NewPassword
user1@example.com, N1lo90de
user2@example.com, k9er6Hg2
user3@example.com, 9dU2HJ2s

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

PowerShellコマンドの実行

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

Import-Csv -Path “CSVファイルパス” | ForEach-Object {Set-MsolUserPassword -UserPrincipalName $_.UserPrincipalName -NewPassword $_.NewPassword -ForceChangePassword $False;}

Import-Csv -Path "CSVファイルパス" | ForEach-Object {Set-MsolUserPassword -UserPrincipalName $_.UserPrincipalName -NewPassword $_.NewPassword -ForceChangePassword $False;}

例えばCSVファイルをCドライブのTempフォルダに「UserPassword.csv」というファイル名で保存した場合

Import-Csv -Path “C:\temp\UserPassword.csv” | ForEach-Object {Set-MsolUserPassword -UserPrincipalName $_.UserPrincipalName -NewPassword $_.NewPassword -ForceChangePassword $False;}

Import-Csv -Path "C:\temp\UserPassword.csv" | ForEach-Object {Set-MsolUserPassword -UserPrincipalName $_.UserPrincipalName -NewPassword $_.NewPassword -ForceChangePassword $False;}

UserPrincipalNameが合致するユーザーのPasswordを変更します。

パスワードの強制変更

初期パスワードのままアカウントを使わせるのはセキュリティ上、良くないので初回ログインの時にパスワードを強制的に変更させたい場合があります。

その時は「ForceChangePassword」パラメータを「$True」にして実行してください。

Import-Csv -Path “C:\temp\UserPassword.csv” | ForEach-Object {Set-MsolUserPassword -UserPrincipalName $_.UserPrincipalName -NewPassword $_.NewPassword -ForceChangePassword $True;}

Import-Csv -Path "C:\temp\UserPassword.csv" | ForEach-Object {Set-MsolUserPassword -UserPrincipalName $_.UserPrincipalName -NewPassword $_.NewPassword -ForceChangePassword $True;}