こんにちは、阿久津です。Windows 10に限った話ではありませんが、Windowsはこれまでも、PC起動中もしくはスリープ時にセキュリティスキャンやシステム診断などを行う「自動メンテナンス」機能を用意してきました(図01~02)。

図01 テキストボックスに「メンテ」と入力し、「自動メンテナンス設定の変更」をクリックします

図02 これで自動メンテナンス設定が現れます。既定では午前2時にスリープを解除してメンテナンスを実行します

この機能はWindows Vista時代に、定期的なメンテナンスを怠ったことが原因で「最近PCが重い」……といった問題の発生を未然に解決するため、Windows 8から導入されました。しかし、夜半にPCをお使いの場合、午前2時にメンテナンス処理が始まりますと、パフォーマンスがダウンして目も当てられません。

PCを常時稼働で運用している場合、夜中にファン音が大きくなって目を覚ましてしまうようなユーザーには、自動メンテナンスの実行自体も邪魔な存在でしょう。そんなときは、上図にある<スケジュールされたメンテナンスによるコンピューターのスリープ解除を許可する>のチェックを外せば解決します。

図03 先の手順を参考に「セキュリティとメンテナンス」を起動し、<メンテナンスの開始>をクリックすれば、自動メンテナンスは手動実行できますが、自動メンテナンスを無効にするにはタスク操作が必要です

いずれにせよ「自分がPCを使っている間はメンテナンスを実行したくない」という需要に対して、Windows 10は応えることはできません。そこで今回は、レジストリを使って自動メンテナンス機能を無効にし、手動実行するまでの手順を紹介しましょう。

1. 管理者権限でレジストリエディターを起動します。
2. レジストリエディターが起動したら、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenanceキーを開きます。
3. DWORD値「MaintenanceDisabled」のデータを「1」に変更します。
4. <×>ボタンをクリックして、レジストリエディターを終了します。

これで操作が完了しました(図04~07)。

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

図05 レジストリエディターが起動したら、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenanceキーを開き、右ペイントの何もないところを右クリック。<新規>→<DWORD値>と順にクリックします

図06 「新しい値 #1」を「MaintenanceDisabled」に変更してかダブルクリックで開き、データを「1」に変更して<OK>ボタンをクリックします

図07 <×>ボタンをクリックして、レジストリエディターを終了します

それでは結果を確認しましょう。先の手順を参考に<メンテナンスの開始>をクリックしても処理が実行されません。DWORD値「MaintenanceDisabled」のデータが「1」の場合、自動メンテナンスの実行は抑止されます(図08)。

図08 <メンテナンスの開始>をクリックしても、自動メンテナンスを手動実行できなくなります

しかし、これでは必要な場面で自動メンテナンスを実行できないため、困ってしまいます。そこでコマンドラインからレジストリエントリーの変更と、自動メンテナンスを実行しましょう(図09~10)。

図09 [Win]+[X]キー→[A]キーと順番に押すか、スタートボタンを右クリック→<Windows PowerShell>をクリックします

図10 下記囲みの内容をWindows PowerShellにコピー&ペーストしますと、自動メンテナンスが始まります

/*
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)。

図11 下記囲みの内容をWindows PowerShellにコピー&ペーストしますと、自動メンテナンスを停止できます

/*
mschedexe.exe stop
*/

なお、既定状態のように自動メンテナンスを有効にする場合は、DWORD値「MaintenanceDisabled」を削除してください。

それでは、また次号でお目にかかりましょう。

阿久津良和(Cactus)