kazuakix の日記

Windows Phone とか好きです

Office 365 のパスワードの有効期限を変更する

久しぶりに普段メインで使っていない Office 365 を使おうとしたところ、パスワードの変更を求められました。

f:id:kazuakix:20150116230001j:plain,w500

Office 365 管理センターで変更する

パスワードの変更頻度は Office 365 管理センターの サービス設定 - パスワードで変更する事ができます。

f:id:kazuakix:20150116230009j:plain,w500

この「パスワードの有効期限が切れるまでの日数」に設定できるののは 14 ~ 730 日!
2 年とか無期限みたいなもんですが、ここでは無期限を指定することはできません。
 

PowerShell で変更する

どうしてもパスワードの有効期限を無期限にしたい場合は PowerShell を使います。

前準備

PowerShell で接続するための前準備については以前の記事を参照してください。
前提条件は Exchange Online への接続と同じ (はず) です。

モジュールのインポート

MsOnline モジュールをインポートします。

PS C:\> Import-Module MsOnline
PS C:\> Get-Module

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   3.1.0.0    Microsoft.PowerShell.Management     {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Con...
Manifest   3.0.0.0    Microsoft.PowerShell.Security       {ConvertFrom-SecureString, ConvertTo-SecureString, Get-Acl...
Manifest   3.1.0.0    Microsoft.PowerShell.Utility        {Add-Member, Add-Type, Clear-Variable, Compare-Object...}
Manifest   1.0        MsOnline                            {Add-MsolForeignGroupToRole, Add-MsolGroupMember, Add-Msol...

何のメッセージも出ませんが、Get-Module してみると MsOnline モジュールが増えているのがわかります。。

Office 365 への接続

おもむろに Connect-MsolService を使って接続します。Exchange Online や Lync Online への接続とは少し違いますね。

PS C:\> Connect-MsolService
警告: There is a newer version of the Microsoft Online Services Module.  Your current version will still work as
expected, however the latest version can be downloaded at https://portal.microsoftonline.com.

コマンドレットを実行するとパスワード入力ダイアログが表示されるので Office 365 管理者の ID, パスワードを入力します。何やら警告が出ましたが無視しました。
 

無期限パスワードを設定する

最初に Get-MsolUser コマンドレットを使用してパスワードが無期限になっていない事を確認します。

PS C:\> Get-MsolUser -UserPrincipalName kazuaki@xxxx.onmicrosoft.com | Select-Object PasswordNeverExpires

PasswordNeverExpires
--------------------
              False

PasswordNeverExpires が false なのでパスワードは無期限にはなっていません。
 
これを変更するには Set-MsolUser コマンドレットを使用します。

PS C:\> Set-MsolUser -UserPrincipalName kazuaki@xxxx.onmicrosoft.com -PasswordNeverExpires $true
PS C:\> Get-MsolUser -UserPrincipalName kazuaki@xxxx.onmicrosoft.com | Select-Object PasswordNeverExpires

PasswordNeverExpires
--------------------
               True

再度 Get-MsolUser を実行すると PasswordNeverExpires が true になっていました。
結果がわかるのは最短でも 14 日後ですが、これでパスワードの有効期限切れともおさらばですね。ただ、面倒でもパスワードは定期的に変更する事をお勧めします。