【Windows】「システムリソースが不足しているため、要求されたサービスを完了できません」の直し方

【Windows】「システムリソースが不足しているため、要求されたサービスを完了できません」の直し方
🛡️ 超解決

Windowsを使っている際、アプリケーションの起動やファイルのコピー時に「システムリソースが不足しているため、要求されたサービスを完了できません」というエラー(エラーコード:1450)が表示されることがあります。この警告の厄介な点は、PCに十分なメモリ(RAM)や空き容量がある状態でも発生する「論理的なリソースの枯渇」であることです。

このエラーは、単にアプリをたくさん開きすぎているから起きるわけではなく、Windowsのカーネル(OSの中枢)が管理する「ページプール(Paged Pool)」という特定のメモリ領域が上限に達している、あるいはセキュリティソフトの干渉によってリソースがロックされている場合に発生します。本記事では、レジストリ操作によるメモリ管理の最適化から、仮想メモリの再設定、ウイルス対策ソフトの競合解消まで、技術的な裏付けに基づいた解決手順を詳説します。

結論:リソース不足エラーを解消する3つのステップ

  1. レジストリで「ページプール」の上限を調整する:OSがメモリを効率的に回収できるように設定を書き換えます。
  2. サードパーティ製セキュリティソフトを一時停止する:フィルタドライバによるハンドルの専有を解除します。
  3. 仮想メモリ(ページファイル)を拡張する:物理メモリ不足を補うスワップ領域を手動で再定義します。

1. エラーの原因:物理メモリ(RAM)不足との違い

タスクマネージャーを見て「メモリ使用率に余裕があるのに、なぜリソース不足なのか?」と疑問に思うかもしれません。このエラーの正体は、物理的なメモリ容量ではなく、OS内部の「管理用リソース」の限界です。

技術的な発生要因(プールメモリの枯渇)

  • ページプール(Paged Pool)の限界:OSがドライバやプログラムの管理に使用する特殊なメモリ領域です。これが一杯になると、たとえRAMが16GB以上余っていても、新しいプロセスを開始できなくなります。
  • ハンドルリーク(Handle Leak):特定のアプリやドライバが、不要になったリソースを返さずに掴み続けてしまう現象です。
  • セキュリティソフトの干渉:ウイルス対策ソフトがファイルをスキャンする際、大量の「ハンドル」を消費し、一時的にOSのリソースを使い切ってしまうことがあります。

2. 手順①:レジストリ編集によるメモリ管理の改善

このエラーに対する最も根本的な「専門家向け」の解決策です。OSがメモリプールを回収し始めるタイミング(しきい値)を調整します。

  1. 「Win + R」を押し、regedit と入力して実行します。
  2. 以下のパスに移動します:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
  3. 右側のパネルで 「PoolUsageMaximum」 という値があるか確認します。なければ右クリック > 新規 > DWORD(32ビット)値 で作成します。
  4. 値を 60 (10進数)に設定します。※これは、プールが60%に達した段階でOSがクリーニングを開始することを意味します。
  5. 次に 「PagedPoolSize」 という値をダブルクリックし、値を ffffffff (16進数)に設定します。※これは最大値を動的に割り当てる設定です。
  6. PCを再起動して、エラーが解消されるか確認します。

3. 手順②:セキュリティソフトの「フィルタドライバ」の切り分け

特定のセキュリティソフト(McAfee、Norton、ウイルスバスター等)を導入している環境で、スキャンエンジンがリソースを専有しているケースが多く報告されています。

  1. 一旦、サードパーティ製のウイルス対策ソフトを無効化(またはアンインストール)します。
  2. Windows標準の「Microsoft Defender」のみが動いている状態で、同じ操作(アプリ起動やコピー)を行い、エラーが出るか試します。
  3. エラーが出ない場合、原因はそのソフトの仕様(またはバグ)にあります。ソフトを最新版にアップデートするか、設定で「リアルタイムスキャンの除外対象」に問題のフォルダを指定してください。

4. 手順③:仮想メモリの設定を手動で最適化する

システムが管理しているページファイル(仮想メモリ)のサイズが、リソース要求に追いついていない場合に有効です。

  1. 「設定」>「システム」>「詳細情報」>「システムの詳細設定」を開きます。
  2. 「詳細設定」タブの「パフォーマンス」セクションにある「設定」をクリックします。
  3. さらに「詳細設定」タブを開き、「仮想メモリ」の「変更」をクリックします。
  4. 「すべてのドライブのページングファイルのサイズを自動的に管理する」のチェックを外します
  5. 「カスタムサイズ」を選択し、推奨値(例:物理メモリの1.5倍程度)を入力し、「設定」をクリックして保存します。

5. 対処法別の効果とリスク比較

現在のPCの状況に合わせた最適な手法を選択するためのガイドです。

手法 期待できる効果 リスクと難易度
レジストリ編集 OSのメモリ管理ロジックを修正。根本解決に最も近い。 高(慎重な操作が必要)。
セキュリティソフト無効化 ソフトによるハンドルリークを即座に特定。 低(一時的な検証用)。
仮想メモリ拡張 全体的な作業領域(コミット済みメモリ)を増加。 中(ストレージ空き容量を消費)。

6. それでも解決しない場合の高度な診断

上記の手順をすべて行ってもエラーが続く場合、特定の「ドライバ」がメモリを漏洩させている可能性が高いです。これを特定するには、Microsoft公式のデバッグツール 「Poolmon」 を使用します。

  • Poolmonの利用:Windows Driver Kit (WDK)に含まれるツールで、どの「タグ(Tag)」がページプールを大量に消費しているかをリアルタイムで監視できます。
  • タグの特定:例えば「Etwd」というタグが大量消費していれば「イベントトレーシング」の不具合、「Nfat」であれば「ファイルシステムフィルタ」の不具合、といった具合に真の犯人を射抜くことが可能です。

まとめ:OS内部の「交通整理」を正常化する

「システムリソースが不足している」というエラーは、PCスペックに対する不満ではなく、OSが行っている「メモリの交通整理」に滞りが発生しているサインです。再起動で一時的に直ることもありますが、頻発する場合はレジストリの PoolUsageMaximum 調整などの技術的介入が必要となります。

まずはレジストリのしきい値を調整し、次にセキュリティソフトの競合を疑う。この順序で対応することで、PCの物理的な買い替えを検討する前に、ソフトウェアレベルでの健康状態を取り戻すことができます。自身の作業環境を論理的に管理し、不透明なシステムエラーに振り回されない堅牢なPC環境を構築してください。