「Windows 10ミニTips」は各回の作成時点で最新のWindows 10環境を使用しています。

Windows 10に移行すると、一部の古いNAS(Network Attached Storage)へアクセスできないケースが散見する。これはNASのOSがLinuxなどを使用し、ファイル共有プロトコルであるSMB(Server Message Block)の古いバージョンを使用しているからだ。今回はWindows 10側でこの問題を解決するTipsを紹介する。

SMBのバージョンとは

WindowsはSMBというファイル共有プロトコルを用いて、互いのPC上に保存したファイルをやりとり可能にしている。ここで混乱しやすいのがCIFS(Common Internet File System)の存在だ。

MicrosoftやLinux周辺の説明も時代によって異なるが、現時点でMicrosoftは「SMB 1.0は、CIFSを拡張したプロトコルとしてWindows 2000以前のOSに実装した」と説明する。そのため「SMB 1.x = CIFS」とし、現在のWindowsは「その時々の最新SMBを使用している」という認識で構わない。

各WindowsがサポートするSMBのバージョン

Windows 10はSMB 3.1.1という最新のバージョンを実装しているが、それを使えるのは(執筆時点で)Windows 10同士のみである。今後リリースされるWindows Server 2016(仮)は、SMB 3.1.1をサポートするようだ(Technical Preview 4で確認済み)。

PowerShellで確認すると、「Dialect」の部分にSMBのバージョン情報が示される。「eve」はWindows 10 PC、IPアドレスはLAN上のNASだ

NASにアクセスできない理由

さて、NASにアクセスできない理由はいくつも考えられるが、比較的多いのがSMBバージョンの問題だ。筆者の環境には古いNASがないため、あくまで実験として、Linux上のSamba(Windowsネットワークを提供するソフトウェア)で使用可能なSMBのバージョンを「NT1(SMB 1.x)」に限定すると、アクセスできない旨を示すメッセージが現れる。

SMB 1.xをサポートしていないWindows 10でNASにアクセスすると、接続エラーが発生する

MicrosoftはWindows 8.1の時点で、SMB 1.xを非推奨機能にしたものの、Windows 8.1もWindows 10 ビルド10586も、「SMB 1.0/CIFSファイル共有のサポート」を初期状態で有効にしている。

そのため上図のようにNASアクセス時にエラーが発生する場合、「SMB 1.0/CIFSファイル共有のサポート」を何らかの理由で無効にしているか、他の問題が発生している可能性が高い。

SMB 1.0を有効にする

SMB 1.0のサポートを有効にするには、「Windowsの機能の有効化または無効化」を操作する。

「Win」+「S」キーを押して検索ボックスに「機能」と入力し、「Windowsの機能の有効化または無効化」をクリック/タップ

一覧から「SMB 1.0/CIFSファイル共有のサポート」のチェックが外れている場合は、クリック/タップでチェックを入れて有効化する。なお、PCの再起動が必要なため、他の作業を行っている場合はあらかじめ終了させておこう。

「SMB 1.0/CIFSファイル共有のサポート」をクリック/タップしてチェックを入れたら、「OK」ボタンをクリック/タップ

「今すぐ再起動」ボタンをクリック/タップ

再起動後に同じNASにアクセスすると、SMB 1.xでアクセスできることを確認できるはずだ。なお、ご自身の環境でSMBバージョンを確認するには、管理者権限でPowerShellを起動し、「Get-SmbConnection」を実行すればよい。

再起動後にNASへアクセスすると、今度はSMB 1.xで接続していることが確認できる

阿久津良和(Cactus)