By ゆき / 最後の更新 2020年03月29日

ネットワーク内のWindowsサーバーやPCで共有フォルダなどの共有資源にアクセスしようとすると、「このコマンドを処理するのに必要な記憶域をサーバーで確保できません」というエラーメッセージが表示され、うまくアクセスできないことがあります。これが発生した場合どうしたらいいでしょうか?この記事ではその原因、解決策などをご紹介します。

Windowsの共有フォルダへのアクセスに関する問題

現在、パソコンを複数台持っている人は少なくありません。データの整合性を保つために、共有フォルダを作成するのは最も一般的な方法です。

ファイルやフォルダの共有方法

ネットワーク経由でファイルやフォルダを共有すると、別のパソコンからそのフォルダに読み書きすることが可能になります。この方法でファイルやフォルダーの移動やコピーが簡単になるので、パソコンの間でデータを頻繁に移動・コピーする必要がある方にとってとても便利です。

まとめ:共有フォルダについての注意点●共有フォルダは、複数台のパソコンまたは複数人でフォルダを共有して使いまわせる便利なフォルダです。
●共有フォルダが、他のパソコンから参照したり、書き込んだり、時には削除したりすることができます。
●複数台のパソコンが同一ネットワークにある限り、ファイルやフォルダの共有ができます。

しかし、時には、ネットワーク上の共有フォルダーへ他のPCなどからアクセスすると「このコマンドを処理するのに必要な記憶域をサーバーで確保できません」エラーが発生することはあるでしょう。

補足:また、マイコンピュータ⇒管理⇒イベントビューア⇒Windowsログ⇒システムでエラーを確認すると、システムログに次のようなイベントメッセージが出力されていることがあります。

イベントメッセージ

  • 次はユーザーからの悩みをいくつか挙げます:
    (※エラーの対処法を急いで知りたいなら、この部分を無視(´-_ゝ-`)してもOK)

    WindowsXPのPCからWindows7のPCへネットワーク経由でファイルコピーをすると、数百M~数G程度なら問題は発生しないが、数十G単位でファイルコピーをすると、途中で「IPアドレスにあくせすできません。このネットワークリソースを使用するアクセス許可が無い可能性があります。アクセス許可があるかどうかこのサーバの管理者に問い合わせてください。このコマンドを処理するのにひつような記憶域をサーバで確保できません」エラーが発生し、以後XPのPCから7のPCにアクセスできなくなります。エラー
    Windows7側の空き容量等には問題なし。症状が出た後、XP側、7側ともインターネットへの接続は問題なし。原因が不明です。どなたかこの症状の回避方法等、分かればご教示ください。

    長年お世話になったNorton Internet Securityをアンインストールした。WinXP SP2での動作が重たくなったからだ。ところがその直後から、自宅LANの他のPCにアクセスできない。ポップアップするエラー表示には、「このネットワークリソースを使用するアクセス許可がない可能性があります。アクセス許可があるかどうかこのサーバーの管理者に問い合わせてください。このコマンドを処理するのに必要な記憶域をサーバーで確保できません。」とのメッセージ。この問題、どうやって解決したのか?

    今までWindowsXPのフォルダ共有を行ってきて接続できないことがなかったのですが、新たに構築した別のネットワークシステムでファイルの共有を行おうとすると「このコマンドを処理するのに必要な記憶域をサーバーで確保できません」というエラーメッセージが出て接続できなくなりました。解決策、教えてくれたら嬉しいです。よろしくお願いいたします。

    新規購入したWindowsXPの端末で、フォルダの共有を設定したんですが、他のクライアントからアクセスしようとすると「このコマンドを処理するのに必要な記憶域をサーバーで確保できません。」となりアクセスできません。ご教示いただければ幸いです。

エラーの原因および対処方法

原因:このコマンドを処理するのに必要な記憶域をサーバーで確保できません

このエラーの発生は、おそらく現代の環境ではめったに関係しないと思われますが、レガシーな環境では発生することもあると思われます。

実はこれはWindowsのServerというサービスで利用しているスタックというメモリが不足する場合に発生するエラーなのです。(注:ServerサービスはOSがWindows Serverに限らず、Windows ProfessionalでもWindows Homeでも存在するサービスです。)勝手にスタックサイズを書き換えてしまうため、記憶域が足りなくなる状況もあります。

要するに、このエラーメッセージが出る場合は共有フォルダがあるパソコンのServerサービスが使用するスタック領域が足りない可能性があるのでレジストリ内のスタック領域の値を増やす事で解決できます。

【もうちょっと深い解説】このエラーは、接続先のサーバーやパソコンのIRPStackSize(I/O 要求パケット「IRP」のスタック ロケーション数)が小さい場合に発生するようです。 IRPStackSizeを大きく設定することにより改善します。

------------------------------------------------------------------------------------------------------------------------------------------------
補足:また、ウイルス対策ソフトウェアが原因で同様の症状が出ることもありますが、時間の関係上、ここは割愛します。

対処法:このコマンドを処理するのに必要な記憶域をサーバーで確保できません

では、「このコマンドを処理するために必要な記憶域をサーバーで確保できません」エラーが発生する時の対処方法について詳しくご説明します。


上述のように、レジストリ内のスタック領域の値(★IRPStackSize)を変更することでエラーを修正できますが、レジストリの変更はパソコンが起動できなくなったりする危険が伴いますので自己の責任において行ってください。

重要なこと:万一に備えて、編集の前には必ずレジストリをバックアップし、レジストリの復元方法を理解しておいてください。

対応手順は以下の通り:

  • 1. Windows 7、8、10またはWindows Server 2019、2016、2012に管理者でログオンします。

  • 2. Windowsロゴキーを押しながらRキーを押し、「ファイル名を指定して実行」を起動します。

  • 3. 名前に「regedit」と入力してOKボタンを押し、レジストリエディタを開きます。

  • 4. 以下のレジストリキーを辿ります。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

  • 5. Parametersキーをクリックし、右側のウィンドウで、名前の「IRPStackSize」をダブルクリックします。

  • 補足:IRPStackSizeの項目がない場合Parametersキーを右クリック(或いは右側の空白で右クリック)→新規→DWORD値→「新しい値 #1」の名前を「IRPStackSize」にすることで「IRPStackSize」という値を新規作成することができます。
    ※ポイント:値の名前では大文字と小文字が区別されるため、IRPStackSizeは記載どおりに正確に入力してください。


  • 6. 10進数を選び、データの値に11よりも大きい数値(3の倍数)を記入して「OK」します。(値は、3程度づつ増やすことをお勧めします。つまり、前の値が11の場合は、14と入力してください)


  • しかし、IRPStackSizeエントリが存在しない場合、デフォルトで値は15に設定されるため、IRPStackSizeの値を作成する時、15よりも大きな値を入力するべきです。

  • 7. レジストリエディタを終了してWindowsを再起動すれば変更完了です。

  • 8. 最後は、services.mscからServerサービスを選択し再起動します。依存サービスであるComputer Browserサービスも同時に再起動されます。

こうすると、共有フォルダがアクセス可能になるわけです。

しかし、上記の手順を実行しても、問題が依然として発生する場合は、IRPStackSizeの値をさらに大きくします。例えば、Windows 2000でこの値の最大値は、50(16進数では0x32)です。面倒なら50まで一気に引き上げても大丈夫のようです。

・Windows NTの場合 範囲は4~12(10進数)
・Windows 2000の場合 範囲は11~50(10進数)
・Windows XPの場合 範囲は11 ~ 50(10進数)
・Windows 2003の場合 Windows XPと同じ

※OSによって設定できる範囲が異なるのでご利用の環境に合わせて値を設定してください。

(●'◡'●)補足※蛇足ですが、この同じレジストリキーの中に「Size」という名前があるはずです。この「Size」はネットワークのパフォーマンスに影響を与えます。通常この値は「2」になっているはずですが、この値は「1」はメモリ消費量を最小限にする、「3」はネットワークススループット優先、「2」はその中間をとったバランス優先となります。つまり簡単に言うとこの値を「3」にするとこのマシン上からネットワークへのデータの送受信スピードが多少は速くなるというわけです。

上記の資料では、IrpStackSizeの値を大きくすることが推奨されています。ただし、この値を最大値に設定しても(Windows NT 4.0を実行するコンピュータでは値を最大値の12に設定する、または Windows 2000を実行するコンピュータでは最大値の50に設定する)、依然としてこの問題が発生することがあります。こういう場合、次のソリューションを試してみることができます。

ネットワーク経由でファイルを共有するより良い方法

上述の方法は少し難しい話になってしまうかもしれません。また、効果ない場合もあります。そのため、次はファイルまたはフォルダを共有し、アクセスするもっと簡単な方法をご紹介したいです。

✿同期ツールを使う✿AOMEI Backupper Standard(完全無料)はWindows 10/8/7/Vista/XPに対応し、パソコン初心者でも簡単に使えます。強力な同期機能を備えて、内蔵ハードディスクのファイルやフォルダを外付けHDD、NASまたはネットワーク上のフォルダに同期させることができます。こちらからダウンロード
毎日、毎週、毎月ファイルが定期的に自動同期できるほか、複数のファイル(フォルダ)が同時に同期できます。また、大きな割引でAOMEI Backupper Professionalにアップグレードすると、電子メール通知を通して操作が正常に完了するかを確認できます。

ヒント:Windows Server 2019/2016/2012(R2)/2008(R2)/2003を実行するコンピュータでは、AOMEI Backupper Server版を使用してください。また、複数(または台数無制限)のサーバーでこの同期機能が必要とされる場合、AOMEI Backupper Technician Plus版(*有償技術サポートの提供も可能)を使用してください。各AOMEI Backupper(AB)バージョンの比較

AOMEI Backupperをインストールして起動した後、ネットワーク経由でファイルを共有、同期する手順を見てみましょう~\(*⌒0⌒)♪(ここではAOMEI Backupper Standardを例とする)

インストール

  • 1. 「バックアップ」タブ→「同期」をクリックします。同期

  • 2. ここでタスク名を好きなように変更できます。そして「フォルダを追加」をクリックします。「ブラウズ」で共有したいフォルダを選択して「はい」をクリックします。フォルダを追加

  • 3. 「2」の右側の逆三角形ボタンをクリックし、「ネットワーク共有またはNASを選択」を選択します。逆三角形ボタン

  • 4. 「Share/NASデバイスを追加」をクリックし、「Share/NASのパス」欄に有効なネットワークパス(ネットワーク経路)を入力し、「はい」をクリックします。ネットワークパス

  • 5. 上のすべての操作手順を終えたら、「開始」をクリックして同期を実行します。開始

✎ノート:

●AOMEI Backupper Professionalでは、特定の拡張子を持つファイルを同期させることができます。手順 2で「フィルタオプション」をクリックしてこの機能を利用できます。フィルタオプション

●同期タスクは他のタスクから区別されるために手順 5で「オプション」をクリックし、「普通」タブで現在の操作についてコメントを追加することができます。コメント

●手順 5で「スケジュール」をクリックし、ファイルを自動同期させることができます。デイリーウイークリーマンスリーイベントトリガー(有料)、USB挿入(有料)、リアルタイム同期(有料)のスケジュール種類があります。スケジュール

●現在、このフリーソフトは一方向同期のみをサポートします。

●同期後、ソースフォルダ(同期元)の名前を変更しないでください。さもないと、AOMEI Backupperはそのフォルダを同期させることができなくなります。

最後に

「このコマンドを処理するのに必要な記憶域をサーバーで確保できません」エラーが発生する時、心配しなくこの記事で紹介されていた方法を使用することができます。

問題を解決した後、まだAOMEI Backupper Standardを使用してネットワーク経由でファイルをアクセスして移動・コピーすることができます。操作が非常に簡単ですし、様々な強力なオプションがあるため、あまり時間と手間がかかりません。