この記事では、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 の機能の詳細については、次の記事を参照してください。
- Windows Server の SMB 3 プロトコルを使用したファイル共有の概要
- 1.3 Overview
PowerShell を使用して SMBv1 を削除する
You can use the Get-WindowsOptionalFeature, Disable-WindowsOptionalFeature, and Enable-WindowsOptionalFeature PowerShell commands to detect, disable, and enable an SMBv1 client or server. 管理者特権のコマンド プロンプトでコマンドを実行します。
Note
PowerShell コマンドを実行して SMBv1 を無効または有効にした後、コンピューターが再起動します。
Detect:
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Disable:
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Enable:
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Tip
You can detect the SMBv1 status without elevation by running the Get-SmbServerConfiguration command: Get-SmbServerConfiguration | Format-List EnableSMB1Protocol
.
Remove SMBv1
SMBv1 は、Windows Server 2019 以降のバージョンでは既定ではインストールされません。 以前のバージョンの Windows Server では、サーバー マネージャーを使用して SMBv1 を削除できます。
SMBv1 を削除するサーバーで、サーバー マネージャーを開きます。
サーバー マネージャー ダッシュボードの [このローカル サーバーの構成] で、[役割と機能の追加] 選択。
[始める前に] ページで、[役割および機能の削除ウィザード] を選択し、次のページで [次へ] を選択します。
[移行先サーバー の選択] ページの [サーバー プール] で、機能を削除するサーバーが選択されていることを確認し、[次へ] 選択します。
[サーバー ロールの選択] ページで、[次へ] を選択します。
On the Remove features page, clear the checkbox for SMB 1.0/CIFS File Sharing Support, and then select Next.
[削除の選択を確認する] ページで、機能が一覧表示されていることを確認してから、[削除] を選択 します。
コマンド ラインまたはレジストリ エディターを使用して SMB プロトコルを管理する
Windows 10 Fall Creators Update および Windows Server 2019 以降、SMBv1 は既定ではインストールされなくなりました。 詳細については、「SMBv1 は、Windows 10 バージョン 1709、Windows Server バージョン 1709、およびそれ以降のバージョンでは既定でインストールされていませんを参照してください。
Windows 8 または Windows Server 2012 で SMBv2 を有効または無効にすると、SMBv3 も有効または無効になります。 この動作は、これらのプロトコルが同じスタックを共有しているために発生します。
You can use the Set-SMBServerConfiguration cmdlet to enable or disable the SMBv1, SMBv2, and SMBv3 protocols on a server component. You can use the Get-SmbServerConfiguration cmdlet to retrieve the SMB server configuration.
You don't have to restart the computer after you run the Set-SMBServerConfiguration cmdlet.
SMBv1
Detect:
Get-SmbServerConfiguration | Select EnableSMB1Protocol
Disable:
Set-SmbServerConfiguration -EnableSMB1Protocol $false
Enable:
Set-SmbServerConfiguration -EnableSMB1Protocol $true
詳細については、「SMB1の使用を停止する」を参照してください。
SMBv2 と SMBv3
Detect:
Get-SmbServerConfiguration | Select EnableSMB2Protocol
Disable:
Set-SmbServerConfiguration -EnableSMB2Protocol $false
Enable:
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 を使用する
You can use the Get-Item, Get-ItemProperty, and Set-ItemProperty cmdlets to detect, enable, and disable SMB protocols.
Note
以降のセクションのコマンドには、PowerShell 2.0 以降が必要です。
SMB サーバー上の SMBv1
Detect:
Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
既定の構成は
Enabled
です。 その結果、レジストリの名前付き値は作成されないため、コマンドはSMB1
値を返しません。Disable:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force
Enable:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 -Force
Note
これらの変更を行った後は、コンピューターを再起動する必要があります。
詳細については、「SMB1の使用を停止する」を参照してください。
SMB サーバー上の SMBv2 と SMBv3
Detect:
Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
Disable:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 -Force
Enable:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 -Force
Note
これらの変更を行った後は、コンピューターを再起動する必要があります。
レジストリ エディターを使用する
Important
慎重にこのセクションの手順に従います。 レジストリを正しく変更しないと、重大な問題が発生する可能性があります。 変更する前に、問題が発生した場合に復元するためにレジストリをバックアップします。
SMB サーバーで SMBv1 を有効または無効にするには、レジストリ エディターを開き、次のレジストリ キー パスに移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
次のプロパティを持つエントリを構成します。
- For the name, use SMB1.
- For the type, use REG_DWORD.
- For the data, use 0 for Disabled and 1 for Enabled. The default value is 1, or Enabled. この場合、レジストリ キーは作成されません。
SMB サーバーで SMBv2 を有効または無効にするには、レジストリ エディターを開き、次のレジストリ キー パスに移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
次のプロパティを持つエントリを構成します。
- For the name, use SMB2.
- For the type, use REG_DWORD.
- For the data, use 0 for Disabled and 1 for Enabled. The default value is 1, or Enabled. この場合、レジストリ キーは作成されません。
Note
これらの変更を行った後は、コンピューターを再起動する必要があります。
グループ ポリシーを使用して SMBv1 を無効にする
このセクションでは、グループ ポリシーを使用して SMBv1 を無効にする方法について説明します。 このメソッドは、さまざまなバージョンの Windows で使用できます。
SMBv1
SMB サーバーで SMBv1 を無効にするには、レジストリで次の新しい項目を構成します。
- Key path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
- Registry entry: SMB1
- Entry type: REG_DWORD
- Entry data: 0, for Disabled
グループ ポリシーを使用してこの項目を構成するには、次の手順を実行します。
グループ ポリシー管理コンソールを開きます。 Right-click the Group Policy object (GPO) that should contain the new preference item, and then select Edit.
In the console tree under Computer Configuration, expand the Preferences folder, and then expand the Windows Settings folder.
Right-click the Registry node, point to New, and then select Registry Item.
[新しいレジストリプロパティ ダイアログで、次の値を選択または入力します。
- Action: Create
- Hive: HKEY_LOCAL_MACHINE
- Key Path: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
- Value name: SMB1
- Value type: REG_DWORD
- Value data: 0
この手順では、SMBv1 サーバー コンポーネントを無効にします。 このポリシーは、ドメイン内のすべての必要なワークステーション、サーバー、およびドメイン コントローラーに適用する必要があります。
Note
Windows Management Instrumentation (WMI) フィルターを設定して、特定のオペレーティング システムを除外したり、クライアントまたはサーバーのオペレーティング システムを除外したりできます。 詳細については、「グループ ポリシーのフィルター処理 」および「GPO の WMI フィルターの作成」を参照してください。
Important
システムによっては、SYSVOL フォルダーまたは他のファイル共有へのアクセスが必要ですが、SMBv2 または SMBv3 はサポートされていません。 このようなシステムの例としては、従来の Windows システムや、古い Linux およびパートナー システムなどがあります。 これらのシステムのドメイン コントローラーで SMBv1 を無効にする場合は注意してください。
SMBv1 の使用状況を監査する
SMBv1 を使用して SMB サーバーへの接続を試みるクライアントを特定するには、Windows Server および Windows クライアントで監査を有効にします。 To enable or disable auditing, use the Set-SmbServerConfiguration cmdlet. To check the auditing status, use the Get-SmbServerConfiguration cmdlet.
Enable:
Set-SmbServerConfiguration -AuditSmb1Access $true
Disable:
Set-SmbServerConfiguration -AuditSmb1Access $false
Detect:
Get-SmbServerConfiguration | Select AuditSmb1Access
SMBv1 監査を有効にした後、Microsoft-Windows-SMBServer\Audit
イベント ログでアクセス イベントを確認できます。 クライアントが SMBv1 を使用してサーバーに接続しようとするたびに、イベント ID が 3000 のエントリがログに表示されます。
グループ ポリシーの設定を確認する
すべての設定が同じ GPO にある場合、グループ ポリシー管理には次の設定が表示されます。
ポリシーをテストして検証する
グループ ポリシー管理コンソールの構成手順を完了したら、グループ ポリシーに設定に更新プログラムを適用する時間を与えます。 テストに必要な場合は、コマンド プロンプトで gpupdate /force
を実行し、ターゲット コンピューターを確認して、レジストリ設定が正しく適用されていることを確認します。 SMBv2 と SMBv3 が、環境内にある他のすべてのシステムで機能していることを確認してください。
Note
ポリシーをテストした後、ターゲット システムを再起動します。