How to enable and disable SMBv1, SMBv2, and SMBv3 in Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012
This article describes how to enable and disable Server Message Block (SMB) version 1 (SMBv1), SMB version 2 (SMBv2), and SMB version 3 (SMBv3) on the SMB client and server components.
Summary
In Windows 7 and Windows Server 2008 R2, disabling SMBv2 deactivates the following functionality:
- Request compounding — allows for sending multiple SMB 2 requests as a single network request
- Larger reads and writes — better use of faster networks
- Caching of folder and file properties — clients keep local copies of folders and files
- Durable handles — allow for connection to transparently reconnect to the server if there is a temporary disconnection
- Improved message signing — HMAC SHA-256 replaces MD5 as hashing algorithm
- Improved scalability for file sharing — number of users, shares, and open files per server greatly increased
- Support for symbolic links
- Client oplock leasing model — limits the data transferred between the client and server, improving performance on high-latency networks and increasing SMB server scalability
- Large MTU support — for full use of 10-gigabye (GB) Ethernet
- Improved energy efficiency — clients that have open files to a server can sleep
In Windows 8 and Windows Server 2012, disabling SMBv3 deactivates the following functionality (and also the SMBv2 functionality that is described in the previous list):
- Transparent Failover — clients reconnect without interruption to cluster nodes during maintenance or failover
- Scale Out concurrent access to shared data on all file cluster nodes
- Multichannel — aggregation of network bandwidth and fault tolerance if multiple paths are available between client and server
- SMB Direct adds RDMA networking support for very high performance, with low latency and low CPU utilization
- Encryption Provides end-to-end encryption and protects from eavesdropping on untrustworthy networks
- Directory Leasing — Improves application response times in branch offices through caching
- Performance Optimizations — optimizations for small random read/write I/O
More information
The SMBv2 protocol was introduced in Windows Vista and Windows Server 2008.
The SMBv3 protocol was introduced in Windows 8 and Windows Server 2012.
For more information about the capabilities of SMBv2 and SMBv3 capabilities, go to the following Microsoft TechNet websites:
Server Message Block overview
What’s New in SMB
-
How to enable or disable SMB protocols on the SMB server
Windows 8 and Windows Server 2012
Windows 8 and Windows Server 2012 introduce the new Set-SMBServerConfiguration Windows PowerShell cmdlet. The cmdlet enables you to enable or disable the SMBv1, SMBv2, and SMBv3 protocols on the server component.
Notes When you enable or disable SMBv2 in Windows 8 or in Windows Server 2012, SMBv3 is also enabled or disabled. This behavior occurs because these protocols share the same stack.
You do not have to restart the computer after you run the Set-SMBServerConfiguration cmdlet.
- To obtain the current state of the SMB server protocol configuration, run the following cmdlet:
Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol
- To disable SMBv1 on the SMB server, run the following cmdlet:
Set-SmbServerConfiguration -EnableSMB1Protocol $false
- To disable SMBv2 and SMBv3 on the SMB server, run the following cmdlet:
Set-SmbServerConfiguration -EnableSMB2Protocol $false
- To enable SMBv1 on the SMB server, run the following cmdlet:
Set-SmbServerConfiguration -EnableSMB1Protocol $true
- To enable SMBv2 and SMBv3 on the SMB server, run the following cmdlet:
Set-SmbServerConfiguration -EnableSMB2Protocol $true
Windows 7, Windows Server 2008 R2, Windows Vista, and Windows Server 2008
To enable or disable SMB protocols on an SMB Server that is runningWindows 7, Windows Server 2008 R2, Windows Vista, or Windows Server 2008, use Windows PowerShell or Registry Editor.
Windows PowerShell 2.0 or a later version of PowerShell
- To disable SMBv1 on the SMB server, run the following cmdlet:
Set-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters» SMB1 -Type DWORD -Value 0 -Force
- To disable SMBv2 and SMBv3 on the SMB server, run the following cmdlet:
Set-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters» SMB2 -Type DWORD -Value 0 -Force
- To enable SMBv1 on the SMB server, run the following cmdlet:
Set-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters» SMB1 -Type DWORD -Value 1 -Force
- To enable SMBv2 and SMBv3 on the SMB server, run the following cmdlet:
Set-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters» SMB2 -Type DWORD -Value 1 -Force
Note You must restart the computer after you make these changes.
Registry Editor
Important This article contains information about how to modify the registry. Make sure that you back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows
To enable or disable SMBv1 on the SMB server, configure the following registry key:
Registry subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\ParametersRegistry entry: SMB1
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled To enable or disable SMBv2 on the SMB server, configure the following registry key:Registry subkey:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Registry entry: SMB2
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = EnabledHow to enable or disable SMB protocols on the SMB client
Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012
Note When you enable or disable SMBv2 in Windows 8 or in Windows Server 2012, SMBv3 is also enabled or disabled. This behavior occurs because these protocols share the same stack.
- To disable SMBv1 on the SMB client, run the following commands:
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsisc.exe config mrxsmb10 start= disabled
- To enable SMBv1 on the SMB client, run the following commands:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi sc.exe config mrxsmb10 start= auto
- To disable SMBv2 and SMBv3 on the SMB client, run the following commands:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi sc.exe config mrxsmb20 start= disabled
- To enable SMBv2 and SMBv3 on the SMB client, run the following commands:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi sc.exe config mrxsmb20 start= auto
Notes
- You must run these commands at an elevated command prompt.
- You must restart the computer after you make these changes.
- To obtain the current state of the SMB server protocol configuration, run the following cmdlet:
Published: 21/10/16 — 08:51:30 (Amanda Higgins)
Related Articles
Running DE8 on Windows Servers, do and dont’s (SMB1,SMB2,SMB3 and OpLocks)
With the release of DataEase 8.0, 8.1, 8.2 and Windows 7, 8 , 8.1 and Windows Server 2012 R2, we are frequently asked about how new versions of DataEase work when connecting to old versions of Windows servers and old versions of DataEase connecting to new…
Other sources of Network problems
This is a little old, but it is still useful. If you have switched off SMB2 and SMB3 on your networ as well as disabled OpLocks for SMB1 and still have problems with corruption, have a look below and see if some of these things might apply to your network…
Environment Variables in Windows XP, WIndows 7 and 8 (Complete List)
Environment variables is very useful to make general code. You can include them in paths directly to access files native to an active user/workstation/profile/session etc….
Сетевой протокол SMB (Server Message Block) используется для предоставления совместного удаленного доступа к файлам, принтерам и другим устройствам через порт TCP 445. В этой статье мы рассмотрим: какие версии (диалекты) протокола SMB доступны в различных версиях Windows (и как они соотносятся с версиями samba в Linux); как определить версию SMB на вашем компьютере; и как включить/отключить клиент и сервер SMBv1, SMBv2 и SMBv3.
Содержание:
- Версии протокола SMB в Windows
- Как проверить поддерживаемые версии SMB в Windows?
- Вывести используемые версии SMB с помощью Get-SMBConnection
- Об опасности использования SMBv1
- Включение и отключение SMBv1, SMBv2 и SMBv3 в Windows
Версии протокола SMB в Windows
Есть несколько версии протокола SMB (диалектов), которые последовательно появлялись в новых версиях Windows:
Для реализации протокола SMB в Linux/Unix системах используется samba. В скобках мы указали в каких версиях samba поддерживается каждый диалект SMB.
- CIFS — Windows NT 4.0;
- SMB 1.0 — Windows 2000;
- SMB 2.0 — Windows Server 2008 и Windows Vista SP1 (поддерживается в Samba 3.6);
- SMB 2.1 — Windows Server 2008 R2 и Windows 7 (поддерживается в Samba 4.0);
- SMB 3.0 — Windows Server 2012 и Windows 8 (поддерживается в Samba 4.2);
- SMB 3.02 — Windows Server 2012 R2 и Windows 8. 1 (не поддерживается в Samba);
- SMB 3.1.1 – Windows Server 2016 и Windows 10 (не поддерживается в Samba).
Начиная с версии Samba 4.14, по умолчанию используется SMB2.1.
При сетевом взаимодействии по протоколу SMB между клиентом и сервером используется максимальная версия протокола, поддерживаемая одновременно и клиентом, и сервером.
Ниже представлена сводная таблица, по которой можно определить версию протокола SMB, которая выбирается при взаимодействии разных версий Windows:
Операционная система | Win 10, Server 2016 | Windows 8.1, Server 2012 R2 |
Windows 8, Server 2012 |
Windows 7, Server 2008 R2 |
Windows Vista, Server 2008 |
Windows XP, Server 2003 и ниже |
Windows 10 ,
Windows Server 2016 |
SMB 3.1.1 | SMB 3.02 | SMB 3.0 | SMB 2.1 | SMB 2.0 | SMB 1.0 |
Windows 8.1 , Server 2012 R2 |
SMB 3.02 | SMB 3.02 | SMB 3.0 | SMB 2.1 | SMB 2.0 | SMB 1.0 |
Windows 8 , Server 2012 |
SMB 3.0 | SMB 3.0 | SMB 3.0 | SMB 2.1 | SMB 2.0 | SMB 1.0 |
Windows 7, Server 2008 R2 |
SMB 2.1 | SMB 2.1 | SMB 2.1 | SMB 2.1 | SMB 2.0 | SMB 1.0 |
Windows Vista, Server 2008 |
SMB 2.0 | SMB 2.0 | SMB 2.0 | SMB 2.0 | SMB 2.0 | SMB 1.0 |
Windows XP, 2003 и ниже | SMB 1.0 | SMB 1.0 | SMB 1.0 | SMB 1.0 | SMB 1.0 | SMB 1.0 |
К примеру, при подключении клиентского компьютера с Windows 8.1 к файловому серверу с Windows Server 2016 будет использоваться протокол SMB 3.0.2.
Согласно таблице Windows XP, Windows Server 2003 для доступа к общим файлам и папкам на сервере могут использовать только SMB 1.0, который в новых версиях Windows Server (2012 R2 / 2016) может быть отключен. Таким образом, если в вашей инфраструктуре одновременно используются компьютеры с Windows XP (снятой с поддержки), Windows Server 2003/R2 и сервера с Windows Server 2012 R2/2016/2019, устаревшие клиенты не смогут получить доступ к файлам и папкам на файловом сервере с новой ОС.
Если Windows Server 2016/2012 R2 с отключенным SMB v1.0 используется в качестве контроллера домена, значить клиенты на Windows XP/Server 2003 не смогут получить доступ к каталогам SYSVOL и NETLOGON на контроллерах домена и авторизоваться в AD.
На старых клиентах при попытке подключиться к ресурсу на файловом сервере с отключенным SMB v1 появляется ошибка:
The specified network name is no longer available
Как проверить поддерживаемые версии SMB в Windows?
Рассмотрим, как определить, какие версии протокола SMB поддерживаются на вашем компьютере Windows.
В Windows 10, 8.1 и Windows Server 2019/2016/2012R2 вы можете проверить состояние различных диалектов SMB протокола с помощью PowerShell:
Get-SmbServerConfiguration | select EnableSMB1Protocol,EnableSMB2Protocol
Данная команда вернула, что протокол SMB1 отключен (
EnableSMB1Protocol=False
), а протоколы SMB2 и SMB3 включены (
EnableSMB1Protocol=True
).
Обратите внимание, что протоколы SMBv3 и SMBv2 тесно связаны между собой. Нельзя отключить или включить отдельно SMBv3 или SMBv2. Они всегда включаются/отключаются только совместно, т.к. используют один стек.
В Windows 7, Vista, Windows Server 2008 R2/2008:
Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
Если в данной ветке реестра нет параметров с именами SMB1 или SMB2, значить протоколы SMB1 и SMB2 по умолчанию включены.
Также в этих версиях 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 серверам.
Вывести используемые версии SMB с помощью Get-SMBConnection
Как мы говорили раньше, компьютеры при взаимодействии по протоколу SMB используют максимальную версию, поддерживаемую как клиентом, так и сервером. Для определения версии SMB, используемой для доступа к удаленному компьютеру можно использовать командлет PowerShell
Get-SMBConnection
:
Версия SMB, используемая для подключения к удаленному серверу (ServerName) указана в столбце Dialect.
Можно вывести информацию о версиях SMB, используемых для доступа к конкретному серверу:
Get-SmbConnection -ServerName servername
Если нужно отобразить, используется ли SMB шифрование (появилось в SMB 3.0), выполните:
Get-SmbConnection | ft ServerName,ShareName,Dialect,Encrypted,UserName
В Linux вывести список SMB подключения и используемые диалекты в samba можно командой:
$ sudo smbstatus
Чтобы на стороне сервера вывести список используемых клиентами версий протокола SMB и количество клиентов, используемых ту или иную версию протокола SMB, выполните команду:
Get-SmbSession | Select-Object -ExpandProperty Dialect | Sort-Object -Unique
В нашем примере имеется 825 клиентов, подключенных к серверу с помощью SMB 2.1 (Windows 7/Windows Server 2008 R2) и 12 клиентов SMB 3.02.
С помощью PowerShell можно включить аудит версий SMB, используемых для подключения:
Set-SmbServerConfiguration –AuditSmb1Access $true
События подключения затем можно извлечь из журналов Event Viewer с помощью PowerShell:
Get-WinEvent -LogName Microsoft-Windows-SMBServer/Audit
Об опасности использования SMBv1
Последние несколько лет Microsoft из соображений безопасности планомерно отключает устаревший протокол SMB 1.0. Связано это с большим количеством критических уязвимостей в этом протоколе (вспомните историю с эпидемиями вирусов-шифровальщиков wannacrypt и petya, которые использовали уязвимость именно в протоколе SMBv1). Microsoft и другие IT компании настоятельно рекомендуют отказаться от его использования.
Однако отключение SMBv1 может вызвать проблемы с доступом к общий файлам и папкам на новых версиях Windows 10 (Windows Server 2016/2019) с устаревших версий клиентов (Windows XP, Server 2003), сторонних ОС (Mac OSX 10.8 Mountain Lion, Snow Leopard, Mavericks, старые версии Linux), различных старых NAS устройствах.
Если в вашей сети не осталось legacy устройств с поддержкой только SMBv1, обязательно отключайте эту версию диалекта в Windows.
В том случае, если в вашей сети остались клиенты с Windows XP, Windows Server 2003 или другие устройства, которые поддерживают только SMBv1, их нужно как можно скорее обновить или тщательно изолировать.
Включение и отключение SMBv1, SMBv2 и SMBv3 в Windows
Рассмотрим способы включения, отключения различных версий SMB в Windows. Мы рассматриваем отдельно включение клиента и сервера SMB (это разные компоненты).
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
Для отключения сервера SMBv1 на всех компьютерах независимо от версии Windows можно распространить параметр реестра типа REG_DWORD с именем SMB1 и значением 0 (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters)на через GPO.
Для отключения SMBv2 нужно в этой же ветке установить параметр SMB2=0.
Для отключения SMBv1 клиента нужно распространить такой параметр реестра:
- Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10
- Name: Start
- Type: REG_DWORD
- Value: 4
При отключении SMB 1.0/CIFS File Sharing Support в Windows вы можете столкнуться с ошибкой “0x80070035, не найден сетевой путь”, ошибкой при доступе к общим папкам, и проблемами обнаружения компьютеров в сетевом окружении. В этом случае вместо служба обозревателя компьютеров (Computer Browser) нужно использовать службы обнаружения (линк).
Сетевой протокол Server Message Block (SMB) используется для совместного использования удаленного доступа к файлам, принтерам и другим устройствам через TCP-порт 445. В этой статье мы рассмотрим, какие версии (диалекты) SMB доступны в разных версиях Windows. (и как они соотносятся с версиями самбы в Linux); как определить версию SMB на вашем компьютере; и как включить / отключить клиентов и серверы SMBv1, SMBv2 и SMBv3.
SMB (Server Message Block) является протоколом, который используется для обмена файлами, печати и других операций между компьютерами в сети Windows. В Windows можно включать и отключать определенные версии протокола SMB в зависимости от требований безопасности и совместимости.
Для того чтобы определить, какие версии протокола SMB включены в Windows, необходимо выполнить следующие действия:
- Откройте командную строку от имени администратора.
- Введите команду
sc.exe qc lanmanworkstation
и нажмите Enter. - В выводе командной строки найдите строку “DEPENDENCIES” и проверьте, есть ли там ссылки на “mrxsmb10” (SMBv1), “mrxsmb20” (SMBv2) и/или “mrxsmb30” (SMBv3).
- Если ссылки на SMBv1 есть в “DEPENDENCIES”, это означает, что SMBv1 включен в Windows. Если ссылки на SMBv2 и/или SMBv3 есть в “DEPENDENCIES”, это означает, что соответствующие версии SMB включены в Windows.
Если необходимо отключить или включить определенную версию SMB, можно воспользоваться следующей инструкцией:
- Откройте “Панель управления” и выберите “Программы и компоненты”.
- Нажмите “Включение или отключение компонентов Windows”.
- Раскройте ветвь “Протокол SMB 1.0/CIFS файловая система” и уберите или поставьте галочку напротив “Клиент SMB 1.0/CIFS”.
- Раскройте ветвь “Поддержка SMB 1.0/CIFS” и уберите или поставьте галочку напротив “Сервер SMB 1.0/CIFS”.
- Раскройте ветвь “Поддержка SMB 2.0/CIFS файловая система” и уберите или поставьте галочку напротив “Клиент SMB 2.0/CIFS”.
- Раскройте ветвь “Поддержка SMB 3.0/CIFS файловая система” и уберите или поставьте галочку напротив “Клиент SMB 3.0/CIFS”.
- Нажмите “OK” и перезагрузите компьютер, если вам будет предложено это сделать.
При изменении настроек протокола SMB рекомендуется включать только те версии протокола, которые действительно необходимы, и отключать устаревшие версии протокола SMB, такие как SMBv1
Существует несколько версий протокола SMB (диалектов), которые постоянно появляются в новых версиях Windows:
Samba используется для реализации протокола SMB в системах Linux / Unix. В скобках мы указали, в каких версиях самбы поддерживается каждый диалект SMB.
- CIFS – Windows NT 4.0;
- SMB 1.0 – Windows 2000;
- SMB 2.0 – Windows Server 2008 и Windows Vista SP1 (поддерживается в Samba 3.6);
- SMB 2.1 – Windows Server 2008 R2 и Windows 7 (поддерживается в Samba 4.0);
- SMB 3.0 – Windows Server 2012 и Windows 8 (поддерживается в Samba 4.2);
- SMB 3.02 – Windows Server 2012 R2 и Windows 8.1 (не поддерживается в Samba);
- SMB 3.1.1 – Windows Server 2016 и Windows 10 (не поддерживается в Samba).
Начиная с Samba 4.14, по умолчанию используется SMB2.1.
В сети SMB между клиентом и сервером используется максимальная версия протокола, поддерживаемая как клиентом, так и сервером.
Ниже представлена сводная таблица, по которой вы можете определить версию протокола SMB, выбранную при взаимодействии с разными версиями Windows:
Операционная система | Win 10, Сервер 2016 | Windows 8.1, Сервер 2012 R2 |
Windows 8, Сервер 2012 |
Windows 7, Сервер 2008 R2 |
Виндоус виста, Сервер 2008 |
Windows XP, Server 2003 и более ранние версии |
Windows 10 , Windows Server 2016 |
SMB 3.1.1 | SMB 3.02 | МСП 3.0 | SMB 2.1 | МСБ 2.0 | SMB 1.0 |
Windows 8.1 , Сервер 2012 R2 |
SMB 3.02 | SMB 3.02 | МСП 3.0 | SMB 2.1 | МСБ 2.0 | SMB 1.0 |
Windows 8 , Сервер 2012 |
МСП 3.0 | МСП 3.0 | МСП 3.0 | SMB 2.1 | МСБ 2.0 | SMB 1.0 |
Windows 7, Сервер 2008 R2 |
SMB 2.1 | SMB 2.1 | SMB 2.1 | SMB 2.1 | МСБ 2.0 | SMB 1.0 |
Виндоус виста, Сервер 2008 |
МСБ 2.0 | МСБ 2.0 | МСБ 2.0 | МСБ 2.0 | МСБ 2.0 | SMB 1.0 |
Windows XP, 2003 и ранее | SMB 1.0 | SMB 1.0 | SMB 1.0 | SMB 1.0 | SMB 1.0 | SMB 1.0 |
Например, когда клиентский компьютер Windows 8.1 подключается к файловому серверу Windows Server 2016, он будет использовать SMB 3.0.2.
Согласно таблице Windows XP, Windows Server 2003 может использовать SMB 1.0 только для доступа к общим файлам и папкам на сервере, который можно отключить в более новых версиях Windows Server (2012 R2 / 2016). Следовательно, если в инфраструктуре одновременно используются компьютеры под управлением Windows XP (прекращено), Windows Server 2003 / R2 и серверы под управлением Windows Server 2012 R2 / 2016/2019, устаревшие клиенты не смогут получить доступ к файлам и папкам в файле сервер с новой операционной системой.
Если Windows Server 2016/2012 R2 с отключенным SMB v1.0 используется в качестве контроллера домена, клиенты в Windows XP / Server 2003 не смогут получить доступ к каталогам SYSVOL и NETLOGON на контроллерах домена и доступ к AD.
На старых клиентах при попытке подключиться к ресурсу на файловом сервере с отключенным SMB v1 отображается ошибка:
Указанное сетевое имя больше не доступно
Как проверить поддерживаемые версии SMB в Windows?
Давайте посмотрим, как определить, какие версии протокола SMB поддерживаются на вашем компьютере с Windows.
В Windows 10, 8.1 и Windows Server 2019/2016 / 2012R2 вы можете проверить статус различных диалектов протокола SMB с помощью PowerShell:
Get-SmbServerConfiguration | select EnableSMB1Protocol,EnableSMB2Protocol
Эта команда вернула протокол SMB1 отключенным (
EnableSMB1Protocol=False
) и включенным протоколом SMB2 и SMB3 (
EnableSMB1Protocol=True
).
Обратите внимание, что протоколы SMBv3 и SMBv2 тесно связаны. SMBv3 или SMBv2 нельзя отключить или включить отдельно. Они всегда включаются / отключаются только вместе, потому что для этого используется стек.
В Windows 7, Vista, Windows Server 2008 R2 / 2008:
Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty
Сетевой протокол Server Message Block (SMB) используется для совместного использования удаленного доступа к файлам, принтерам и другим устройствам через TCP-порт 445. В этой статье мы рассмотрим, какие версии (диалекты) SMB доступны в разных версиях Windows. (и как они соотносятся с версиями самбы в Linux); как определить версию SMB на вашем компьютере; и как включить / отключить клиентов и серверы SMBv1, SMBv2 и SMBv3.
Версии протокола SMB в Windows
Существует несколько версий протокола SMB (диалектов), которые постоянно появляются в новых версиях Windows:
Samba используется для реализации протокола SMB в системах Linux / Unix. В скобках мы указали, в каких версиях самбы поддерживается каждый диалект SMB.
- CIFS – Windows NT 4.0;
- SMB 1.0 – Windows 2000;
- SMB 2.0 – Windows Server 2008 и Windows Vista SP1 (поддерживается в Samba 3.6);
- SMB 2.1 – Windows Server 2008 R2 и Windows 7 (поддерживается в Samba 4.0);
- SMB 3.0 – Windows Server 2012 и Windows 8 (поддерживается в Samba 4.2);
- SMB 3.02 – Windows Server 2012 R2 и Windows 8.1 (не поддерживается в Samba);
- SMB 3.1.1 – Windows Server 2016 и Windows 10 (не поддерживается в Samba).
Начиная с Samba 4.14, по умолчанию используется SMB2.1.
В сети SMB между клиентом и сервером используется максимальная версия протокола, поддерживаемая как клиентом, так и сервером.
Ниже представлена сводная таблица, по которой вы можете определить версию протокола SMB, выбранную при взаимодействии с разными версиями Windows:
Операционная система | Win 10, Сервер 2016 | Windows 8.1, Сервер 2012 R2 |
Windows 8, Сервер 2012 |
Windows 7, Сервер 2008 R2 |
Виндоус виста, Сервер 2008 |
Windows XP, Server 2003 и более ранние версии |
Windows 10 , Windows Server 2016 |
SMB 3.1.1 | SMB 3.02 | МСП 3.0 | SMB 2.1 | МСБ 2.0 | SMB 1.0 |
Windows 8.1 , Сервер 2012 R2 |
SMB 3.02 | SMB 3.02 | МСП 3.0 | SMB 2.1 | МСБ 2.0 | SMB 1.0 |
Windows 8 , Сервер 2012 |
МСП 3.0 | МСП 3.0 | МСП 3.0 | SMB 2.1 | МСБ 2.0 | SMB 1.0 |
Windows 7, Сервер 2008 R2 |
SMB 2.1 | SMB 2.1 | SMB 2.1 | SMB 2.1 | МСБ 2.0 | SMB 1.0 |
Виндоус виста, Сервер 2008 |
МСБ 2.0 | МСБ 2.0 | МСБ 2.0 | МСБ 2.0 | МСБ 2.0 | SMB 1.0 |
Windows XP, 2003 и ранее | SMB 1.0 | SMB 1.0 | SMB 1.0 | SMB 1.0 | SMB 1.0 | SMB 1.0 |
Например, когда клиентский компьютер Windows 8.1 подключается к файловому серверу Windows Server 2016, он будет использовать SMB 3.0.2.
Согласно таблице Windows XP, Windows Server 2003 может использовать SMB 1.0 только для доступа к общим файлам и папкам на сервере, который можно отключить в более новых версиях Windows Server (2012 R2 / 2016). Следовательно, если в инфраструктуре одновременно используются компьютеры под управлением Windows XP (прекращено), Windows Server 2003 / R2 и серверы под управлением Windows Server 2012 R2 / 2016/2019, устаревшие клиенты не смогут получить доступ к файлам и папкам в файле сервер с новой операционной системой.
Если Windows Server 2016/2012 R2 с отключенным SMB v1.0 используется в качестве контроллера домена, клиенты в Windows XP / Server 2003 не смогут получить доступ к каталогам SYSVOL и NETLOGON на контроллерах домена и доступ к AD.
На старых клиентах при попытке подключиться к ресурсу на файловом сервере с отключенным SMB v1 отображается ошибка:
Указанное сетевое имя больше не доступно
Как проверить поддерживаемые версии SMB в Windows?
Давайте посмотрим, как определить, какие версии протокола SMB поддерживаются на вашем компьютере с Windows.
В Windows 10, 8.1 и Windows Server 2019/2016 / 2012R2 вы можете проверить статус различных диалектов протокола SMB с помощью PowerShell:
Get-SmbServerConfiguration | select EnableSMB1Protocol,EnableSMB2Protocol
Эта команда вернула протокол SMB1 отключенным (
EnableSMB1Protocol=False
) и включенным протоколом SMB2 и SMB3 (
EnableSMB1Protocol=True
).
Обратите внимание, что протоколы SMBv3 и SMBv2 тесно связаны. SMBv3 или SMBv2 нельзя отключить или включить отдельно. Они всегда включаются / отключаются только вместе, потому что для этого используется стек.
В Windows 7, Vista, Windows Server 2008 R2 / 2008:
sc.exe query mrxsmb10
Если этот раздел реестра не содержит параметров с именами SMB1 или SMB2, протоколы SMB1 и SMB2 включены по умолчанию.
Даже в этих версиях Windows вы можете проверить, какие диалекты SMB можно использовать в качестве клиента, с помощью команд:
sc.exe query mrxsmb20
SERVICE_NAME: mrxsmb10 TYPE: 2 FILE_SYSTEM_DRIVER STATUS: 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE: 0 (0x0) SERVICE_EXIT_CODE: 0 (WOx0) CHINT
STATE=4 Running
SERVICE_NAME: mrxsmb20 TYPE: 2 FILE_SYSTEM_DRIVER STATUS: 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE: 0 (0x0) SERVICE_EXIT_CODE: 0 (0xA) 0 CHECKINT
В обоих случаях службы работают (
Get-SMBConnection
). Это означает, что Windows может подключаться как к серверам SMBv1, так и к SMBv2.
Вывести используемые версии SMB с помощью Get-SMBConnection
Как мы уже говорили ранее, компьютеры, обменивающиеся данными по SMB, используют максимальную версию, поддерживаемую как клиентом, так и сервером. Вы можете использовать командлет PowerShell
Get-SmbConnection -ServerName servername
, чтобы определить версию SMB, используемую для доступа к удаленному компьютеру
Get-SmbConnection | ft ServerName,ShareName,Dialect,Encrypted,UserName
:
Версия SMB, используемая для подключения к удаленному серверу (ServerName), указана в столбце Dialect.
вы можете просмотреть информацию о версиях SMB, используемых для доступа к определенному серверу:
$ sudo smbstatus
Если вы хотите узнать, используется ли шифрование SMB (введенное в SMB 3.0), запустите:
Get-SmbSession | Select-Object -ExpandProperty Dialect | Sort-Object -Unique
В Linux вы можете увидеть список SMB-соединений и диалектов, используемых в самбе, с помощью команды:
Set-SmbServerConfiguration –AuditSmb1Access $true
Чтобы просмотреть на стороне сервера список версий протокола SMB, используемых клиентами, и количество клиентов, используемых конкретной версией протокола SMB, выполните команду:
Get-WinEvent -LogName Microsoft-Windows-SMBServer/Audit
В нашем примере к серверу подключено 825 клиентов с использованием SMB 2.1 (Windows 7 / Windows Server 2008 R2) и 12 клиентов SMB 3.02.
вы можете использовать PowerShell, чтобы включить управление версиями SMB, используемую для подключения:
Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol
Затем события подключения можно получить из журналов средства просмотра событий:
Set-SmbServerConfiguration -EnableSMB1Protocol $false
Об опасности использования SMBv1
В последние годы Microsoft систематически отключает устаревший протокол SMB 1.0 из соображений безопасности. Это связано с большим количеством критических уязвимостей в этом протоколе (вспомните историю со вспышками программ-вымогателей wannacrypt и petya, которые использовали уязвимость в протоколе SMBv1). Microsoft и другие ИТ-компании настоятельно рекомендуют вам прекратить его использование.
Однако отключение SMBv1 может вызвать проблемы с доступом к общим файлам и папкам в более новых версиях Windows 10 (Windows Server 2016/2019) из устаревших клиентов (Windows XP, Server 2003), сторонних операционных систем (Mac OSX 10.8 Mountain Lion, Snow Leopard, Mavericks, старые версии Linux), различные старые устройства NAS.
Если в вашей сети не осталось устаревших устройств, поддерживающих только SMBv1, обязательно отключите эту версию диалекта в Windows.
Если у вас есть клиенты под управлением Windows XP, Windows Server 2003 или других устройств, которые поддерживают только SMBv1 в вашей сети, вам необходимо как можно скорее полностью обновить или изолировать их.
Включение и отключение SMBv1, SMBv2 и SMBv3 в Windows
Давайте рассмотрим способы включения и отключения разных версий SMB в Windows. Мы пытаемся включить SMB-клиент и сервер отдельно (это разные компоненты).
Windows 10, 8.1, Windows Server 2019/2016 / 2012R2:
Отключите клиент и сервер SMBv1:
Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol
Отключить только сервер SMBv1:
Set-SmbServerConfiguration -EnableSMB1Protocol $true
Включите клиент и сервер SMBv1:
Set-SmbServerConfiguration -EnableSMB2Protocol $false
Включить только сервер SMBv1:
Set-SmbServerConfiguration -EnableSMB2Protocol $true
Узнайте больше о протоколе SMBv1 в Windows 10 и Windows Server 2016/2019.
Отключите серверы SMBv2 и SMBv3:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 –Force
Включите SMBv2 и SMBv3 Server:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 –Force
Windows 7, Vista, Windows Server 2008 R2 / 2008:
Отключить сервер 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
Отключить клиент SMBv1:
конфигурация sc.exe lanmanworkstation зависит от = bowser / mrxsmb20 / nsi
sc.exe config mrxsmb10 start = отключено
Включите клиент SMBv1:
конфигурация sc.exe lanmanworkstation зависит от 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 lanmanworkstation зависит от = bowser / mrxsmb10 / nsi
sc.exe config mrxsmb20 start = отключено
Включите клиент SMBv2:
конфигурация sc.exe lanmanworkstation зависит от Bowser / mrxsmb10 / mrxsmb20 / nsi
sc.exe config mrxsmb20 start = auto
Чтобы отключить сервер SMBv1 на всех компьютерах, независимо от версии Windows, вы можете распространить значение реестра REG_DWORD с именем SMB1 и значение 0 (HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Parameters) через GPO.
Чтобы отключить SMBv2, установите параметр SMB2 = 0 в той же ветви.
Чтобы отключить клиент SMBv1, вам необходимо распространить следующий раздел реестра:
- Ключ: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ mrxsmb10
- Имя: Начало
- Тип: REG_DWORD
- Значение: 4
При отключении поддержки общего доступа к файлам SMB 1.0 / CIFS в Windows вы можете столкнуться с ошибкой «0x80070035, сетевой путь не найден», ошибкой доступа к общим папкам и проблемами обнаружения компьютера в непосредственной близости от сети. В этом случае вместо службы обозревателя компьютеров нужно использовать службу обнаружения (ссылки).
Источник изображения: winitpro.ru.pspath}
Если этот раздел реестра не содержит параметров с именами SMB1 или SMB2, протоколы SMB1 и SMB2 включены по умолчанию.
Даже в этих версиях Windows вы можете проверить, какие диалекты SMB можно использовать в качестве клиента, с помощью команд:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
sc.exe config mrxsmb20 start= disabled
SERVICE_NAME: mrxsmb10 TYPE: 2 FILE_SYSTEM_DRIVER STATUS: 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE: 0 (0x0) SERVICE_EXIT_CODE: 0 (WOx0) CHINT
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb20 start= auto
SERVICE_NAME: mrxsmb20 TYPE: 2 FILE_SYSTEM_DRIVER STATUS: 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE: 0 (0x0) SERVICE_EXIT_CODE: 0 (0xA) 0 CHECKINT
В обоих случаях службы работают ([*]). Это означает, что Windows может подключаться как к серверам SMBv1, так и к SMBv2.
Вывести используемые версии SMB с помощью Get-SMBConnection
Как мы уже говорили ранее, компьютеры, обменивающиеся данными по SMB, используют максимальную версию, поддерживаемую как клиентом, так и сервером. Вы можете использовать командлет PowerShell [*], чтобы определить версию SMB, используемую для доступа к удаленному компьютеру [*]:
Версия SMB, используемая для подключения к удаленному серверу (ServerName), указана в столбце Dialect.
вы можете просмотреть информацию о версиях SMB, используемых для доступа к определенному серверу:
[*]
Если вы хотите узнать, используется ли шифрование SMB (введенное в SMB 3.0), запустите:
[*]
В Linux вы можете увидеть список SMB-соединений и диалектов, используемых в самбе, с помощью команды:
[*]
Чтобы просмотреть на стороне сервера список версий протокола SMB, используемых клиентами, и количество клиентов, используемых конкретной версией протокола SMB, выполните команду:
[*]
В нашем примере к серверу подключено 825 клиентов с использованием SMB 2.1 (Windows 7 / Windows Server 2008 R2) и 12 клиентов SMB 3.02.
вы можете использовать PowerShell, чтобы включить управление версиями SMB, используемую для подключения:
[*]
Затем события подключения можно получить из журналов средства просмотра событий:
[*]
Об опасности использования SMBv1
В последние годы Microsoft систематически отключает устаревший протокол SMB 1.0 из соображений безопасности. Это связано с большим количеством критических уязвимостей в этом протоколе (вспомните историю со вспышками программ-вымогателей wannacrypt и petya, которые использовали уязвимость в протоколе SMBv1). Microsoft и другие ИТ-компании настоятельно рекомендуют вам прекратить его использование.
Однако отключение SMBv1 может вызвать проблемы с доступом к общим файлам и папкам в более новых версиях Windows 10 (Windows Server 2016/2019) из устаревших клиентов (Windows XP, Server 2003), сторонних операционных систем (Mac OSX 10.8 Mountain Lion, Snow Leopard, Mavericks, старые версии Linux), различные старые устройства NAS.
Если в вашей сети не осталось устаревших устройств, поддерживающих только SMBv1, обязательно отключите эту версию диалекта в Windows.
Если у вас есть клиенты под управлением Windows XP, Windows Server 2003 или других устройств, которые поддерживают только SMBv1 в вашей сети, вам необходимо как можно скорее полностью обновить или изолировать их.
Включение и отключение SMBv1, SMBv2 и SMBv3 в Windows
Давайте рассмотрим способы включения и отключения разных версий SMB в Windows. Мы пытаемся включить SMB-клиент и сервер отдельно (это разные компоненты).
Windows 10, 8.1, Windows Server 2019/2016 / 2012R2:
Отключите клиент и сервер SMBv1:
[*]
Отключить только сервер SMBv1:
[*]
Включите клиент и сервер SMBv1:
[*]
Включить только сервер SMBv1:
[*]
Узнайте больше о протоколе SMBv1 в Windows 10 и Windows Server 2016/2019.
Отключите серверы SMBv2 и SMBv3:
[*]
Включите SMBv2 и SMBv3 Server:
[*]
Windows 7, Vista, Windows Server 2008 R2 / 2008:
Отключить сервер SMBv1:
[*]
Включите сервер SMBv1:
[*]
Отключить клиент SMBv1:
конфигурация sc.exe lanmanworkstation зависит от = bowser / mrxsmb20 / nsi
sc.exe config mrxsmb10 start = отключено
Включите клиент SMBv1:
конфигурация sc.exe lanmanworkstation зависит от Bowser / mrxsmb10 / mrxsmb20 / nsi
sc.exe config mrxsmb10 start = auto
Отключите сервер SMBv2:
[*]
Включить сервер SMBv2
[*]
Отключите клиент SMBv2:
конфигурация sc.exe lanmanworkstation зависит от = bowser / mrxsmb10 / nsi
sc.exe config mrxsmb20 start = отключено
Включите клиент SMBv2:
конфигурация sc.exe lanmanworkstation зависит от Bowser / mrxsmb10 / mrxsmb20 / nsi
sc.exe config mrxsmb20 start = auto
Чтобы отключить сервер SMBv1 на всех компьютерах, независимо от версии Windows, вы можете распространить значение реестра REG_DWORD с именем SMB1 и значение 0 (HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Parameters) через GPO.
Чтобы отключить SMBv2, установите параметр SMB2 = 0 в той же ветви.
Чтобы отключить клиент SMBv1, вам необходимо распространить следующий раздел реестра:
- Ключ: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ mrxsmb10
- Имя: Начало
- Тип: REG_DWORD
- Значение: 4
При отключении поддержки общего доступа к файлам SMB 1.0 / CIFS в Windows вы можете столкнуться с ошибкой «0x80070035, сетевой путь не найден», ошибкой доступа к общим папкам и проблемами обнаружения компьютера в непосредственной близости от сети. В этом случае вместо службы обозревателя компьютеров нужно использовать службу обнаружения (ссылки).
Источник изображения: winitpro.ru
Сетевой протокол SMB (Server Message Block) используется для предоставления совместного удаленного доступа к файлам, принтерам и другим устройствам через порт TCP 445. В этой статье мы рассмотрим: какие версии (диалекты) протокола SMB доступны в различных версиях Windows (и как они соотносятся с версиями samba в Linux); как определить версию SMB на вашем компьютере; и как включить/отключить клиент и сервер SMBv1, SMBv2 и SMBv3.
Содержание:
- Версии протокола SMB в Windows
- Как проверить поддерживаемые версии SMB в Windows?
- Вывести используемые версии SMB с помощью Get-SMBConnection
- Об опасности использования SMBv1
- Включение и отключение SMBv1, SMBv2 и SMBv3 в Windows
Версии протокола SMB в Windows
Есть несколько версии протокола SMB (диалектов), которые последовательно появлялись в новых версиях Windows:
Для реализации протокола SMB в Linux/Unix системах используется samba. В скобках мы указали в каких версиях samba поддерживается каждый диалект SMB.
- CIFS — Windows NT 4.0;
- SMB 1.0 — Windows 2000;
- SMB 2.0 — Windows Server 2008 и Windows Vista SP1 (поддерживается в Samba 3.6);
- SMB 2.1 — Windows Server 2008 R2 и Windows 7 (поддерживается в Samba 4.0);
- SMB 3.0 — Windows Server 2012 и Windows 8 (поддерживается в Samba 4.2);
- SMB 3.02 — Windows Server 2012 R2 и Windows 8. 1 (не поддерживается в Samba);
- SMB 3.1.1 – Windows Server 2016 и Windows 10 (не поддерживается в Samba).
Начиная с версии Samba 4.14, по умолчанию используется SMB2.1.
При сетевом взаимодействии по протоколу SMB между клиентом и сервером используется максимальная версия протокола, поддерживаемая одновременно и клиентом, и сервером.
Ниже представлена сводная таблица, по которой можно определить версию протокола SMB, которая выбирается при взаимодействии разных версий Windows:
Операционная система | Win 10, Server 2016 | Windows 8.1, Server 2012 R2 |
Windows 8, Server 2012 |
Windows 7, Server 2008 R2 |
Windows Vista, Server 2008 |
Windows XP, Server 2003 и ниже |
Windows 10 , Windows Server 2016 |
SMB 3.1.1 | SMB 3.02 | SMB 3.0 | SMB 2.1 | SMB 2.0 | SMB 1.0 |
Windows 8.1 , Server 2012 R2 |
SMB 3.02 | SMB 3.02 | SMB 3.0 | SMB 2.1 | SMB 2.0 | SMB 1.0 |
Windows 8 , Server 2012 |
SMB 3.0 | SMB 3.0 | SMB 3.0 | SMB 2.1 | SMB 2.0 | SMB 1.0 |
Windows 7, Server 2008 R2 |
SMB 2.1 | SMB 2.1 | SMB 2.1 | SMB 2.1 | SMB 2.0 | SMB 1.0 |
Windows Vista, Server 2008 |
SMB 2.0 | SMB 2.0 | SMB 2.0 | SMB 2.0 | SMB 2.0 | SMB 1.0 |
Windows XP, 2003 и ниже | SMB 1.0 | SMB 1.0 | SMB 1.0 | SMB 1.0 | SMB 1.0 | SMB 1.0 |
К примеру, при подключении клиентского компьютера с Windows 8.1 к файловому серверу с Windows Server 2016 будет использоваться протокол SMB 3.0.2.
Согласно таблице Windows XP, Windows Server 2003 для доступа к общим файлам и папкам на сервере могут использовать только SMB 1.0, который в новых версиях Windows Server (2012 R2 / 2016) может быть отключен. Таким образом, если в вашей инфраструктуре одновременно используются компьютеры с Windows XP (снятой с поддержки), Windows Server 2003/R2 и сервера с Windows Server 2012 R2/2016/2019, устаревшие клиенты не смогут получить доступ к файлам и папкам на файловом сервере с новой ОС.
Если Windows Server 2016/2012 R2 с отключенным SMB v1.0 используется в качестве контроллера домена, значить клиенты на Windows XP/Server 2003 не смогут получить доступ к каталогам SYSVOL и NETLOGON на контроллерах домена и авторизоваться в AD.
На старых клиентах при попытке подключиться к ресурсу на файловом сервере с отключенным SMB v1 появляется ошибка:
The specified network name is no longer available
Как проверить поддерживаемые версии SMB в Windows?
Рассмотрим, как определить, какие версии протокола SMB поддерживаются на вашем компьютере Windows.
В Windows 10, 8.1 и Windows Server 2019/2016/2012R2 вы можете проверить состояние различных диалектов SMB протокола с помощью PowerShell:
Get-SmbServerConfiguration | select EnableSMB1Protocol,EnableSMB2Protocol
Данная команда вернула, что протокол SMB1 отключен (
EnableSMB1Protocol=False
), а протоколы SMB2 и SMB3 включены (
EnableSMB1Protocol=True
).
Обратите внимание, что протоколы SMBv3 и SMBv2 тесно связаны между собой. Нельзя отключить или включить отдельно SMBv3 или SMBv2. Они всегда включаются/отключаются только совместно, т.к. используют один стек.
В Windows 7, Vista, Windows Server 2008 R2/2008:
Get-Item HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters | ForEach-Object {Get-ItemProperty $_.pspath}
Если в данной ветке реестра нет параметров с именами SMB1 или SMB2, значить протоколы SMB1 и SMB2 по умолчанию включены.
Также в этих версиях 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 серверам.
Вывести используемые версии SMB с помощью Get-SMBConnection
Как мы говорили раньше, компьютеры при взаимодействии по протоколу SMB используют максимальную версию, поддерживаемую как клиентом, так и сервером. Для определения версии SMB, используемой для доступа к удаленному компьютеру можно использовать командлет PowerShell
Get-SMBConnection
:
Версия SMB, используемая для подключения к удаленному серверу (ServerName) указана в столбце Dialect.
Можно вывести информацию о версиях SMB, используемых для доступа к конкретному серверу:
Get-SmbConnection -ServerName servername
Если нужно отобразить, используется ли SMB шифрование (появилось в SMB 3.0), выполните:
Get-SmbConnection | ft ServerName,ShareName,Dialect,Encrypted,UserName
В Linux вывести список SMB подключения и используемые диалекты в samba можно командой:
$ sudo smbstatus
Чтобы на стороне сервера вывести список используемых клиентами версий протокола SMB и количество клиентов, используемых ту или иную версию протокола SMB, выполните команду:
Get-SmbSession | Select-Object -ExpandProperty Dialect | Sort-Object -Unique
В нашем примере имеется 825 клиентов, подключенных к серверу с помощью SMB 2.1 (Windows 7/Windows Server 2008 R2) и 12 клиентов SMB 3.02.
С помощью PowerShell можно включить аудит версий SMB, используемых для подключения:
Set-SmbServerConfiguration –AuditSmb1Access $true
События подключения затем можно извлечь из журналов Event Viewer с помощью PowerShell:
Get-WinEvent -LogName Microsoft-Windows-SMBServer/Audit
Об опасности использования SMBv1
Последние несколько лет Microsoft из соображений безопасности планомерно отключает устаревший протокол SMB 1.0. Связано это с большим количеством критических уязвимостей в этом протоколе (вспомните историю с эпидемиями вирусов-шифровальщиков wannacrypt и petya, которые использовали уязвимость именно в протоколе SMBv1). Microsoft и другие IT компании настоятельно рекомендуют отказаться от его использования.
Однако отключение SMBv1 может вызвать проблемы с доступом к общий файлам и папкам на новых версиях Windows 10 (Windows Server 2016/2019) с устаревших версий клиентов (Windows XP, Server 2003), сторонних ОС (Mac OSX 10.8 Mountain Lion, Snow Leopard, Mavericks, старые версии Linux), различных старых NAS устройствах.
Если в вашей сети не осталось legacy устройств с поддержкой только SMBv1, обязательно отключайте эту версию диалекта в Windows.
В том случае, если в вашей сети остались клиенты с Windows XP, Windows Server 2003 или другие устройства, которые поддерживают только SMBv1, их нужно как можно скорее обновить или тщательно изолировать.
Включение и отключение SMBv1, SMBv2 и SMBv3 в Windows
Рассмотрим способы включения, отключения различных версий SMB в Windows. Мы рассматриваем отдельно включение клиента и сервера SMB (это разные компоненты).
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:SYSTEMCurrentControlSetServicesLanmanServerParameters" SMB1 -Type DWORD -Value 0 –Force
Включить SMBv1 сервер:
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters" 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:SYSTEMCurrentControlSetServicesLanmanServerParameters" SMB2 -Type DWORD -Value 0 -Force
Включить SMBv2 сервер
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters" 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
Для отключения сервера SMBv1 на всех компьютерах независимо от версии Windows можно распространить параметр реестра типа REG_DWORD с именем SMB1 и значением 0 (HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters)на через GPO.
Для отключения SMBv2 нужно в этой же ветке установить параметр SMB2=0.
Для отключения SMBv1 клиента нужно распространить такой параметр реестра:
- Key: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesmrxsmb10
- Name: Start
- Type: REG_DWORD
- Value: 4
При отключении SMB 1.0/CIFS File Sharing Support в Windows вы можете столкнуться с ошибкой “0x80070035, не найден сетевой путь”, ошибкой при доступе к общим папкам, и проблемами обнаружения компьютеров в сетевом окружении. В этом случае вместо служба обозревателя компьютеров (Computer Browser) нужно использовать службы обнаружения (линк).
Для Windows 8 и Windows Server 2012
В Windows 8 и Windows Server 2012 появился новый командлет Windows PowerShell Set-SMBServerConfiguration. Он позволяет включать или отключать протоколы SMB версии 1, 2 и 3 на сервере.
Примечания. При включении или отключении протокола SMB версии 2 в Windows 8 или Windows Server 2012 также происходит включение или отключение протокола SMB версии 3. Это связано с использованием общего стека для этих протоколов.
После выполнения командлета Set-SMBServerConfiguration перезагрузка компьютера не требуется.
SMB версии 1 на SMB-сервере
Обнаружение: | Get-SmbServerConfiguration | Select EnableSMB1Protocol |
Отключение: | Set-SmbServerConfiguration -EnableSMB1Protocol $false |
Включение: | Set-SmbServerConfiguration -EnableSMB1Protocol $true |
Дополнительные сведения см. в статье блога Серверное хранилище Майкрософт.
SMB версий 2 и 3 на SMB-сервере
Обнаружение: | Get-SmbServerConfiguration | Select EnableSMB2Protocol |
Отключение: | Set-SmbServerConfiguration -EnableSMB2Protocol $false |
Включение: | Set-SmbServerConfiguration -EnableSMB2Protocol $true |
Для Windows 7, Windows Server 2008 R2, Windows Vista и Windows Server 2008
Чтобы включить или отключить протоколы SMB на SMB-сервере с Windows 7, Windows Server 2008 R2, Windows Vista или Windows Server 2008, воспользуйтесь Windows PowerShell или редактором реестра.
Способы с использованием PowerShell
Примечание.
Для этого способа требуется PowerShell 2.0 или более поздней версии.
SMB версии 1 на SMB-сервере
Обнаружение:
Get-Item HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters | ForEach-Object {Get-ItemProperty $_.pspath}
Конфигурация по умолчанию = Enabled (раздел реестра не создается), значение SMB1 не возвращается
Отключение:
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters" SMB1 -Type DWORD -Value 0 –Force
Включение:
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters" SMB1 -Type DWORD -Value 1 –Force
Примечание. После внесения этих изменений компьютер необходимо перезагрузить.
Дополнительные сведения см. в статье блога Серверное хранилище Майкрософт.
SMB версий 2 и 3 на SMB-сервере
Обнаружение:
Get-ItemProperty HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters | ForEach-Object {Get-ItemProperty $_.pspath}
Отключение:
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters" SMB2 -Type DWORD -Value 0 –Force
Включение:
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters" SMB2 -Type DWORD -Value 1 –Force
Примечание. После внесения этих изменений компьютер необходимо перезагрузить.
Редактор реестра
Внимание! В статье содержатся сведения об изменении реестра. Перед внесением изменений рекомендуется создать резервную копию реестра. и изучить процедуру его восстановления на случай возникновения проблемы. Дополнительные сведения о создании резервной копии, восстановлении и изменении реестра см. в указанной ниже статье базы знаний Майкрософт.
322756 Как создать резервную копию и восстановить реестр в Windows
Чтобы включить или отключить протокол SMB версии 1 на SMB-сервере, настройте следующий раздел реестра:
Подраздел реестра: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters
Запись реестра: SMB1
REG_DWORD: 0 = отключено
REG_DWORD: 1 = включено
По умолчанию: 1 = включен (не создан раздел реестра)
Чтобы включить или отключить протокол SMB версии 2 на SMB-сервере, настройте следующий раздел реестра:
Подраздел реестра:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters
Запись реестра: SMB2
REG_DWORD: 0 = отключено
REG_DWORD: 1 = включено
По умолчанию: 1 = включен (не создан раздел реестра)
Примечание. После внесения этих изменений компьютер необходимо перезагрузить.
Need help to Enable/Disable SMB v 1.0 in Windows? We can help you.
As part of our Server Management Services, we help our customers with software installations regularly.
Today, let’s see how our Support Engineers Enable/Disable SMB v 1.0 in Windows.
Why is Server Message Block 1.0 (SMBv1) network protocol disabled by default?
The Server Message Block 1.0 (SMBv1) network protocol is disabled by default in Windows Server 2016/2019 and Windows 10.
- If there are no SMB 1.x clients left, we completely disable SMBv1 on all Windows devices.
- By disabling SMB 1.0, we protect Windows computers from a wide range of vulnerabilities in this legacy protocol.
- As a result, the devices will use new, more efficient, secure and functional versions of the SMB protocol when accessing network shares.
On the other hand, old client versions can access network shared folders only by using SMB v1.0 protocol. If there are no such clients in the network, we can completely disable SMB 1.0 on the side of file servers and client desktops.
Enable/Disable SMB v 1.0 in Windows
Before enabling or disabling the SMB 1.0 driver, we make sure that there are no legacy clients that uses it in the network.
Auditing Shared Folder Access via SMB v1.0
To do this, we enable the audit of file server access over SMB v1.0 using the following PowerShell command:
Set-SmbServerConfiguration –AuditSmb1Access $true
Also, after a couple of days, we open the Event Viewer on the server and check the log in Applications and Services -> Microsoft -> Windows -> SMBServer -> Audit. Check if any clients has access to the file server over SMB1.
To display the list of events from this event log we use the command:
Get-WinEvent -LogName Microsoft-Windows-SMBServer/Audit
Here, an event with EventID 3000 from the SMBServer source is seen in the log. The event indicates that the client 192.168.1.10 is trying to access the server using the SMB1 protocol
SMB1 access
Client Address: (IP address)
Guidance:
This event indicates that a client attempted to access the server using SMB1. To stop auditing SMB1 access, use the Windows PowerShell cmdlet Set-SmbServerConfiguration.
We have to find this computer or device on the network and update the OS or firmware to a version that supports newer SMB protocol versions.
Enable/Disable SMB v 1.0 in Windows Server 2016/2019
To enable support for the SMBv1 client protocol in newer versions of Windows Server, we install separate SMB 1.0/CIFS File Sharing Support feature.
It is possible either by using Server Manager or through PowerShell.
Check if SMBv1 is enabled using the PowerShell command:
Get-WindowsFeature | Where-Object {$_.name -eq “FS-SMB1”} | ft Name,Installstate
To install the FS-SMB1 feature, run:
Install-WindowsFeature FS-SMB1
Similarly, to uninstall the SMBv1 client feature (requires a reboot), run:
Uninstall-WindowsFeature –Name FS-SMB1 –Remove
Another PowerShell command that removes the SMB1Protocol feature is:
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -Remove
For the server to handle SMBv1.0 client access, enable SMBv1 support at the SMB file server level in addition to the FS-SMB1 component.
Furthermore, to check, run:
Get-SmbServerConfiguration
“EnableSMB1Protocol: True” means we have access to shared folders on this server using the SMBv1 protocol.
To disable SMBv1 server support in Windows Server, we run the PowerShell command:
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
We make sure using,
Get-SmbServerConfiguration cmdlet
In the same way, to enable SMBv1 support on the server, we run the command:
Set-SmbServerConfiguration -EnableSMB1Protocol $True -Force
On Windows 7/8 and Windows Server 2008 R2/2012, in order to disable the SMB 1.0 client, we need to disable the service and the SMBv1 access driver with the commands:
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled
Disabling SMBv1 Client and Server via Group Policy
In an Active Directory domain environment, we can disable SMBv1 on all servers and computers using Group Policies (GPOs).
Since there is no separate SMB configuration policy in the standard Windows Group Policies, we have to disable it through the registry policy.
- Open the Group Policy Management console (gpmc.msc), create a new GPO (disableSMBv1) and link it to the OU containing the computers on which we want to disable SMB1
- Switch to the policy editing mode. Expand the GPO section Computer Configuration -> Preferences -> Windows Settings -> Registry
- Create a new Registry Item with the following setting:
Action: Update Hive: HKEY_LOCAL_MACHINE Key Path: SYSTEMCurrentControlSetServicesLanmanServerParameters Value name: SMB1 Value type: REG_DWORD Value data: 0
This policy will disable support for the SMBv1 server component through the registry on all computers.
Also, to disable the SMB client on domain computers via GPO, create two additional registry parameters:
- The Start parameter (REG_DWORD type) with value 4 in the registry key HKLMSYSTEMCurrentControlSetservicesmrxsmb10
- The DependOnService parameter (REG_MULTI_SZ type) with the value Bowser, MRxSmb20, NSI (each value on a new line) in the reg key HKLMSYSTEMCurrentControlSetServicesLanmanWorkstation.
It remains to update the Group Policy settings on the clients (gpupdate /force
). After the reboot make sure that the SMBv1 components are completely disabled.
The Security Baseline GPOs from the Microsoft Security Compliance Toolkit have a separate administrative template MS Security Guide (SecGuide.adml
and SecGuide.admx files
) that have separate options for disabling the SMB server and client:
- Configure SMB v1 server
- Configure SMB v1 client driver
[Get our 24/7 support. Our server specialists will keep your servers fast and secure.]
Conclusion
In short, webmasters can easily enable or disable SMB using powershell. Today, we’ve seen by example how Bobcares Support Techs go about to Enable/Disable SMB v 1.0 in Windows.
PREVENT YOUR SERVER FROM CRASHING!
Never again lose customers to poor server speed! Let us help you.
Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.
GET STARTED
var google_conversion_label = «owonCMyG5nEQ0aD71QM»;
The following post shows detailed steps to enable and disable the Server Message Block (SMB) versions SMBv1, SMBv2 & SMBv3 on the SMB server and SMB client. The SMBv2 protocol was introduced in Windows Vista & Windows Server 2008 and the SMBv3 was introduced in Windows 8 and Windows Server 2012.
The below-given steps apply only to the following Windows versions:
• Windows Vista Enterprise
• Windows Vista Business
• Windows Vista Home Basic
• Windows Vista Home Premium
• Windows Vista Ultimate
• Windows 7 Enterprise
• Windows 7 Home Basic
• Windows 7 Home Premium
• Windows 7 Professional
• Windows 7 Ultimate
• Windows Server 2008 Datacenter
• Windows Server 2008 Enterprise
• Windows Server 2008 Standard
• Windows Server 2008 R2 Datacenter
• Windows Server 2008 R2 Enterprise
• Windows Server 2008 R2 Standard
• Windows 8
• Windows 8 Enterprise
• Windows 8 Pro
• Windows Server 2012 Datacenter
• Windows Server 2012 Essentials
• Windows Server 2012 Foundation
• Windows Server 2012 Standard
Important to Note:
It is recommended not to keep the SMBv2 or SMBv3 disabled. It should only be disabled for temporary troubleshooting. Keeping it disabled may deactivate various functions of the windows server. The features which might get deactivated due to disabling SMBv2 & SMBv3 are mentioned below:
Disabling SMBv2 on Windows 7 & Windows Server 2008 R2 will deactivate the below functions:
• Request compounding – it enables users to send multiple SMB 2 requests as a single network request
• Larger reads and writes – better use of faster networks
• Caching of folder and file properties – clients keep local copies of folders and files
• Durable handles – when a temporary disconnection is there, it enables for connection to transparently rejoin to the server
• Improved message signing – HMAC SHA-256 replaces MD5 as hashing algorithm
• Improved scalability for file sharing – increases the no. of users, shares, and open files per server
• Support for symbolic links
• Client oplock leasing model – it automatically limits the volume of data transferred in between the client and server, resulting in improved performance on high-latency networks and increasing the scalability of SMB server
• Large MTU support – for full use of 10-gigabyte (GB) Ethernet
• Enhanced energy efficiency – clients that have open files to a server can sleep
Disabling SMBv3 on Windows 8 & Windows Server 2012 will deactivate the below as well as above mentioned functions:
• Transparent Failover – it enables clients to rejoin the cluster nodes during the maintenance or failover without any interruption
• Scale Out – it allows concurrent access to shared data on all file cluster nodes
• Multichannel – aggregation of network bandwidth and fault tolerance if multiple paths are available between client and server
• SMB Direct – adds RDMA networking support for very high performance, with low latency and low CPU utilization
• Encryption – offers end-to-end encryption and completely defends from snooping on untrustworthy networks
• Directory Leasing – its caching functionality helps in improving the application response times in branch offices
• Performance Optimizations – optimizations for small random read/write I/O
Steps to Enable and Disable SMB protocols on the SMB Server
Microsoft Windows 8 and Windows Server 2012 have introduced a new cmdlet [Set-SMBServerConfiguration] in the Windows PowerShell which allows you to enable and disable the SMBv1, SMBv2 & SMBv3 protocols on the server. When you enable or disable the Server Message Block version 2 (SMBv2) in Windows 8 or in Windows Server 2012, automatically the SMBv3 is enabled or disabled, as the same stack is shared by the SMB protocols. Also, there is no need to restart your system once you run the Set-SMBServerConfiguration cmdlet.
Get the current state of the configuration of the SMB server protocol by running the below command:
Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol
Disables the SMBv1 on the SMB server by running the below command:
Set-SmbServerConfiguration -EnableSMB1Protocol $false
Disables the SMBv2 and SMBv3 on the SMB server by running the below command:
Set-SmbServerConfiguration -EnableSMB2Protocol $false
Enables the SMBv1 on the SMB server by running the below command:
Set-SmbServerConfiguration -EnableSMB1Protocol $true
Enables the SMBv2 and SMBv3 on the SMB server by running the below command:
Set-SmbServerConfiguration -EnableSMB2Protocol $true
Steps to Enable and Disable the SMB protocols on SMB Server running Windows 7, Windows Server 2008 R2, Windows Vista, or Windows Server 2008.
Using the Windows PowerShell 2.0 or later version:
Disables the SMBv1 on the SMB server by running the below command:
Set-ItemProperty -Path “HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters” SMB1 -Value 0 –Force
Disables the SMBv2 and SMBv3 on the SMB server by running the below command:
Set-ItemProperty –Path “HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters” SMB2 –Value 0 –Force
Enables the SMBv1 on the SMB server by running the below command:
Set-ItemProperty –Path “HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters” SMB1 –Value 1 –Force
Enables the SMBv2 and SMBv3 on the SMB server by running the below command:
Set-ItemProperty -Path “HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters” SMB2 -Value 1 -Force
Kindly note that you need to restart your system once you make the changes to the SMB server.
Using Registry Editor:
Important to Note:
• Before making any changes to the registry, make sure to back up it.
Steps to enable and disable the SMBv1 on the SMB server using the registry:
Registry subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Registry entry: SMB1
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled
Steps to enable and disable SMBv2 on the SMB server using the registry:
Registry subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Registry entry: SMB2
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled
Steps to Enable and Disable SMB protocols on the SMB client
The below steps apply to Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012.
Disables the SMBv1 on the SMB client by running the below commands:
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled
Enables the SMBv1 on the SMB client by running the below commands:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb10 start= auto
Disables the SMBv2 and SMBv3 on the SMB client by running the below commands:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
sc.exe config mrxsmb20 start= disabled
Enables the SMBv2 and SMBv3 on the SMB client by running the below commands:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb20 start= auto
Important to Note:
• The commands be run at a raised command prompt.
• The system must be restarted once you make these changes.