個人的備忘録。

インフラSEの備忘録です。インフラ構築、ニュース、ネタをたらたらと書いていきます。。。

Office365の全ユーザーパスワード無期限化スクリプト

 

Office365のパスワード無期限化設定は、その時点での無期限化設定です。ユーザーを新規作成したときは、再度無期限化の設定をしなけらばならず、常時運用している場合は面倒かつトラブルのもととなります。

そこで、全ユーザーのパスワード無期限化をPowerShellスクリプトを使って、サーバーなどに設定して自動化してしまいましょう!

 

まずは、下記の記事を参考に、PowerShellでOffice365の操作ができるようにツールを導入。

(参考)Office365 ユーザーパスワード無期限化設定

 

下記のスクリプト実行フォルダを作成します。
 C:\script\
 C:\script\Office365\
 C:\script\Office365\log\

 

下記PowerShellスクリプトを "Office365-PW-NeverExpires.ps1" という名前で、 "C:\script\Office365\"  フォルダへ保存。 

 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
# ----------------------------------------------------------------
# - Office 365 全ユーザーパスワード無期限化PowerShellスクリプト
# - Office365-PW-NeverExpires.ps1
# ----------------------------------------------------------------

# Office365のモジュールをダウンロード
Import-Module MSOnline

# Office365の資格情報を入力&認証
$LiveCredential = ConvertTo-SecureString "Password" -AsPlainText -force | % { New-Object System.Management.Automation.PSCredential("aaa@bbb.com", $_) } | % {Get-Credential $_}
Connect-MsolService -Credential $LiveCredential
echo ユーザーのパスワード無期限化の設定を確認(実行前)
Get-MSOLUser | Select UserPrincipalName, PasswordNeverExpires
echo .------------------------------------------------------------
echo .
echo .

echo 全てのユーザーのパスワード無期限化を設定
Get-MSOLUser | Set-MsolUser -PasswordNeverExpires $true
echo .
echo .
echo .------------------------------------------------------------
echo .
echo .
echo ユーザーのパスワード無期限化の設定を確認(実行後)
Get-MSOLUser | Select UserPrincipalName, PasswordNeverExpires
echo .------------------------------------------------------------
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

次に、 "Office365-PW-NeverExpires.ps1" を実行するためのWindowsバッチファイル、 "Office365-AutoPWNeverExpires.bat" を "C:\script\Office365\" 作成します。

 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
rem ----------------------------------------------------------------
rem - Office 365 全ユーザーパスワード無期限化スクリプト実行
rem - Office365-AutoPWNeverExpires.bat
rem ----------------------------------------------------------------

@echo off
rem 変数定義
set DT=%date%
set LOG=C:\script\Office365\Log\%DT:~0,4%%DT:~5,2%%DT:~8,2%.log
set PSexePath="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
set PSscriptPath="C:\script\Office365\Office365-PW-NeverExpires.ps1"
echo --------------------------------------------------------------- > %LOG%
echo --- Office 365 全ユーザーパスワード無期限化スクリプト実行 >> %LOG%
echo --- Start Time : %date% %time% >> %LOG%
echo. >> %LOG%
echo. >> %LOG%

echo -- スクリプト実行 >> %LOG%
call %PSexePath% %PSscriptPath% >> %LOG%

echo. >> %LOG%
echo. >> %LOG%
echo --- End Time : %date% %time% >> %LOG%
echo --------------------------------------------------------------- >> %LOG%

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

 

これで準備完了。

あとは、タスクスケジューラへ "Office365-AutoPWNeverExpires.bat" を登録し、正常に動くかを確認すれば出来上がりです。

実行結果は "C:\script\Office365\log\" に保存されるので、確認してみて下さい。

 

(2013/09/08現在利用可能)
Office365の仕様変更で使えなくなる可能性もあるのでご注意を。。。