edit-icon download-icon

WindowsおよびWindows ServerでSMBv1、SMBv2、およびSMBv3を有効または無効にする方法

最終更新日: Nov 06, 2019

このドキュメントでは、SMB (Server Message Block)クライアントおよびサーバーコンポーネントで、SMB バージョン 1(SMBv1)、SMB バージョン 2(SMBv2)、および SMB バージョン 3(SMBv3) を有効または無効の方法について説明します。

影響を受けた機能

:SMBv2 または SMBv3 を無効にすることはお勧めしません。トラブルシューティングの手段として、一時的に SMBv2 または SMBv3 を無効にしますが、長時間 SMBv2 または SMBv3 を無効にしないでください。

SMBv2を無効にする

Windows 7 および Windows Server 2008 R2 では、SMBv2 の無効に伴い次の機能も無効になります。

  • 要求の複合 - 単一のネットワーク要求として複数の SMB 2 要求を送信できます
  • 読み取りと書き込みの大容量化 - ネットワークの高速化
  • フォルダとファイルのプロパティのキャッシュ - クライアントはフォルダとファイルのローカルコピーを保持する
  • 耐久性のあるハンドル - 一時的な切断がある場合、サーバーの経由に再接続するための接続を許可します。
  • メッセージ署名が改善されました - HMAC SHA-256 は MD5 をハッシュアルゴリズムに置き換えます
  • ファイル共有のスケーラビリティの向上 - サーバーあたりのユーザー数、共有数、オープンファイル数が大幅に増加
  • シンボリックリンクのサポート
  • クライアント oplock リーシングモデル - クライアントとサーバー間で転送されるデータを制限し、高遅延ネットワークでのパフォーマンスを向上させ、SMB サーバーのスケーラビリティを向上させます。
  • 大規模な MTU サポート - 10 ギガバイト(GB)のイーサネットをフルに使用
  • エネルギー効率の向上 - サーバーにファイルを開いているクライアントは、スリープ状態になることがあります

SMBv3 を無効にする

Windows 8、Windows 8.1、Windows 10、Windows Server 2012、および Windows Server 2016 では、SMBv3 を無効にすると、以下の機能(および前のリストで説明した SMBv2 機能)が無効になります。

  • トランスペアレントフェールオーバー - メンテナンスまたはフェールオーバー中にクライアントが中断することなくクラスタノードに再接続する
  • スケールアウト - すべてのファイルクラスタノード上の共有データへの同時アクセス
  • マルチチャネル - クライアントとサーバーの間で複数のパスを使用できる場合のネットワーク帯域幅とフォールトトレランスの集約
  • SMB Direct - RDMA ネットワーキングのサポートを追加して、非常に高性能で、レイテンシが低く、CPU 使用率が低い
  • 暗号化 - エンドツーエンドの暗号化を提供し、信頼性低いネットワークでの盗聴から保護します。
  • ディレクトリリース - キャッシュを使用してブランチオフィスのアプリケーション応答時間を改善
  • パフォーマンスの最適化 - 小さなランダム読み取り/書き込み I / O の最適化

SMB サーバーで SMB プロトコルの有効と無効にする方法

Windows 8 および Windows Server 2012 の場合

Windows 8 および Windows Server 2012 では、新しい Set-SMBServerConfiguration Windows PowerShell コマンドレットが導入されました。このコマンドレットで、サーバーコンポーネント上の SMBv1、SMBv2、および SMBv3 プロトコルを有効または無効に設定できます。

:Windows 8 または Windows Server 2012 で SMBv2 を有効または無効に伴い、SMBv3 も有効または無効になります。この現象は、これらのプロトコルが同じスタックを共有するために発生します。

Set-SMBServerConfiguration コマンドレット

Set-SMBServerConfiguration コマンドレットを実行した後にコンピュータを再起動する必要はありません。

  • SMB サーバープロトコル構成の現在のステータスを取得するには、次のコマンドレットを実行します。

    1. Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol
  • SMB サーバーで SMBv1 を無効にするには、次のコマンドレットを実行します。

    1. Set-SmbServerConfiguration -EnableSMB1Protocol $false
  • SMB サーバーで SMBv2 と SMBv3 を無効にするには、次のコマンドレットを実行します。

    1. Set-SmbServerConfiguration -EnableSMB2Protocol $false
  • SMB サーバーで SMBv1 を有効にするには、次のコマンドレットを実行します。

    1. Set-SmbServerConfiguration -EnableSMB1Protocol $true
  • SMB サーバーで SMBv2 と SMBv3 を有効にするには、次のコマンドレットを実行します。

    1. Set-SmbServerConfiguration -EnableSMB2Protocol $true

Windows 7、Windows Server 2008 R2、Windows Vista、および Windows Server 2008 の場合

Windows 7、Windows Server 2008 R2、Windows Vista、または Windows Server 2008 を実行している SMB サーバーで SMB プロトコルを有効または無効にするには、Windows PowerShell またはレジストリエディタを使用します。

PowerShell のメソッド

:この方法では、PowerShell 2.0 以降のバージョンの PowerShell が必要です。

  • SMB サーバーで SMBv1 を無効にするには、次のコマンドレットを実行します。

    1. Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force
  • SMB サーバーで SMBv2 と SMBv3 を無効にするには、次のコマンドレットを実行します。

    1. Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 -Force
  • SMB サーバーで SMBv1 を有効にするには、次のコマンドレットを実行します。

    1. Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 -Force
  • SMB サーバーで SMBv2 と SMBv3 を有効にするには、次のコマンドレットを実行します。

    1. Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 -Force

:これらの変更を行った後、コンピュータを再起動する必要があります。

レジストリエディタ

:次の内容には、レジストリの変更方法に関する情報が含まれています。レジストリを変更する前に、必ずレジストリをバックアップしてください。問題が発生した場合は、レジストリを復元できます。レジストリをバックアップ、復元、および変更する方法の詳細については、Windowsでレジストリをバックアップおよび復元する方法をご参照ください。

  • SMB サーバーで SMBv1 を有効または無効には、次のレジストリキーを構成します。

  • レジストリサブキー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

  • レジストリエントリ:SMB1
  • REG_DWORD:0 =無効
  • REG_DWORD:1 =有効
  • 既定値:1 =有効(レジストリキーが作成されていません)

  • SMB サーバーで SMBv2 を有効または無効にするには、次のレジストリキーを構成します。

  • レジストリサブキー:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

  • レジストリエントリ:SMB2
  • REG_DWORD:0 =無効
  • REG_DWORD:1 =有効
  • 既定値:1 =有効(レジストリキーが作成されていません)

:これらの変更を行った後、コンピュータを再起動する必要があります

SMBクライアントでSMBプロトコルを有効または無効にする方法

Windows Vista、Windows Server 2008、Windows 7、Windows Server 2008 R2、Windows 8、および Windows Server 2012 の場合

:Windows 8 または Windows Server 2012 で SMBv2 を有効または無効にすると、SMBv3 も有効または無効になります。この現象は、これらのプロトコルが同じスタックを共有するために発生します。

  • SMB クライアントで SMBv1 を無効にするには、次のコマンドを実行します。

    1. sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
    2. sc.exe config mrxsmb10 start= disabled
  • SMB クライアントで SMBv1 を有効にするには、次のコマンドを実行します。

    1. sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
    2. sc.exe config mrxsmb10 start= auto
  • SMB クライアントで SMBv2 と SMBv3 を無効にするには、次のコマンドを実行します。

    1. sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
    2. sc.exe config mrxsmb20 start= disabled
  • SMB クライアントで SMBv2 と SMBv3 を有効にするには、次のコマンドを実行します。

    1. sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
    2. sc.exe config mrxsmb20 start= auto

注意

  • 昇格したコマンドプロンプトでこれらのコマンドを実行する必要があります。
  • これらの変更を行った後、コンピュータを再起動する必要があります。

グループポリシーで SMBv1 サーバーを無効にする

これにより、レジストリに次の新しい項目が設定されます

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

レジストリエントリ:SMB1 REG_DWORD:0 =無効

手順

グループポリシーを使用してこれを構成するには:

  1. グループポリシー管理コンソールを開きます。新しい設定項目を含めるグループポリシーオブジェクト(GPO)を右クリックし、[編集]をクリックします。

  2. コンソールツリーのコンピューター構成環境設定フォルダーを展開し、 Windows設定フォルダーを展開します。

  3. Registry ノードを右クリックし、 New をクリックし、Registry Item を選択します。

    sg1

  4. 新しいレジストリのプロパティダイアログボックスで、次の項目を選択します。

    • アクション:作成
    • Hive:HKEY_LOCAL_MACHINE
    • キーパス:SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    • 値の名前:SMB1
    • 値の種類:REG_DWORD
    • 値のデータ:0

    sg2

  5. これにより、SMBv1 サーバーコンポーネントが無効になります。このグループポリシーは、ドメイン内のすべての必要なワークステーション、サーバー、およびドメインコントローラに適用する必要があります。

:SMBv2 または SMBv3 をサポートしていない旧式の Windows XP またはそれ以前の Linux およびサードパーティ製のシステムで SMB v1 が無効になっている SYSVOL またはその他のファイル共有にアクセスする必要があるドメインコントローラでは、これらの変更を行うときに注意が必要です。

グループポリシーで SMBv1 クライアントを無効にする

SMBv1 クライアントの無効は、サービスレジストリキーを更新して MRxSMB10 の起動を無効にし、MRxSMB10 の依存関係を LanmanWorkstation のエントリから削除し、MRxSMB10 を最初に起動しなくても正常に起動できる必要があります。

これにより、レジストリの次 2 つ項目のデフォルト値が更新され、置き換えられます

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10

レジストリエントリ:REG_DWORD の開始:4 =無効

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation

レジストリエントリ:DependOnService REG_MULTI_SZ: “Bowser”、 “MRxSmb20”、 “NSI”

:依存関係として現在削除されているデフォルトの MRxSMB10 が含まれています

手順

グループポリシーを使用してこれを構成するには:

  1. グループポリシー管理コンソールを開きます。新しい設定項目を含めるグループポリシーオブジェクト(GPO)を右クリックし、[編集]をクリックします。

  2. コンソールツリーのコンピューター構成環境設定フォルダーを展開し、 Windows設定フォルダーを展開します。

  3. Registry ノードを右クリックし、 New をポイントし、 Registry Item を選択します。

    sg3

  4. 新しいレジストリのプロパティダイアログボックスで、次の項目を選択します。

    • アクション:更新
    • Hive:HKEY_LOCAL_MACHINE
    • キーパス:SYSTEM\CurrentControlSet\services\mrxsmb10
    • 値の名前:開始
    • 値の種類:REG_DWORD
    • 値のデータ:4

    sg4

    次に、無効にされた MRxSMB10 への依存関係を削除します

  5. [新しいレジストリのプロパティ]ダイアログボックスで、次の項目を選択します。

    • アクション:置換
    • Hive:HKEY_LOCAL_MACHINE
    • キーパス:SYSTEM\CurrentControlSet\Services\LanmanWorkstation
    • 値の名前:DependOnService
    • Value type REG_MULTI_SZ
    • Value data:

      • Bowser
      • MRxSmb20
      • NSI

        :これらの3つの文字列には黒丸チェックはありません(下記参照)

        sg5

既定値には、多くバージョンの Windows では MRxSMB10 が含まれているため、この値の文字列に置き換えることで、MRxSMB10 を LanmanServer の依存として削除し、4 つの既定値から上記の 3 つの値に変更します。

:グループポリシー管理コンソールを使用する場合は、引用符またはコンマを使用する必要はありません。上記のように、個々の行に各エントリを入力するだけです。

リブートが必要

ポリシーが適用され、レジストリ設定が実行された後、SMB v1 が無効になる前に対象システムを再起動する必要があります。

要約

すべての設定が同じグループポリシーオブジェクト(GPO)内にある場合は、グループポリシー管理に以下の設定が表示されます。

sg6

テストと検証

これらの設定が完了したら、ポリシーの複製と更新を許可します。必要に応じて、 CMD.EXE プロンプトから gpupdate / force を実行し、ターゲットマシンを確認してレジストリ設定が正しく適用されるようにします。SMB v2 と SMB v3 が環境内にある他のすべてシステムで機能していることを確認します。

:ターゲットシステムを再起動する必要があります。

Windows 8.1、Windows 10、Windows 2012 R2、および Windows Server 2016 で SMB v1 を正常に削除する方法

Windows Server 2012 R2 および Windows Server 2016:SMB を無効にするサーバーマネージャの方法

sg7

Windows Server 2012 R2 および 2016:PowerShell の方法(Remove-WindowsFeature FS-SMB1)

sg8

Windows 8.1 および Windows 10:プログラムの追加と削除メソッド

sg9

Windows 8.1 および Windows 10:Powershell メソッド(Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol)

sg10