Windowsの共有フォルダ・ネットワークドライブへのアクセスが遅いときの原因と対処法
Windows環境で、ネットワーク共有フォルダ上のファイルを開いたり保存したりする際に、動作が極端に遅いという不満がユーザーから寄せられることがあります。UNCパス(\\サーバー名\共有名)経由、またはネットワークドライブとして割り当てたドライブ文字経由で共有フォルダを開くと、内容が表示されるまで10〜60秒かかるケースがあります。また、ネットワークフォルダに新規ファイルを作成してもすぐには表示されず、F5キーでフォルダの内容を更新しても3〜4分後にようやく反映されます。ただし、UNCパスでファイル名をフルパスで直接指定すれば(例:\\lon-file-srv1\public\new_file.docx)、エクスプローラーには表示されていなくてもファイル自体は開けます。

原因:SMBクライアントのメタデータキャッシュ
Windowsは、リモートコンピューター上の共有ファイルやその他のネットワークリソースへアクセスする際、「ネットワークリダイレクター」と呼ばれる特殊なコンポーネントを使用します。SMB v2.x以降では、このネットワークリダイレクターが共有フォルダやファイルへのアクセス時にキャッシュ機構を利用します。これにより、クライアントとサーバー間のトラフィック量やSMB要求の数が削減され、特に低速で不安定なネットワーク環境において効果を発揮します。既定では、このキャッシュは10秒ごとにクリアされます。
Windowsクライアントでネットワーク共有へのアクセスが遅い場合は、クライアント側または共有フォルダの設定でSMBメタデータキャッシュを無効化することを試してみてください。
対処法1:共有フォルダの設定でSMBキャッシュを無効化する
共有フォルダのプロパティを開き、「共有」タブ→「詳細な共有」→「キャッシュ」の順に進みます。ここで「この共有フォルダのファイルやプログラムはオフラインで使用不可」を選択してください。

または、次のPowerShellコマンドでも同じ設定が可能です。
Set-SMBShare -Name MySharedDocs -CachingMode None
このコマンドにより、対象の共有フォルダに対するキャッシュとオフラインアクセスの両方が無効になります。
対処法2:レジストリでSMBクライアントのキャッシュを制御する
SMBクライアント側のネットワーク共有フォルダのキャッシュ設定を管理するレジストリ値は3つあります。Microsoftによれば、これらの既定値はほとんどの環境で最適なパフォーマンスを提供するとされています。SMBキャッシュの設定は、次のレジストリキーに格納されています。
HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters
- DirectoryCacheLifetime:共有フォルダのメタデータキャッシュの有効期間(既定値:10秒)
- FileNotFoundCacheLifetime:「ファイルが見つかりません」という応答のキャッシュ時間(既定値:5秒)
- FileInfoCacheLifetime:ファイル情報キャッシュの保持時間(既定値:10秒)
これらのレジストリ設定の詳細については、Windowsファイルサーバーのパフォーマンスチューニングに関するMicrosoftの公式ドキュメントも参考になります。
参考:https://docs.microsoft.com/en-us/windows-server/administration/performance-tuning/role/file-server/
既定では、SMB共有フォルダのキャッシュ有効期間はわずか10秒です。クライアントが共有フォルダの内容を更新すると、その結果が10秒間クライアント側に保持され、このネットワーク共有へアクセスするすべてのアプリケーションはまずこのキャッシュを利用しようとします。
しかし、一部の環境ではSMBフォルダのデータキャッシュ機構が正しく動作しないことがあります(特に数千のファイルやフォルダを含むネットワークフォルダ/ドライブで発生しやすい傾向があります)。この場合、共有フォルダ内のファイルを開く・閲覧する・作成する操作に大きな遅延が発生します。
SMBフォルダのキャッシュを無効化するには、HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parametersキーの下にDirectoryCacheLifetimeという名前のDWORD値を作成し、値を0に設定します。あわせて、FileInfoCacheLifetimeとFileNotFoundCacheLifetimeの値も0に設定します。これらのレジストリ値は、regedit.exeまたはNew-ItemPropertyコマンドレットを使って作成できます。
$regpath= "HKLM:\System\CurrentControlSet\Services\LanmanWorkstation\Parameters"
$Name1 = "DirectoryCacheLifetime"
$Name2 = "FileInfoCacheLifetime"
$Name3 = "FileNotFoundCacheLifetime"
New-ItemProperty -Path $regpath -Name DirectoryCacheLifetime -Value 0 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $regpath -Name FileInfoCacheLifetime -Value 0 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $regpath -Name FileNotFoundCacheLifetime -Value 0 -PropertyType DWORD -Force | Out-Null

設定を有効にするにはコンピューターの再起動が必要です。複数のドメイン参加コンピューターにこれらの設定を適用したい場合は、GPOを使ってレジストリ設定を展開すると効率的です。
注意: ネットワークフォルダのキャッシュを無効化すると、ネットワークトラフィックが増加し、ファイルサーバーのパフォーマンスが低下する可能性があります。導入前に影響範囲を十分に検討してください。
また、Set-SmbClientConfigurationコマンドレットを使用して、SMBクライアントをきめ細かくチューニングすることもできます。
Set-SmbClientConfiguration -DirectoryCacheLifetime 0
Set-SmbClientConfiguration -FileInfoCacheLifetime 0
Set-SmbClientConfiguration -FileNotFoundCacheLifetime 0
Windows SMBクライアントの現在のキャッシュ設定は、PowerShellで次のコマンドを実行して一覧表示できます。
Get-SmbClientConfiguration | select *cache*
DirectoryCacheEntriesMax : 16 DirectoryCacheEntrySizeMax : 65536 DirectoryCacheLifetime : 0 FileInfoCacheEntriesMax : 64 FileInfoCacheLifetime : 0 FileNotFoundCacheEntriesMax : 128 FileNotFoundCacheLifetime : 0

これらの設定変更後は、共有フォルダ内のすべての変更が即座にクライアントへ反映されるようになります(フォルダへアクセスするたびに内容が更新され、ローカルキャッシュは使用されなくなります)。
その他の原因と対処法
共有フォルダのネットワークパフォーマンスが低下したり、フォルダの内容の表示が遅くなったりする原因は、他にもいくつか考えられます。
- 共有フォルダの設定で「アクセスベースの列挙(ABE)」を有効にしていると、多数のオブジェクトを含む共有フォルダでファイル一覧の更新が遅くなることがあります。
- Windows Server 2019上で稼働するHyper-V仮想マシンでは、Windows Server 2016/2012R2と比較してネットワーク速度が低下する場合があります。
- ドメイン参加デバイスでは、TCP/IPv4接続のプロパティからレガシーなNetBIOSプロトコルを無効化してみてください(
ncpa.cplを実行→ネットワークアダプターのTCP/IPv4設定を開き、「WINS」タブで「NetBIOS over TCP/IP を無効にする」を選択)。 - Windowsクライアント側でネットワークおよびTCP/IPスタックの設定をリセットしてみてください。Windows 10以降では、設定アプリの「ネットワークリセット」オプションを使用するか、次のコマンドを実行します:
netsh int ip reset
-
Windows 11で共有フォルダにアクセスできないときの対処法を徹底解説
Windows 11で共有フォルダにアクセスできずにお困りではありませんか?実はこの問題はよく発生するトラブルの一つですが、心配はいりません。PCの設定を少し変更するだけで、共有フォルダへのアクセスを簡単に復旧できます。まず、共有フォルダについて簡単にご説明します。共有フォルダとは、同一ネットワーク上で複数のデバイスからファイルリソースへアクセスできるようにする仕組みです。共有フォルダを作成すると、その中に含まれるすべてのファイルやサブフォルダがネットワーク経由で共有されます。そのため、共有フォルダにアクセスできない状態は業務の流れを妨げ、大きなストレスになることもあります。共有フォルダが動作
-
【解決済み】Windows 10 / 8.1 / 7で「不明なネットワーク・インターネットアクセスなし」エラーを直す方法
Windows 10 21H2へのアップデート後にネットワーク接続が切断され、共有ファイルにアクセスできなくなっていませんか?また、通知領域のネットワークアイコンに黄色の感嘆符が表示され、「不明なネットワーク・インターネットアクセスなし(Unidentified network No network access)」というメッセージが出ることもあります。「不明なネットワーク」とは、現在の接続においてコンピューターにゲートウェイが設定されていない状態を意味します。多くの場合、有効なゲートウェイを入力することで問題は解決します。また、誤ったネットワーク設定や、古い・破損したネットワークアダプターの