英語で読む

次の方法で共有


Windows で SMBv1、SMBv2、および SMBv3 を検出、有効化、無効化する

この記事では、SMB クライアントおよびサーバー コンポーネントで、サーバー メッセージ ブロック (SMB) バージョン 1 (SMBv1)、SMB バージョン 2 (SMBv2)、SMB バージョン 3 (SMBv3) を有効または無効にする方法について説明します。

SMBv1 を無効または削除すると、古いコンピューターまたはソフトウェアとの互換性の問題が発生する可能性があります。 SMBv1 には重大なセキュリティの脆弱性があり、使用しないことを強くお勧めします。 SMBv1 は、Windows 11 または Windows Server 2019 以降のバージョンのどのエディションにも 既定でインストールされていません。 SMBv1 は、Home エディションと Pro エディションを除き、Windows 10 にも既定ではインストールされません。 SMBv1 を再インストールする代わりに、必要な SMB サーバーを更新することをお勧めします。 SMBv1 を必要とするパートナーとその要件を削除する更新プログラムの一覧については、「SMB1 製品クリアリングハウスを参照してください。

トラブルシューティングのために SMBv2 または SMBv3 を無効にする

SMBv2 と SMBv3 を有効にしておくことをお勧めしますが、トラブルシューティングのために一時的に無効にすると便利な場合があります。 詳細については、「コマンド ラインまたはレジストリ エディターを使用して SMB プロトコルを管理する」を参照してください。

SMBv3 を無効にすると、次の機能が非アクティブ化されます。

  • 透過的なフェールオーバー: メンテナンス中またはフェールオーバー中にクラスター ノードを中断せずに再接続する方法をクライアントに提供します
  • スケールアウト: すべてのファイル クラスター ノード上の共有データへの同時アクセスを提供します
  • SMB マルチチャネル: クライアントとサーバーの間で複数のパスを使用できる場合に、ネットワーク帯域幅とフォールト トレランスの集計を容易にします
  • SMB ダイレクト: 低待機時間で CPU 使用率が低い、高パフォーマンスのためのリモート ダイレクト メモリ アクセス (RDMA) ネットワーク サポートを追加
  • 暗号化: エンドツーエンドの暗号化を提供し、信頼できないネットワークでの傍受からの保護を提供します
  • ディレクトリ リース: キャッシュを使用してブランチ オフィスのアプリケーション応答時間を向上させる
  • パフォーマンスの最適化: 小さなランダム読み取り/書き込み I/O 操作を最適化します

SMBv2 を無効にすると、次の機能が非アクティブ化されます。

  • 要求の複合化: 1 つのネットワーク要求として複数の SMBv2 要求を送信できます
  • 読み取りと書き込みを大きくする: 高速ネットワークの使用が向上します
  • フォルダーとファイルのプロパティのキャッシュ: クライアントにフォルダーとファイルのローカル コピーを保持する機能を提供します
  • 耐久性のあるハンドル: 接続が一時的に切断された後、透過的にサーバーに再接続する手段を提供します
  • メッセージ署名の改善: ハッシュ アルゴリズムとして Message-Digest Algorithm 5 (MD5) ではなく、256 ビット ダイジェスト (HMAC SHA-256) を使用するハッシュベースのメッセージ認証コード (HMAC) セキュア ハッシュ アルゴリズム (SHA) を使用します
  • ファイル共有のスケーラビリティの向上: サーバーあたりのユーザー、共有、および開いているファイルの数が大幅に増加します
  • シンボリック リンクのサポート
  • クライアント 運用リース モデル: クライアントとサーバーの間で転送されるデータを制限し、待ち時間の長いネットワークのパフォーマンスを向上させ、SMB サーバーのスケーラビリティを向上させます
  • 大容量最大伝送ユニット (MTU) のサポート: 10 ギガビット イーサネット (GbE) のフル 使用をサポート
  • エネルギー効率の向上: サーバーに開いているファイルを持つクライアントがスリープ状態にするための方法を提供します

SMBv2 プロトコルは、Windows Vista および Windows Server 2008 で導入されました。 SMBv3 プロトコルは、Windows 8 および Windows Server 2012 で導入されました。 SMBv2 と SMBv3 の機能の詳細については、次の記事を参照してください。

PowerShell を使用して SMBv1 を削除する

Get-WindowsOptionalFeatureDisable-WindowsOptionalFeatureEnable-WindowsOptionalFeature PowerShell コマンドを使用して、SMBv1 クライアントまたはサーバーを検出、無効化、および有効にすることができます。 管理者特権のコマンド プロンプトでコマンドを実行します。

注意

PowerShell コマンドを実行して SMBv1 を無効または有効にした後、コンピューターが再起動します。

  • 検出する:

    Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • 無効する:

    Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • 有効にする:

    Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    

ヒント

Get-SmbServerConfiguration コマンドを実行することで、昇格せずに SMBv1 の状態を確認できる Get-SmbServerConfiguration | Format-List EnableSMB1Protocol

SMBv1 の削除

SMBv1 は、Windows Server 2019 以降のバージョンでは既定ではインストールされません。 以前のバージョンの Windows Server では、サーバー マネージャーを使用して SMBv1 を削除できます。

  1. SMBv1 を削除するサーバーで、サーバー マネージャーを開きます。

  2. サーバー マネージャー ダッシュボードの [このローカル サーバーの構成] で、[役割と機能の追加] 選択

  3. [始める前に] ページで、[役割および機能の削除ウィザード] を選択し、次のページで [次へ] を選択します。

  4. [移行先サーバー の選択] ページの [サーバー プール] で、機能を削除するサーバーが選択されていることを確認し、[次へ] 選択します。

  5. [サーバー ロールの選択] ページで、[次へ] を選択します。

  6. [機能の削除] ページで、SMB 1.0/CIFS ファイル共有サポート のチェック ボックスをオフにし、[次へ] 選択

    サーバー マネージャー ダッシュボードの [機能の削除] ページのスクリーンショット。機能の一覧で、SMBv1 が強調表示されています。

  7. [削除の選択を確認する] ページで、機能が一覧表示されていることを確認してから、[削除] を選択 します。

コマンド ラインまたはレジストリ エディターを使用して SMB プロトコルを管理する

Windows 10 Fall Creators Update および Windows Server 2019 以降、SMBv1 は既定ではインストールされなくなりました。 詳細については、「SMBv1 は、Windows 10 バージョン 1709、Windows Server バージョン 1709、およびそれ以降のバージョンでは既定でインストールされていませんを参照してください。

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

Set-SMBServerConfiguration コマンドレットを使用して、サーバー コンポーネントで SMBv1、SMBv2、および SMBv3 プロトコルを有効または無効にすることができます。 Get-SmbServerConfiguration コマンドレットを使用して、SMB サーバー構成を取得できます。

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

SMBv1

  • 検出する:

    Get-SmbServerConfiguration | Select EnableSMB1Protocol
    
  • 無効する:

    Set-SmbServerConfiguration -EnableSMB1Protocol $false
    
  • 有効にする:

    Set-SmbServerConfiguration -EnableSMB1Protocol $true
    

詳細については、「SMB1の使用を停止する」を参照してください。

SMBv2 と SMBv3

  • 検出する:

    Get-SmbServerConfiguration | Select EnableSMB2Protocol
    
  • 無効する:

    Set-SmbServerConfiguration -EnableSMB2Protocol $false
    
  • 有効にする:

    Set-SmbServerConfiguration -EnableSMB2Protocol $true
    

Windows 7、Windows Server 2008 R2、Windows Vista、および Windows Server 2008 で SMB を有効または無効にする

Windows 7、Windows Server 2008 R2、Windows Vista、または Windows Server 2008 を実行する SMB サーバーで SMB プロトコルを有効または無効にするには、次のセクションで説明するように、Windows PowerShell またはレジストリ エディターを使用します。

Windows PowerShell を使用する

Get-ItemGet-ItemProperty、および Set-ItemProperty コマンドレット を使用して、SMB プロトコルを検出、有効化、無効化できます。

注意

以降のセクションのコマンドには、PowerShell 2.0 以降が必要です。

SMB サーバー上の SMBv1
  • 検出する:

    Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
    

    既定の構成は Enabledです。 その結果、レジストリの名前付き値は作成されないため、コマンドは SMB1 値を返しません。

  • 無効する:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force
    
  • 有効にする:

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

注意

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

詳細については、「SMB1の使用を停止する」を参照してください。

SMB サーバー上の SMBv2 と SMBv3
  • 検出する:

    Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
    
  • 無効する:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 -Force
    
  • 有効にする:

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

注意

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

レジストリ エディターを使用する

重要

慎重にこのセクションの手順に従います。 レジストリを正しく変更しないと、重大な問題が発生する可能性があります。 変更する前に、問題が発生した場合に復元するためにレジストリをバックアップします。

SMB サーバーで SMBv1 を有効または無効にするには、レジストリ エディターを開き、次のレジストリ キー パスに移動します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

次のプロパティを持つエントリを構成します。

  • 名前には、SMB1を使用します。
  • 型には、REG_DWORDを使用します。
  • データの場合は、無効 には 0 を使用し、有効には 1 を使用します。 既定値は 1または Enabledです。 この場合、レジストリ キーは作成されません。

SMB サーバーで SMBv2 を有効または無効にするには、レジストリ エディターを開き、次のレジストリ キー パスに移動します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

次のプロパティを持つエントリを構成します。

  • 名前には、SMB2を使用します。
  • 型には、REG_DWORDを使用します。
  • データの場合は、無効 には 0 を使用し、有効には 1 を使用します。 既定値は 1または Enabledです。 この場合、レジストリ キーは作成されません。

注意

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

グループ ポリシーを使用して SMBv1 を無効にする

このセクションでは、グループ ポリシーを使用して SMBv1 を無効にする方法について説明します。 このメソッドは、さまざまなバージョンの Windows で使用できます。

SMBv1

SMB サーバーで SMBv1 を無効にするには、レジストリで次の新しい項目を構成します。

  • キー パス: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • レジストリ エントリ: SMB1
  • エントリの種類: REG_DWORD
  • エントリ データ: 0無効

グループ ポリシーを使用してこの項目を構成するには、次の手順を実行します。

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

  2. コンソール ツリーの [コンピューターの構成] で [基本設定] フォルダーを展開し、次に [Windows の設定] フォルダーを展開します。

  3. [レジストリ] ノードを右クリックし、[新規] にカーソルを合わせて [レジストリ項目] を選択します。

    グループ ポリシー管理コンソールのコンソール ツリーのスクリーンショット。レジストリのショートカット メニューが表示され、最初のメニューで [新規] が強調表示されています。

  4. [新しいレジストリプロパティ ダイアログで、次の値を選択または入力します。

    • 操作: 作成
    • ハイブ: HKEY_LOCAL_MACHINE
    • キーのパス: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    • 値の名前: SMB1
    • 値の種類: REG_DWORD
    • 値データ: 0

    [新しいレジストリのプロパティ] ダイアログのスクリーンショット。値は、アクション、ハイブ、キー パス、名前、型、およびデータ フィールドに表示されます。

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

注意

 Windows Management Instrumentation (WMI) フィルターを設定して、特定のオペレーティング システムを除外したり、クライアントまたはサーバーのオペレーティング システムを除外したりできます。 詳細については、「グループ ポリシーのフィルター処理 」および「GPO の WMI フィルターの作成」を参照してください。

重要

システムによっては、SYSVOL フォルダーまたは他のファイル共有へのアクセスが必要ですが、SMBv2 または SMBv3 はサポートされていません。 このようなシステムの例としては、従来の Windows システムや、古い Linux およびパートナー システムなどがあります。 これらのシステムのドメイン コントローラーで SMBv1 を無効にする場合は注意してください。

SMBv1 の使用状況を監査する

SMBv1 を使用して SMB サーバーへの接続を試みるクライアントを特定するには、Windows Server および Windows クライアントで監査を有効にします。 監査を有効または無効にするには、Set-SmbServerConfiguration コマンドレットを使用します。 監査の状態を確認するには、Get-SmbServerConfiguration コマンドレット 使用します。

  • 有効にする:

    Set-SmbServerConfiguration -AuditSmb1Access $true
    
  • 無効する:

    Set-SmbServerConfiguration -AuditSmb1Access $false
    
  • 検出する:

    Get-SmbServerConfiguration | Select AuditSmb1Access
    

SMBv1 監査を有効にした後、Microsoft-Windows-SMBServer\Audit イベント ログでアクセス イベントを確認できます。 クライアントが SMBv1 を使用してサーバーに接続しようとするたびに、イベント ID が 3000 のエントリがログに表示されます。

グループ ポリシーの設定を確認する

すべての設定が同じ GPO にある場合、グループ ポリシー管理には次の設定が表示されます。

グループ ポリシー管理エディター レジストリのスクリーンショット。DependOnService、SMB1、Start の 3 つの項目が表示されます。

ポリシーをテストして検証する

グループ ポリシー管理コンソールの構成手順を完了したら、グループ ポリシーに設定に更新プログラムを適用する時間を与えます。 テストに必要な場合は、コマンド プロンプトで gpupdate /force を実行し、ターゲット コンピューターを確認して、レジストリ設定が正しく適用されていることを確認します。 SMBv2 と SMBv3 が、環境内にある他のすべてのシステムで機能していることを確認してください。

注意

ポリシーをテストした後、ターゲット システムを再起動します。


その他のリソース

トレーニング

モジュール

Explore advanced configuration methods - Training

This module describes how administrators can activate Windows clients at scale and use Group Policy and PowerShell to apply configuration settings to groups of Windows clients.

認定資格

Microsoft 認定: Information Protection and Compliance Administrator Associate - Certifications

Microsoft 365 デプロイを保護するためのデータ セキュリティ、ライフサイクル管理、情報セキュリティ、コンプライアンスの基礎を示します。

events

Windows Server Summit

4月29日 14時 - 4月30日 19時

4 月 29 日から 30 日に開催される究極の Windows Server 仮想イベントに参加して、詳細な技術セッションを行い、Microsoft のエンジニアとライブ Q&A を行います。

今すぐサインアップ