はじめに (対象読者・この記事でわかること)

この記事は、以下のような悩みを抱えるWindowsユーザーを対象にしています。
- 外付けHDDが「操作中ないのに」突然回り始めてうるさい
- 毎回スリープから復帰するたびにアクセスランプが点灯し、寿命が心配
- イベントビューアで「ディスクが驚異的に多くアクセスされています」と怒られている

この記事を読むと、Windowsが裏で仕掛けている「保守・インデックス・スキャン」サービスを特定し、レジストリ・タスクスケジューラ・デバイスマネージャの3段構えで完全に黙らせる方法が身につきます。
なお、レジストリ操作は自己責任ですが、記載の「元に戻す手順」も併記しているので、初めての方でも安心してトライできます。

前提知識

  • Windows10/11の「サービス」「タスクスケジューラ」「デバイスマネージャ」の開き方はわかる
  • レジストリエディタ(regedit)を管理者権限で起動できる
  • 外付けHDDのドライブ文字(例:E:)を把握している

Windowsがなぜ勝手にHDDを触るのか? 〜3大元凶〜

Windowsは「保守作業」「検索インデックス」「スケジュールされたスキャン」の3つを理由に、ユーザーの意思とは無関係にディスクにアクセスします。
- SysMain(旧SuperFetch):頻出アプリをプリロードしようとHDDを読む
- Windows Search:ファイル内容をインデックス化しようとHDDを読む
- Defrag(最適化ドライブ):SSD/HDD問わず「必要に応じ」スケジュール実行される
これらは「省電力」「高速化」を目的にしているため、一見して有益に見えます。
しかし、外付けHDDは内蔵SSDほど頻繁にアクセスしても効果が薄く、むしろスピンドル摩耗・騒音・電力消費の原因になるため、無効化が推奨されます。

外付けHDDのスピンアップを完全に止める手順

以下の手順は、Windows10 22H2/11 23H2で動作確認済みです。
手順は「サービス無効化」「タスク無効化」「USB選択性サスペンド無効化」の3段階で進め、効果が出た時点で途中終了して構いません。

ステップ1:SysMain・Windows Search・Defragサービスを無効化

  1. スタートメニューから「サービス」を開く
  2. 以下の3サービスを1つずつダブルクリックし、
    ・「スタートアップの種類」を「無効」
    ・「サービスの状態」が「実行中」の場合は「停止」
    をクリックしてOK
    - SysMain
    - Windows Search
    - Optimize Drives(日本語表示名:ディフラグ)
  3. 即効性を求める場合は、サービス一覧上部で「名前」でソートし、念のため「Windows Event Log」を「手動」にしておくと、イベントビューアが暴走してHDDを読むのも防げます(オプション)

ステップ2:タスクスケジューラで「SilentCleanup」「ScheduledDefrag」を無効化

  1. スタートメニューから「タスクスケジューラ」を開く
  2. 左ペインから「タスクスケジューラライブラリ」→「Microsoft」→「Windows」へ進む
  3. 「DiskDiagnostic」「Defrag」「Maintenance」フォルダを以下のように処理
    - DiskDiagnostic\SilentCleanup →右クリック「無効」
    - Defrag\ScheduledDefrag →右クリック「無効」
    - Maintenance\WinSAT」→右クリック「無効」(WinSATは体験指数計測でHDDを読む)
  4. 即座に反映させるため、一度コマンドプロンプト(管理者)を開き
    schtasks /query /fo table | findstr 次の実行時刻
    と入力し、該当タスクの「次の実行時刻」が「無効」になっていることを確認

ステップ3:USB選択性サスペンドでスピンダウンを促す

  1. デバイスマネージャを開けて「ユニバーサルシリアルバスコントローラー」を展開
  2. 「USB ルートハブ (USB 3.0)」を右クリック→「プロパティ」→「電源管理」タブ
  3. 「コンピューターがこのデバイスを無効にして省電力することができる」をチェックを外す
    ※チェックを外すことで、WindowsがHDDを「休止させる」判断をせず、HDD本体の省電力機能(スピンダウン)に任せる
  4. 該当外付けHDDの「ディスクドライブ」プロパティでも同様に「省電力のためにデバイスをオフにする」を外す
  5. 最後に、HDDメーカーツール(WD Utilities、Seagate Dashboardなど)で「スピンダウンタイマ(5分・10分)」を有効にすると、Windowsがアクセスしても即スピンダウンしてくれるため「完全な無音&長寿命」を両立できる

ハマった点:レジストリの「EnableAutoLayout」が再設定を防ぐ

上記手順をやっても、Windows Update後に「SysMainが復活」「Defragタスクが再有効化」することがあります。
これは、レジストリの
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\EnableAutoLayout
1のままだと、更新プログラムが「パフォーマンスを向上」と称してサービスを再有効化するためです。
対策として、同キーを0にしておくと、更新プログラム側も「現在の設定を尊重する」動作になり、再有効化されにくくなります。

解決策:レジストリで「EnableAutoLayout」を0に書き換える

  1. Win+R → regedit → 管理者承認
  2. 上記キーまで移動
  3. EnableAutoLayoutをダブルクリックし値を0に(なければ新規作成→DWORD 32bit)
  4. 念のため、同階層にあるEnablePrefetcherEnableSuperfetch0
  5. 再起動後、services.mscでSysMainが「無効」のままなことを確認
    ※元に戻す場合は、値を1もしくはキーを削除して再起動すればOK

まとめ

本記事では、Windowsが裏で外付けHDDにアクセスする3大元凶(SysMain・Windows Search・Defrag)を特定し、
- サービス無効化
- タスクスケジューラで定期実行を止める
- USB選択性サスペンドを切ってHDD本体の省電力に任せる
という3段構えで、完全にスピンアップを抑止する方法を解説しました。

  • サービス無効化だけで効果を感じる人
  • タスクスケジューラまで手を入れて長期運用したい人
  • レジストリで更新プログラムの再設定も防ぎたい人

それぞれのレベルで「必要十分」な手順を選べるのがポイントです。
今後は、NASやLinux系デバイスで外付けHDDを常時回転させている場合の「hdparm」「hd-idle」設定、およびWindows側でSMBアクセスを最小化するレジストリテクニックについても記事にする予定です。

参考資料

  • Microsoft Docs:SysMainサービスの説明
    https://learn.microsoft.com/ja-jp/windows-hardware/drivers/devapps/prepare-hardware-for-superfetch
  • 外付けHDDの省電力と寿命に関する研究(東芝メモリ株式会社 技術資料)
    https://business.toshiba-mem.com/ja-jp/ssd/support/whitepaper
  • 著者検証環境:Windows11 Pro 23H2(Build 22631.2861)、Western Digital Elements 10TB、Seagate Backup Plus Hub 8TB