Сетевой протокол 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) нужно использовать службы обнаружения (линк).
SMB2 and/or SMB3 protocols are enabled by default in Windows. If ever needed, here are the steps to disable SMB2 and SMB3 in Windows.
Recently, Microsoft has to issue an emergency patch to wormable vulnerability in the SMB3 protocol. Essentially, this vulnerability lets the attacker execute malicious code on the target machine and take control of it. Being a wormable vulnerability, it can spread to other systems on the local network. If you haven’t yet installed the KB4551762 update, I recommend you do so as soon as possible to avoid any unnecessary issues.
If you haven’t installed the update yet, you can try disabling SMB3 in Windows 10 as a precaution. Here’s how.
Things You Should Know Before Hand
As a general rule, you should not disable SMB2 or SMB3 protocols. However, if you are unable to install the security patch or to troubleshoot various issues, you can temporarily disable SMB3 or SMB2 protocol.
SMB3 protocol serves an important function in several different features in Windows 10, 8, and 7. For example, if you disable SMB3 in Windows 10, you might face problems with the following Windows functionality.
- Folder and file properties caching
- Durable handles
- message signing
- scalable file sharing
- Symbolic links
- Large MTU support
- Transparent failover
- Encryption
- SMB direct
- and more…
Simply put, only follow the below steps and disable SMB3 protocol if you know what you are doing and is absolutely necessary. If you are interested, here’s a great document from Microsoft on the overview of SMB3.
Steps to Disable SMB3 or SMB2 Protocol
Note: SMB2 and SMB3 are linked together. So, enabling or disabling SMB2 will do that same for SMB3.
To disable SMB 3, you can either use the PowerShell or Command Prompt. I will show both methods. Follow the one you are comfortable with.
via PowerShell (Recommended)
1. Open PowerShell as admin. You can do that by searching for “PowerShell” in the start menu and selecting the “Run as administrator” option from the right-click menu.
2. Next, verify that SMB3 is enabled by executing the below command. If the protocol is enabled, you should see “true” in the response.
Get-SmbServerConfiguration | Select EnableSMB2Protocol
3. To disable SMB3, execute this command.
Set-SmbServerConfiguration -EnableSMB2Protocol $false
4. PowerShell will ask for your confirmation, type “Y” or “A” and press Enter to confirm.
5. Once disabled, you can verify it by executing the first command. If the protocol is disabled, you should see “false“.
6. Finally, reboot Windows to apply the changes.
To re-enable SMB3, you can use the below command.
Set-SmbServerConfiguration -EnableSMB2Protocol $true
via Command Prompt
As an alternative, you can also use the Command Prompt to disable SMB3. The only problem is that it is not that intuitive as the PowerShell method. But, it works nonetheless.
1. Search for “cmd” in the start menu, right-click on “Command Prompt” result and select “Run as administrator“.
2. In the command prompt window, execute the below commands one of the other.
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
next
sc.exe config mrxsmb20 start= disabled
3. Once that is done, reboot Windows to apply changes. After rebooting, the SMB3 protocol will be disabled.
To enable the SMB3 protocol again, open Command Prompt as admin execute the below commands one after the other.
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
next
sc.exe config mrxsmb20 start= auto
Wrapping Up
As you can see, it is pretty easy to disable SMB3 and SMB2 protocols in Windows 10. Like said before, don’t disable the SMB3 protocol permanently. Do this for troubleshooting purposes and only if you know what you are doing and understand the consequences.
I hope that helps. If you are stuck or need some help, comment below and I will try to help as much as possible.
Данный совет, применим исключительно для ОС Windows 10, Windows 7 и Windows 2008 R2.
Чтобы полностью
удалить драйвер, обрабатывающий доступ клиентов по протоколу SMB v1, выполните следующую команду через PowerShell, от имени администратора:
Disable-WindowsOptionalFeature -Online -FeatureName
SMB1Protocol -Remove
и перезагрузите
систему.
Чтобы убедиться,
что поддержка протокола SMB1
полностью отключена, в командной строке от имени администратора, введите
следующую команду:
Get-WindowsOptionalFeature –Online -FeatureName SMB1Protocol
Для отключения SMB версии 2 и 3 выполните следующий код:
Set-SmbServerConfiguration -EnableSMB2Protocol $false
Если захотите включить обратно, то поменяйте $false на $true.
Для Windows 7 и Windows 2008 R2, выполните следующее:
Чтобы отключить протокол SMB версии 1 на SMB-сервере, выполните следующий командлет:
Set-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters» SMB1 -Type DWORD -Value 0 -Force
Чтобы отключить протоколы SMB версии 2 и 3 на SMB-сервере, выполните следующий командлет:
Set-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters» SMB2 -Type DWORD -Value 0 -Force
Чтобы включить протокол SMB версии 1 на SMB-сервере, выполните следующий командлет:
Set-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters» SMB1 -Type DWORD -Value 1 -Force
Чтобы включить протоколы SMB версии 2 и 3 на SMB-сервере, выполните следующий командлет:
Set-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters» SMB2 -Type DWORD -Value 1 -Force
Также, чтобы отключить поддержку SMB 2.0 на клиентской ОС, можно в командной строке от администратора, выполнить нижеприведённые две команды. Актуально как для ОС Windows 7 так и ОС Windows 10.
- sc config lanmanworkstation depend= bowser/mrxsmb10/nsi
- sc config mrxsmb20 start= disabled
Внимание!
Обязательно соблюдайте пробел после знака равно (=). Для удобства, просто скопируйте и вставьте данные команды в командную строку.
Перед любыми изменениями в системе, создавайте резервные копии реестра, образ системы и создавайте контрольные точки восстановления.
Блок сообщений сервера или SMB – это протокол, используемый для обмена файлами. Он обеспечивает операции Чтение и запись на сетевых устройствах. Это широко используется, когда пользователь обращается к серверу на базе Linux. Последней версией этого протокола является SMB2 , которая заменяет SMB 1. SMB 2 содержит больше исправлений уязвимостей, к которым был склонен SMB 1. SMB 1 был уязвим, являясь шлюзом для различных современных вымогателей, и поэтому по умолчанию был отключен Microsoft, начиная с Windows 10 v1709.
Вы можете увидеть следующую ошибку при попытке поделиться:
Для этого общего ресурса требуется устаревший протокол SMB1, который небезопасен и может подвергнуть вашу систему атаке. Ваша система требует SMB2 или выше.
Содержание
- Ваша система требует SMB2 или выше
- Как проверить, можно ли установить версию SMB 2.0 на Windows 10?
- Как включить протокол SMB 2 в Windows 10
Ваша система требует SMB2 или выше
Мы рассмотрим все аспекты этого процесса. Итак, начнем.
Как проверить, можно ли установить версию SMB 2.0 на Windows 10?
Прежде всего, нажмите комбинацию кнопок WINKEY + X .
Затем нажмите Windows PowerShell (Admin).
Введите следующее и нажмите Enter:
Get-SmbServerConfiguration | Выберите EnableSMB2Protocol
Теперь он покажет вам сообщение. Если в приведенном ниже фрагменте написано true , значит, ваш компьютер поддерживает протокол SMB 2.
Иначе, вы не можете запустить протокол SMB 2 на вашем ПК.
Читать . Как проверить версию SMB в Windows.
Как включить протокол SMB 2 в Windows 10
Для этого вам нужно сначала включить протокол SMB 1, а затем обновить его до SMB 2.
Начните с нажатия комбинаций кнопок WINKEY + I , чтобы запустить приложение настроек Windows 10.
Теперь в области поиска введите Панель управления и выберите соответствующий результат . Откроется окно панели управления на вашем компьютере.
Нажмите на Программы. Затем в расширенном меню Программы и компоненты выберите Включить или отключить функции Windows.
Функции Windows теперь появятся.
Убедитесь, что вы выбрали SMB 1.0/CIFS File Sharing Support. Теперь нажмите ОК.
Позвольте ему установить все необходимые файлы и перезагрузить ваш компьютер, чтобы изменения вступили в силу.
Это включит поддержку SMB 2 на вашем компьютере.
Кроме того, вы также можете ввести следующую команду в окне Windows PowerShell с правами администратора на уровне, чтобы включить ее,
Set-SmbServerConfiguration –EnableSMB2Protocol $ true
Это оно!
Связанное чтение . Как отключить SMB 1 на компьютере с Windows 10.
В Windows 10 версии 1709, Windows 10 версии 1903, Windows Server версии 1709, Windows Server версии 1903 и более поздних версиях Windows клиент SMB2 больше не поддерживает следующие действия:
- Доступ гостевой учетной записи к удаленному серверу
- Переключение на гостевую учетную запись после ввода недопустимых учетных данных
SMBv2 в этих версиях Windows ведет себя следующим образом:
- Windows 10 Корпоративная и Windows 10 для образовательных учреждений больше не позволяют пользователю подключаться к удаленному общему ресурсу с помощью учетных данных гостя, даже если удаленный сервер запрашивает учетные данные гостя.
- Windows Server 2016 Datacenter и Standard Edition больше не позволяют пользователю подключаться к удаленному общему ресурсу с помощью учетных данных гостя, даже если удаленный сервер запрашивает учетные данные гостей.
- Версии Windows 10 Home и Professional не изменились по сравнению с предыдущим поведением по умолчанию.
С данной проблемой можно столкнуться при использовании старых версий NAS или при доступе к сетевым папкам на старых версиях Windows7/2008 R2 или Windows XP /2003 при использовании анонимного гостевого доступа.
Изменения при использовании протокола SMB связаны с тем, что при доступе под гостевым аккаунтом по протоколу SMBv1/v2 не применяются такие методы защиты трафика, как SMB подписывание и шифрование, что делает вашу сессию уязвимой против MiTM (man-in-the-middle) атак.
Решение со стороны сервера SMB
В данном случае Microsoft рекомендует изменить настройки на удалённом компьютере или NAS устройстве, которое раздаёт сетевые папки. Рекомендуется использовать сетевой пртокол SMBv3, в случае если устройство поддерживает только SMBv2, настроить доступ с аутентификацией.
- NAS устройство — отключите гостевой доступ в настройках устройства
- Samba сервер на Linux — в конфигурационном файле smb.config в разделе [global] необходимо добавить строку
map to guest = never
в разделе с описанием сетевой папки запретить анонимный доступguest ok = no
- Windows — включаем общий доступ к сетевым папкам и принтерам по паролю. В разделе Control Panel\ All Control Panel Items\ Network and Sharing Center\ Advanced sharing settings, для All Networks в разделе Password Protected Sharing (Общий доступ с парольной защитой) изменить значение на «Turn on password protected sharing» (Включить общий доступ с парольной защитой). При этом анонимный (гостевой) доступ к папкам будет отключен. Будет необходимо создать локальных пользователей, предоставить права к сетевым папкам и принтерам и использовать данные учётные записи для подключения к общим папкам.
Решение со стороны клиента SMB (не рекомендуется к использованию, только как временное решение)
Для разрешения гостевого доступа с Вашего компьютера необходимо выполнить следующее: открыть редактор групповых политик gpedit.msc, перейти в следующий раздел Computer Configuration ->Administrative templates -> Network -> Lanman Workstation (Конфигурация компьютера -> Административные шаблоны -> Сеть -> Рабочая станция Lanman), включите политику Enable insecure guest logons (Включить небезопасные гостевые входы)
При использовании Windows 10 Home (в нем нет редактора GPO) для внесения изменений необходимо произвести редактирование реестра:
HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters “AllowInsecureGuestAuth”=dword:1
или через команду:
reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters /v AllowInsecureGuestAuth /t reg_dword /d 00000001 /f
Использование протокола старше SMBv2
Клиент SMBv1 по умолчанию отключен начиная с Windows 10 1709. В сетевом окружении данные сетевые папки \сетевые устройства неотображаются и при открытии по UNC пути появляться ошибка 0x80070035. Данная ошибка чётко указывает, что сетевая папка поддерживает только SMBv1 протокол доступа. В этом случае нужно перенастроить удаленное SMB устройство для поддержки как минимум SMBv2 (правильный и безопасный путь).
Если сетевые папки раздает Samba на Linux, вы можете указать минимально поддерживаемую версию SMB в файле smb.conf так:
[global] server min protocol = SMB2_10 client max protocol = SMB3 client min protocol = SMB2_10 encrypt passwords = true restrict anonymous = 2
В Windows 7/Windows Server 2008 R2 вы можете отключить SMBv1 и разрешить SMBv2 так:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 –Force
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 –Force
Если ваше устройство (NAS, компьютер под управлением Windows XP, Windows Server 2003), поддерживает только протокол SMBv1, в Windows 10 Вы можете включить отдельный компонент SMB1Protocol-Client. (Крайне не рекомендуется)
Запустите консоль PowerShell и проверьте, что SMB1Protocol-Client отключен (State: Disabled
):
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client
Включите поддержку протокола SMBv1 (потребуется перезагрузка):
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client
Также вы можете включить/отключить дополнительные компоненты Windows 10 (в том числе SMBv1) из меню optionalfeatures.exe
-> SMB 1.0/CIFS File Sharing Support
В Windows 10 1709 и выше клиент SMBv1 автоматически удаляется, если он не использовался более 15 дней (отвечает компонент SMB 1.0/CIFS Automatic Removal).