WindowsでSMBプロトコルバージョンを確認、有効化、または無効化する方法は?
サーバーメッセージブロック(SMB) ネットワークプロトコルは、ネットワーク(TCPポート445)を介してフォルダ、ファイル、プリンタ、およびその他のデバイスを共有およびアクセスするために使用されます。この記事では、さまざまなバージョンのWindowsで使用できるSMBのバージョン(方言)(およびそれらが samba とどのように関連しているか)について説明します。 Linux上のバージョン);コンピューターで使用中のSMBバージョンを確認する方法。また、SMBv1、SMBv2、およびSMBv3ダイアレクトを有効または無効にする方法。
内容:
- WindowsのSMBプロトコルバージョン
- WindowsでSMBバージョンを確認するには?
- Get-SMBConnectionを使用した使用済みSMBダイアレクトの確認
- 安全でないSMBv1プロトコルの使用を停止する
- WindowsでSMBv1、SMBv2、SMBv3を有効または無効にする方法
WindowsのSMBプロトコルバージョン
新しいWindowsバージョン(およびsamba)で一貫して登場しているSMBプロトコル(方言)にはいくつかのバージョンがあります:
- CIFS – Windows NT 4.0
- SMB 1.0 – Windows 2000
- SMB 2.0 – WindowsServer2008およびWindowsVistaSP1(Samba 3.6でサポート)
- SMB 2.1 – Windows Server 2008R2およびWindows7(Samba 4.0)
- SMB 3.0 – Windows Server2012およびWindows8(Samba 4.2)
- SMB 3.02 – Windows Server 2012R2およびWindows8.1(Sambaではサポートされていません)
- SMB 3.1.1 – Windows Server2016およびWindows10(Sambaではサポートされていません)
SMBネットワーク通信では、クライアントとサーバーは、クライアントとサーバーの両方でサポートされている最大のSMBプロトコルバージョンを使用します。
SMBバージョンの互換性の概要表は次のようになります。この表を使用して、さまざまなバージョンのWindowsが相互作用するときに選択されるSMBプロトコルのバージョンを判別できます。
オペレーティングシステムWindows10、Win Server 2016Windows 8.1、Win Server 2012 R2Windows 8、Server 2012Windows 7、Server 2008 R2Windows Vista、Server 2008Windows XP、Server2003以前Windows10、Windows Server 2016SMB 3.1.1SMB 3.02SMB 3.0SMB 2.1SMB 2.0SMB 1.0Windows 8.1、Server 2012 R2SMB 3.02SMB 3.02SMB 3.0SMB 2.1SMB 2.0SMB 1.0Windows 8、Server 2012SMB 3.0SMB 3.0SMB 3.0SMB 2.1SMB 2.0SMB 1.0Windows 7、Server 2008 R2SMB 2.1SMB 2.1SMB 2.1SMB 2.1SMB 2.0SMB 1.0Windows Vista、サーバー2008SMB 2.0SMB 2.0SMB 2.0SMB 2.0SMB 2.0SMB 1.0Windows XP、2003以前SMB 1.0SMB 1.0SMB 1.0SMB 1.0SMB 1.0SMB 1.0たとえば、Windows8.1を実行しているクライアントコンピューターがWindowsServer 2016を使用してファイルサーバーに接続する場合、SMB3.0.2プロトコルが使用されます。
表によると、WindowsXPとWindowsServer2003はSMB1.0のみを使用して共有フォルダーとファイルにアクセスできます。 SMBv1は、新しいバージョンのWindows Server(2012 R2 / 2016)では無効になっています。そのため、ネットワーク上で引き続きWindowsXPおよびWindowsServer 2003デバイスを使用している場合、それらはWindowsServer2016を実行しているファイルサーバー上の共有フォルダーにアクセスできません。
SMBv1.0が無効になっているWindowsServer2019/2016がドメインコントローラーとして使用されている場合、Windows XP / Server 2003クライアントはドメインコントローラーのSYSVOLフォルダーとNETLOGONフォルダーにアクセスできず、ADで認証できません。
SMBv1が無効になっているファイルサーバー上の共有フォルダーに接続しようとすると、次のエラーが発生する場合があります。
The specified network name is no longer available
Windowsデバイスで有効になっているSMBのバージョンを確認する方法を見てみましょう。
Windows 10/8.1およびWindowsServer2019/2016 / 2012R2では、PowerShellを使用してSMBプロトコルのさまざまな方言のステータスを確認できます。
Get-SmbServerConfiguration | select EnableSMB1Protocol,EnableSMB2Protocol
を選択します
このコマンドは、SMB1プロトコルが無効になっていることを返しました(EnableSMB1Protocol = True
)、SMB2およびSMB3プロトコルが有効になっている(EnableSMB1Protocol = False
。
Windows 7、Vista、およびWindows Server 2008 R2 / 2008の場合:
Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
SMB1
という名前のパラメーターがない場合 またはSMB2
このレジストリキーでは、SMBv1およびSMBv2プロトコルがデフォルトで有効になっています。
また、これらのWindowsバージョンでは、リモートホストへの接続が許可されているSMBクライアントダイアレクトを確認できます。
sc.exe query mrxsmb10
SERVICE_NAME: mrxsmb10 TYPE : 2 FILE_SYSTEM_DRIVER STATE : 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0
sc.exe query mrxsmb20
SERVICE_NAME: mrxsmb20 TYPE : 2 FILE_SYSTEM_DRIVER STATE : 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0
どちらの場合も、サービスは実行されています(STATE = 4 Running
)。これは、現在のWindowsデバイスがSMBv1ホストとSMBv2ホストの両方に接続できることを意味します。
Get-SMBConnectionを使用した使用済みSMBダイアレクトの確認
SMBを介して通信する場合、コンピューターはクライアントとサーバーの両方でサポートされている最大のSMBバージョンを使用します。 Get-SMBConnection
PowerShellコマンドレットを使用して、リモートコンピューターへのアクセスに使用されるSMBバージョンを確認できます。
リモートサーバーへの接続に使用されるSMBバージョン( ServerName )は方言に記載されています 列。
特定のサーバーへのアクセスに使用されるSMBバージョンに関する情報を表示できます。
Get-SmbConnection -ServerName srvfs01
SMB暗号化が使用されているかどうかを表示する場合(SMB 3.0で導入):
Get-SmbConnection | ft ServerName,ShareName,Dialect,Encrypted,UserName
$ sudo smbstatus
Windows SMBサーバー側では、クライアントが現在使用しているSMBプロトコルのバージョンのリストを表示できます。コマンドを実行します:
Get-SmbSession | Select-Object -ExpandProperty Dialect | Sort-Object -Unique
この例では、SMB 2.1(Windows 7 / Windows 2008 R2)を使用してサーバーに接続されている898のクライアントがあります。および8つのSMB3.02クライアント。
PowerShellを使用して、接続に使用されるSMBバージョンの監査を有効にすることができます:
Set-SmbServerConfiguration –AuditSmb1Access $true
その後、SMB接続イベントをイベントビューアログからエクスポートできます:
Get-WinEvent -LogName Microsoft-Windows-SMBServer/Audit
過去数年間、マイクロソフトはセキュリティ上の理由から、すべての製品でレガシーSMB1.0プロトコルを体系的に無効にしてきました。これは、このプロトコルに多数の重大な脆弱性があるためです(SMBv1プロトコルの脆弱性を悪用したwannacryptおよびpetyaランサムウェアのインシデントを思い出してください)。 Microsoftおよびその他のIT企業は、ネットワークでのSMBv1の使用を停止することを強くお勧めします。
ただし、SMBv1を無効にすると、レガシークライアント(Windows XP、Windows Server 2003)、サードパーティOS(Mac OSX 10.8 Mountain Lion、Snow)から新しいバージョンのWindows 10(Windows Server 2016/2019)上の共有ファイルおよびフォルダーにアクセスする際に問題が発生する可能性があります。 Leopard、Mavericks、古いLinuxディストリビューション)、古いNASデバイス。
SMBv1のみをサポートするレガシーデバイスがネットワーク上に残っていない場合は、WindowsでこのSMBダイアレクトを必ず無効にしてください。
Windows XP、Windows Server 2003、またはSMBv1のみをサポートするその他のデバイスを実行しているクライアントがある場合は、それらを更新または分離する必要があります。
WindowsでSMBv1、SMBv2、SMBv3を有効または無効にする方法
WindowsでさまざまなSMBバージョンを有効または無効にする方法を見てみましょう。 SMBクライアントとサーバーの管理について説明します(これらは異なるWindowsコンポーネントです)。
Windows 10、8.1、およびWindows Server 2019/2016 / 2012R2 :
SMBv1クライアントとサーバーを無効にします:
Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol
SMBv1サーバーのみを無効にする:
Set-SmbServerConfiguration -EnableSMB1Protocol $false
SMBv1クライアントとサーバーを有効にする:
Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol
SMBv1サーバーのみを有効にする:
Set-SmbServerConfiguration -EnableSMB1Protocol $true
SMBv2およびSMBv3サーバーを無効にします:
Set-SmbServerConfiguration -EnableSMB2Protocol $false
SMBv2およびSMBv3サーバーを有効にします:
Set-SmbServerConfiguration -EnableSMB2Protocol $true
Windows 7、Vista、およびWindows Server 2008 R2 / 2008 :
SMBv1サーバーを無効にする:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 –Force
SMBv1サーバーを有効にする:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 –Force
SMBv1クライアントを無効にする:
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled
SMBv1クライアントを有効にする:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb10 start= auto
SMBv2サーバーを無効にする:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 -Force
SMBv2サーバーを有効にする:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 –Force
SMBv2クライアントを無効にする:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
sc.exe config mrxsmb20 start= disabled
SMBv2クライアントを有効にする:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb20 start= auto
GPOを介して次のレジストリパラメータを展開することにより、ドメインに参加しているコンピュータでSMBv1サーバーを無効にできます。
- キー:HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Parameters
- 名前:SMB1
- タイプ:REG_DWORD
- 値:0
レジストリパラメータを設定しますSMB2=0
SMBv2サーバーを無効にするため。
SMBv1クライアントを無効にするには、次のレジストリ設定を伝達する必要があります。
- キー:HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ mrxsmb10
- 名前:開始
- タイプ:REG_DWORD
- 値:4
-
Windows 11 でサービスを有効または無効にする方法
多くのアプリケーションと機能は、ユーザー入力を必要とせずにバックグラウンドで実行することにより、すべてのオペレーティング システムのスムーズな実行をサポートします。同じことが、Windows OS の背後にある主要な歯車であるサービスにも当てはまります。これらのコンポーネントにより、ファイル エクスプローラー、Windows Update、システム全体の検索などの基本的な Windows 機能が正しく動作することが保証されます。いつでも問題なく使用できるように準備して準備します。今日は、Windows 11 でサービスを有効または無効にする方法を見ていきます。 Windows 11 でサー
-
Windows 11 でコンパクト OS を有効または無効にする方法
Windows 11 は気に入っていますが、十分なディスク容量がないのではないかと心配していますか? 恐れるな! Windows 11 には、Windows に関連するファイルとイメージをより管理しやすいサイズに圧縮する Compact OS が付属しています。この機能は、Windows 11 だけでなく、その前身である Windows 10 にも存在します。Compact OS の仕組みは、圧縮されたシステム ファイルから Windows を実行できるようにすることです。したがって、通常の Windows インストールよりも少ないスペースで済みます。まだ興味がありますか? Windows 1