WindowsのSMB v3はSMB v2より新しいが、SMB v3はSMB2である:その知識、ホントに正しい? Windowsにまつわる都市伝説(180)
Windowsネットワークにおけるファイルおよびプリンタ共有プロトコルの標準といえば、「Server Message Block(SMB)」です。DOS/Windows向けの初期の「LAN Manager」から続く歴史の長いこのプロトコルは、下位互換性を提供しながらバージョンアップしてきました。現在、下位互換性を維持するためには、追加の手順が必要な場合があることをご存じでしょうか。
SMBの最新バージョンはSMB 3.1.1だが、同じSMB 3.1.1でも機能差あり
Windowsの登場以前から存在する「Server Message Block(SMB)」は、「Windows XP」および「Windows Server 2003 R2」以前の「SMBバージョン1(SMB 1.0/CIFS)」、「Windows Vista」および「Windows Server 2008」で登場した初めての新しいメジャーバージョン「SMBバージョン2(SMB v2、SMB 2.0)」、「Windows 7」および「Windows Server 2008 R2」の「SMB 2.1」、「Windows 8」および「Windows Server 2012」の「SMBバージョン3(SMB v3、SMB 3.0)」、「Windows 8.1」および「Windows Server 2012 R2」の「SMB 3.0.2」、そして「Windows 10」および「Windows Server 2016」以降の「SMB 3.1.1」とバージョンアップを繰り返してきました(表1)。
Windows | SMB |
---|---|
Windows XP(EoS)およびWindows Server 2003 R2(EoS)以前 | SMB 1.0/CIFS |
Windows Vista(EoS)、Windows Server 2008(EoS) | SMB 2.0 |
Windows 7(EoS)、Windows Server 2008 R2(EoS) | SMB 2.1 |
Windows 8(EoS)、Windows Server 2012 | SMB 3.0 |
Windows 8.1、Windows Server 2012 R2 | SMB 3.0.2 |
Windows 10、Windows Server 2016以降 | SMB 3.1.1 |
表1 WindowsとSMBバージョンの対応(EoS=サポート終了) |
バージョンアップといっても、新機能を含む新しい「ダイアレクト(Dialect、方言)」の追加であり、新しいバージョンのWindowsは、以前の全てのSMBバージョンをサポートしています。SMBのクライアント(LanManワークステーション)とサーバ(LanManサーバ)では、通信を開始する際にダイアレクトをネゴシエートして、両者がサポートする最上位のダイアレクトを選択します。例えば、Windows Server 2019のSMBサーバは、Windows 10のSMBクライアントとの通信にはSMB 3.1.1を選択し、Windows 8.1のSMBクライアントとの通信にはSMB 3.0.2を選択します。
SMB v3では、セキュリティと可用性、パフォーマンスに関するさまざまな新機能が利用可能です。例えば、サーバレスでインターネット経由でのSMBファイル共有を提供する「Azureファイル共有(Azure Files)」サービスは、SMB v3に組み込まれた「SMB暗号化」機能によって、パブリックなネットワーク上でプライベートなデータ送信を可能にするセキュリティを保証しています。
- Azure Filesとは(Microsoft Docs)
また、Windows 10とWindows Server 2016以降はSMB 3.1.1で変わりませんが、Windowsの新しいバージョンで新機能の追加や変更が行われています。以下の公式ドキュメントでは、Windows 10 バージョン1809およびWindows Server 2019までの新機能や変更点を確認することができます。
- Windows ServerのSMB 3プロトコルを使用したファイル共有の概要(Microsoft Docs)
その後もSMBへの新機能の追加は続いています。例えば、Windows 10 バージョン1903では「SMB圧縮(SMB Compression)」という機能が追加されました、ただし、この機能が実際に利用可能になるのは、Windows 10 バージョン2004以降の「XCOPY」コマンドおよび「ROBOCOPY」コマンドからで、これらのコマンドにはSMB圧縮に対応した「/COMPRESSION」オプションが追加されています。
Windows 10 バージョン1709における重要な既定の変更
Windowsの新しいバージョンは下位互換性維持のために、以前の全てのSMBバージョンに対応していると書きましたが、現在、下位互換性が既定では提供されないものもあります。そのため、WindowsやWindows Serverをバージョンアップしたら、以前は問題なかったのに突然、共有リソースに接続できなくなったといったトラブルに遭遇することになります。
下位互換性に影響する大きな変更は、Windows 10 バージョン1709で実施された、2つの既定の挙動変更です。
- SMBv1は、Windows 10 バージョン1709、Windows Server バージョン1709以降のバージョンでは既定でインストールされません。(Microsoft Docs)
- Windowsで既定で無効になっているSMB2のゲストアクセス(Microsoft Docs)
1つ目のドキュメントでは、Windows 10 バージョン1709以降、新規インストールではSMB 1.0/CIFSが既定でインストールされなくなったことと、インプレースアップグレードではSMB 1.0/CIFSは引き継がれますが、15日間このプロトコルが使用されないと自動削除されることが説明されています(画面1)。エディションがHomeやProであるか否か、Windows 10 バージョン1809以降であるか否かによっても挙動は異なります。例えば、Enterprise、Education、Pro for Workstationsでは、SMB 1.0/CIFSプロトコルの未使用による15日後の自動削除は行われません。

画面1 Windows 10 バージョン1709以降、新規インストールではSMB 1.0/CIFSは無効。インプレースアップグレードの場合でも15日間プロトコルが使用されないと自動削除される(ProおよびHomeエディションのみ)
2つ目のドキュメントでは、Windows 10 バージョン1709以降のEnterprise/Educationエディションと、Windows Server, version 1709以降では、SMBクライアントにおいて「安全でないゲストアクセス(Insecure Guest Access)」と呼ばれる認証なしの匿名アクセスが既定では無効化されたこことが説明されています(画面2、画面3)。
正しく読み解くのが難しい公式ドキュメント
前出の2つの公式ドキュメントは、新しいバージョンやエディションで新たな変更が加わったことなどで、非常に分かりにくいものになっています。
例えば、Windows Server 2016に関する以下の記述は、2つの変更がWindows Server 2016でも行われたように読み取れますが、実際には以前の動作のままで変更されていません。2つの変更は、Windows Server, version 1709で行われたものであり、Windows Server 2016(バージョン1607)はそれより前のバージョンだからです(画面4)。
Windows Server 2016には、クリーンインストール後に既定でSMB v1クライアントまたはサーバーが含まれなくなりました。
Windows Server 2016 Datacenter EditionおよびStandard Editionでは、リモートサーバーがゲスト資格情報を要求した場合でも、既定でゲスト資格情報を使用してリモート共有に接続できなくなりました。”

画面4 Windows Server, version 1709より前のバージョンであるWindows Server 2016(画面上)はSMB 1.0/CIFSとLanManワークステーションの既定は従来通り。より新しいバージョンのWindows Server 2019(画面下)は既定が変更されている
また2つ目のドキュメントのタイトルに含まれる「SMB2のゲストアクセス」についても説明不足です。SMBのプロトコル仕様は、大きくSMB 1.0/CIFS(MS-SMB)とSMB2(MS-SMB2)の2つに分類されます。後者のSMB2(MS-SMB2)は、最新のSMB 3.1.1を含むSMB 2.0以降の全てを包含します。つまり、SMB 3.1.1でも安全でないゲストアクセスは既定で無効です。一方、SMB1.0/CIFSにおける安全でないゲストアクセスには変更はありません。
- [MS-SMB]:Server Message Block(SMB)Protocol[英語](Microsoft Docs)
- [MS-SMB2]:Server Message Block(SMB)Protocol Versions 2 and 3[英語](Microsoft Docs)
サポートライフサイクル的にはSMB v3化は完了済
現在、サポート期間中のWindowsは、全てSMB 3.0.2以降を実行しています。それ以前のバージョンのWindowsは、「Windows Embedded POSReady 7」など一部の例外と「拡張セキュリティ更新プログラム(ESU)」で延命しているデバイスやサーバを除いて、サポートライフサイクルは終了しました。
そのため、サポート期間中のWindowsを使用している限り、SMB 1.0/CIFSの削除や、安全でないゲストアクセス無効化の影響はないはずです。
しかしながら、現実にはレガシーなバージョンのWindowsがまだ動いているところもあるでしょうし、LinuxやMac、その他のネットワークデバイスが混在する環境では影響が出ることがあるかもしれません。例えば、匿名アクセスが可能なNAS(ネットワーク接続型ストレージ)を利用している場合は、現在サポートされているWindows 10 EnterpriseやWindows Server 2019からは既定のままでは接続できません。
どちらの変更も、元の挙動に戻す方法について、ドキュメントで説明されているので、影響の疑いがある場合は関係するかどうかドキュメントを当たってみてください。ただし、Windows Server 2016に関する説明や、SMB2という表現には惑わされないように注意しましょう。
筆者紹介
山市 良(やまいち りょう)
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2020-2021)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
次期Windows 10最新動向:リリース秒読みの「19H1」はこう変わる
間もなくリリースされるWindows 10の新しい機能アップデート「19H1」。それに実装される新機能をまとめてみた。また、同時に変更となるライフサイクルなどについても解説する。【新元号発表目前!】Windows 10/Officeの新元号対応どうするどうなる!?
新元号への切り替えが2019年5月1日に行われる。Windows OS/Officeでこの新元号に対応するにはどうすればよいのか、注意すべき点はあるのかなどをまとめる。【Windows 10】できる人は知っているキーボードショートカット
Windows 10でキーボードショートカットを使うと、マウスを使うよりも素早い操作が可能だ。ただ、種類も多く、知っていると便利なのに意外と使われていないものも多いようだ。ここでは基本的なキーボードショートカットを紹介する。Windows 10への移行計画を早急に進めるべき理由
本連載では、これからWindows 10への移行を本格的に進めようとしている企業/IT管理者に向け、移行計画、展開、管理、企業向けの注目の機能を解説していきます。第1回目は、「Windows 10に移行すべき理由」を説明します。