IT

Windows10 – 共有フォルダにアクセスできなくなった時に確認しておきたいこと

パソコンのサポートの仕事をしていると、突然ネットワークに繋がらなくなったというサポートの依頼を受けることがあります。

先日、お客さまよりこのようなお問い合わせがありました。

「ローカルネットワークの中にいるWindows10のパソコンから共有フォルダにアクセスできなくなってしまった」

エクスプローラのアドレスバーに「\\コンピュータ名」といったUNC形式の文字を直接入力
(例:\\USER-PC)

エラーコード 0x80004005
エラーを特定できません

Windowsにはsmbというファイル共有の機能が搭載されています。
smbにはバージョンがあり,Windows10ではsmbv3が使われています。このエラーは共有フォルダを公開する側がsmbv1になっている場合に発生するようです。

以前は共有フォルダにアクセスできていました。原因はバージョン1709以降のWindowsでsmbv1が無効になることにあったようです。

Windows10のインストールやアップデート後の利用状況によって,実際はsmbv1が無効にならない場合もあるそうです。

Windows 10 Home と Windows 10 Professional のインプレースアップグレードと Insider 便では、最初に SMBv1 が自動的に削除されるわけではありません。 SMBv1 クライアントまたはサーバーが合計で15日間使用されていない (コンピューターがオフになっている時間を除く) 場合、それぞれが自動的にアンインストールされます。 

https://docs.microsoft.com/ja-jp/windows-server/storage/file-server/troubleshoot/smbv1-not-installed-by-default-in-windows


ローカルネットワークの構成
NTTホームゲートウェイ[PR-500MI]
+--ポート
   +--LINE
      to インターネット
   +--無線カード
      +--SSID-1 (2G)
         to パソコン[windows10]共有フォルダを公開する側 192.168.1.5
         to パソコン[windows10]共有フォルダに接続する側 192.168.1.2
      +--SSID-2 (2G)
      +--SSID-3 (5G)
   +--有線LAN
      +—ネットワーク周辺機器

共有フォルダを公開する側のパソコンには「Windowsのログインパスワード」の設定と「共有フォルダのアクセス権」の設定が,それぞれ適切に行われているものとします。
共有相手はEveryoneやGuestではなく特定のユーザーとします。

尚,エクスプローラのネットワークの一覧に,ローカルネットワークのコンピュータが表示される/されないについては,ネットワーク探索の問題なので,この記事では説明を省略いたします。

Windows10のネットワーク探索については,こちら外部リンクをご参照ください。


そもそもWindowsの共有フォルダにアクセスするにはどうなっていればよい?

共有フォルダを公開する側、共有フォルダに接続する側の双方でsmbv1を有効にするのもひとつの方法ですが,下記の理由からあまりおすすめできません。

Windows8.1からsmbv1は非推奨になっています。セキュリティや通信効率の面で機能強化されたsmbv2/v3を使いましょうということになりました。smbv1しか対応してないNASとかだと仕方ないですが,MSが非推奨にしているプロトコルを使い続けるのはよろしくないと言えるでしょう。

やはりここは共有フォルダを公開する側で対処したいものです。Windows10では後継プロトコルのsmbv2/v3で共有ファイルにアクセスするのでsmbv1を削除しても問題ありません。

smbv1の削除は「Windowsの機能」から行ないます。共有フォルダを公開する側のパソコンで、以下の操作手順を行ってください。

[Win]+[R]キーを押して「ファイル名を指定して実行」を開きます。テキストボックスに入力するコマンドは「optionalfeatures」です。
機能の一覧から「SMB 1.0/CIFS ファイル共有のサポート」のチェックボックスをオフに変更します。機能の無効化を終えて「OK」をクリックすると、Windowsの再起動を促されるので「今すぐ再起動」をクリックします。

共有フォルダを公開する側のパソコンのsmbv1が削除されると、その後はsmbv2/v3でアクセスを待ち受けるようになります。共有フォルダに最初にアクセスするときは、smbのバージョンを合わせる処理が行われ、互いが使える最大のバージョンに合わせます。Windows10同士であればsmbv3で共有フォルダにアクセスできるようになります。

エクスプローラのアドレスバーに「\\」に続けてIPアドレスを指定することで、ネットワーク探索の状況に左右されず、共有フォルダの一覧が表示されてデータにアクセスできるようになります。

共有フォルダを開いた状態で、PowerShellを管理者として開き
Get-SmbConnection
というコマンドレットを使うと、共有フォルダにアクセスしているsmbのバージョンがわかります。


PS C:\WINDOWS\system32> Get-SmbConnection

ServerName  ShareName UserName             Credential Dialect NumOpens
----------  --------- --------             ---------- ------- --------
192.168.1.5 Public    DESKTOP-EHJMXXU\MyPC \owner     3.1.1   1

ここではDialect(ダイアレクト)の値が「3.1.1」と表示されています。
3.1.1の表記はsmbv3を示しています。これでsmbv3を利用してアクセスが行われていることがわかります。

ここまでお読みいだきありがとうございました。

  • ABOUT ME
    oki
    主に保守、運用業務に従事しています。