こんにちは、阿久津です。Windows 7では、パスワードの有効期限を42日間と定めているのはご存じのとおりですが、セキュリティという観点から見れば、6週間単位で変更をうながすのは短く、ユーザビリティの観点からは有効期限自体が煩雑に感じることでしょう(図01~04)。

図01: パスワードの有効期限が近づく、もしくは切れるとパスワードの変更をうながすポップアップが現われます

図02: ロック画面、もしくはログオン画面に入るとパスワードの変更をうながされます。変更する場合は<OK>ボタンをクリックしてください

図03: 下二つのテキストボックスに新しいパスワードを入力して、<→>ボタンをクリック、もしくは[Enter]キーを押します

図04: これでパスワードの変更が完了しました。<OK>ボタン、もしくは[Enter]キーを押してください

コンピュータの進化に伴い、各所で使用されるようになりますと、セキュリティ強化が重要な課題となり、Windows OSでもWindows XP Service Pack 2を機に様々な角度から強化してきました。Windows Vistaの評判を著しく下げたUAC(ユーザーアカウント制御)も、セキュリティ的には有用な機能であることは間違いありません。

このセキュリティとユーザビリティの関係はトレードオフ的な部分があり、OSのユーザーインターフェース設計には絶妙のバランス感が必要となります。Windows 7は、Windows XPの有用性とWindows Vistaの安全性を持ち合わせましたが、それでも前述のパスワード有効期限は有用性を優先したいユーザーには煩雑な存在になるのではないでしょうか。

以前、筆者が不定期に寄稿している「レッツ! Windows 7」で「パスワードの有効期限を無期限にする」という記事を書きました。こちらはローカルセキュリティポリシーを使用して、パスワードの有効期限を変更するというものです。

昨日とある読者から、「レジストリエディターで設定できないか」という質問を頂きましたので、少々調べたところ、より簡単な方法でパスワードの有効期限を設定できることを確認しました。そこで今回はパスワードの有効期限をコマンドプロンプトから設定するチューニングをお送りしましょう。

1.[Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「cmd」と入力してから<OK>ボタンをクリックします。
2.コマンドプロンプトが起動したら「net accounts /maxpwage:unlimited」と入力して[Enter]キーを押します。

これでチューニングが終了しました(図05~09)。

図05: [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regedit」と入力して<OK>ボタンをクリックします

図06: UACが有効な環境では、<スタート>メニューのテキストボックスに「cmd」と入力し、列挙された「cmd.exe」を右クリック。メニューから<管理者として実行>をクリックします

図07: 「net accounts」と入力して[Enter]キーを押します。これで、現在のパスワード有効期間が「42(日間)」であることが確認できました

図08: 「net accounts /maxpwage:unlimited」と入力して[Enter]キーを押してください。「コマンドは正常に終了しました」とメッセージが表示されれば成功です

図09: 再度「net accounts」と入力して[Enter]キーを押します。これで、現在のパスワード有効期間が「0(日間)」に変更されました

今回はチューニング結果というものはなく、最初に紹介したパスワード有効期限に関するポップアップおよび、パスワードの変更操作が不要になります。行なっている内容はローカルセキュリティポリシーで操作した内容と同じですが、同ツールが用意されていないHome Premiumエディションなどでも使用できるチューニングですので、同エディションユーザーは是非お試しください。

なお、自身のセキュリティポリシーに照らし合わせ、有効期限を一カ月に変更したい場合は「net accounts /maxpwage:30」と実行します。既にお気付きのとおり「/maxpwage」はパスワードの有効期限を指定するオプションであり、コロンの後に「unlimited」を付ければ無期限。数字(1~999)を付ければ期限を指定することが可能です(図10)。

図10: パスワードの有効期限を一カ月にする場合は、「net accounts /maxpwage:30」と入力して[Enter]キーを押します

また、パスワード有効期限をチェックする機能が有効か無効か確認するには、「wmic.exe」コマンドを使いましょう。同コマンドは、Windows OSのシステム管理を行なうための基本技術であるWMI(Windows Management Instrumentation)を制御するためのものです。

「wmic path Win32_UserAccount where Name='kaz' get PasswordExpires(kazは自身のユーザー名)」と実行しますと、パスワードの有効期限チェックが有効な場合は「TRUE」が返され、無効時は「FALSE」が返されます。パスワードの有効期限を「0(日)」にし、チェック機能も無効にする場合は「wmic path Win32_UserAccount where Name='kaz' set PasswordExpires=false(kazは自身のユーザー名)」と実行してください(図11~12)。

図11: 「wmic path Win32_UserAccount where Name='kaz' show PasswordExpir」と入力して[Enter]キーを押しますと、現在のパスワード有効期間チェック機能状態を確認できます

図12: 「wmic path Win32_UserAccount where Name='kaz' set PasswordExpir=false」と入力して[Enter]キーを押しますと、パスワード有効期限チェック機能が無効になります

パスワード有効期限のチェック機能を無効にすれば、「net accounts」コマンドを使わずとも、42日おきにパスワードの変更をうながされずに済みますが、自身がWindows 7の設定を確認しやすくするため、両者の設定を行なうことをお勧めします。

それでは、また次号でお会いしましょう。

阿久津良和(Cactus)