特定のアカウントのパスワード期限を実質無期限化する

発行日: 2011 年 1 月

Microsoft Online Services では、「ユーザー パスワードについて」に記載されているポリシーに従って、定期的にパスワードの変更を求められますが、プログラムからの呼び出しに使うアカウントのパスワードなど、一部のパスワードはパスワードの期限を無期限に設定しておきたい場合があります。その場合、PowerShell をタスク スケジューラで定期的に実行し、パスワードをリセットすることで、同じパスワードを実質的に無期限で利用することができるようになります。

重要
同じパスワードを使い続けることはセキュリティ上のリスクになるため、十分ご注意ください。また、利用するパスワードが PowerShell スクリプト内に記述されることになりますので、スクリプト ファイルの管理にも十分ご注意ください。

PowerShell スクリプトによる自動化を行うには、Microsoft Online Services 移行ツールや PowerShell をインストールしておく必要があります。詳細は以下を参照してください。

PowerShell によるパスワード再設定で同じパスワードを繰り返し利用する

準備ができたら、以下のスクリプトをメモ帳にコピーし、PasswordReset.ps1 というファイルに保存します。このスクリプトでは、指定したユーザーのパスワードを P@ssw0rd! に設定します。

タスク スケジューラで PowerShell を定期的に実行するように設定する

PasswordReset.ps1 を定期的に実行するためのコマンド ファイル passwordreset.cmd を以下の通り作成します。Powershell.exe のパスは Windows フォルダの場所に応じて適切なパスを指定してください。引数にはPasswordReset.ps1 の適切なパスを指定してください。

add-PSSnapIn Microsoft.Exchange.Transporter



$bposlogin = "admin@contoso.com"



$bpospwd = "Password"



$str=ConvertTo-SecureString $bpospwd -AsPlainText -Force



$bposcred = New-Object System.Management.Automation.PSCredential($bposlogin, $str)



Set-MSOnlineUserPassword -Identity user1@contoso.com -Password P@ssw0rd! -ChangePasswordOnNextLogon $false -Credential $bposcred

$bposlogin と $bpospwd には、管理者権限をもつアカウントのユーザー名とパスワードで置き換えてください。なお、このテキスト ファイルは管理者アカウント情報を含むため、取り扱いには十分注意ください。ChangePasswordOnNextLogon を False に設定することで、管理センターでパスワードをリセットしたときのようにユーザーが次回ログイン時にパスワードを変更する必要はありません。

このスクリプトを 90 日未満の間隔で定期的に実行することで、毎回同じパスワードを再設定してパスワードの期限を毎回実質延長することができます。サインイン ツールからのパスワード変更では、古いパスワードと同じパスワードを指定することはできませんでしたが、PowerShell だと毎回同じパスワードを指定することができます。

タスク スケジューラで PowerShell を定期的に実行するように設定する

PasswordReset.ps1 を定期的に実行するためのコマンド ファイル passwordreset.cmd を以下の通り作成します。Powershell.exe のパスは Windows フォルダの場所に応じて適切なパスを指定してください。引数にはPasswordReset.ps1 の適切なパスを指定してください。

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-file" "D:\passwordReset.ps1"

passwordreset.cmd を作成したら、Windows のコントロールパネルを開き、管理ツールのタスク スケジューラを開きます。ここで、毎日決まった時間に passwordreset.cmd を実行するように設定すれば、パスワードを実質無期限化できます。

メモ
タスクを実行するユーザー アカウントのパスワードを変更する際には、その後もタスクが実行できるように、タスクを実行するユーザー アカウントの再設定を行ってください。