こんにちは、阿久津です。Windows 10に限った話ではありませんが、Windowsはこれまでも、PC起動中もしくはスリープ時にセキュリティスキャンやシステム診断などを行う「自動メンテナンス」機能を用意してきました(図01~02)。
この機能はWindows Vista時代に、定期的なメンテナンスを怠ったことが原因で「最近PCが重い」……といった問題の発生を未然に解決するため、Windows 8から導入されました。しかし、夜半にPCをお使いの場合、午前2時にメンテナンス処理が始まりますと、パフォーマンスがダウンして目も当てられません。
PCを常時稼働で運用している場合、夜中にファン音が大きくなって目を覚ましてしまうようなユーザーには、自動メンテナンスの実行自体も邪魔な存在でしょう。そんなときは、上図にある<スケジュールされたメンテナンスによるコンピューターのスリープ解除を許可する>のチェックを外せば解決します。
いずれにせよ「自分がPCを使っている間はメンテナンスを実行したくない」という需要に対して、Windows 10は応えることはできません。そこで今回は、レジストリを使って自動メンテナンス機能を無効にし、手動実行するまでの手順を紹介しましょう。
1. 管理者権限でレジストリエディターを起動します。 2. レジストリエディターが起動したら、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenanceキーを開きます。 3. DWORD値「MaintenanceDisabled」のデータを「1」に変更します。 4. <×>ボタンをクリックして、レジストリエディターを終了します。 |
---|
これで操作が完了しました(図04~07)。
図05 レジストリエディターが起動したら、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenanceキーを開き、右ペイントの何もないところを右クリック。<新規>→<DWORD値>と順にクリックします |
それでは結果を確認しましょう。先の手順を参考に<メンテナンスの開始>をクリックしても処理が実行されません。DWORD値「MaintenanceDisabled」のデータが「1」の場合、自動メンテナンスの実行は抑止されます(図08)。
しかし、これでは必要な場面で自動メンテナンスを実行できないため、困ってしまいます。そこでコマンドラインからレジストリエントリーの変更と、自動メンテナンスを実行しましょう(図09~10)。
/*
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance" /t REG_DWORD /v MaintenanceDisabled /d 0 /f
mschedexe.exe start
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance" /t REG_DWORD /v MaintenanceDisabled /d 1 /f
*/
ここではDWORD値「MaintenanceDisabled」のデータを「0」に変更して、自動メンテナンスは実行可能にしてから、自動メンテナンスを始める「mschedexe.exe start」を実行。
次にDWORD値「MaintenanceDisabled」のデータを「1」に変更します。これで自分が必要なタイミングで自動メンテナンスの実行が可能になりました。また、何らかの理由で自動メンテナンスを停止させる場合は「mschedexe.exe stop」を実行しましょう(図011)。
/*
mschedexe.exe stop
*/
なお、既定状態のように自動メンテナンスを有効にする場合は、DWORD値「MaintenanceDisabled」を削除してください。
それでは、また次号でお目にかかりましょう。
阿久津良和(Cactus)