В этом руководстве разберем, как включить или отключить сетевой протокол SMBv2 в Windows 10, но для начало разберем моменты, и что это такое.
Server Message Block (SMB) — это сетевой протокол обмена данными, используемый в системах Windows, чтобы приложения могли получить удаленный доступ к файлам, принтерам или ресурсам удаленного сервера.
Почему важен SMBv2? Microsoft отключила в целях безопасности сетевой протокол SMBv1 с версии 1709 windows 10, так как версия SMB 1 устарела и не безопасна. Microsoft рекомендует использовать SMBv2 или выше.
Как включить или отключить сетевой протокол SMBv2 в Windows 10
Если SMBv1 мы можем включить через компоненты windows, то данный метод не подойдет для SMBv2. По этому, разберем как включить или отключить SMBv2 в Windows 10 при помощи PowerShell и реестра.
1. При помощи PoweShell
Запустите PowerShell от имени администратора и введите ниже апплет, который покажет текущее состояние сетевого протокола SMBv2:
Get-SmbServerConfiguration | Select EnableSMB2Protocol
- Если будет показан True, то протокол SMBv2 включен.
- Если False, то протокол SMBv2 отключен.
Если нужно включить сетевой протокол SMB 2, то введите ниже команду:
Set-SmbServerConfiguration -EnableSMB2Protocol $true
Если нужно отключить сетевой протокол SMB 2, то введите:
Set-SmbServerConfiguration -EnableSMB2Protocol $false
2. При помощи реестра
Нажмите Win+R и введите regedit, чтобы открыть редактор реестра. В реестре перейдите по пути:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters
- Если справа нет SMB2, то нажмите правой кнопкой мыши на пустом месте и «Создать» — «Параметр DWORD 32 бита».
- Задайте имя SMB2.
- Дважды щелкните по SMB2 и задайте значение
- 1, чтобы включить протокол SMB2, 0 чтобы отключить.
- Перезагрузите ПК.
Смотрите еще:
- Регулирование скорости передачи файлов по сети в Windows
- Как узнать пропускную скорость сетевой карты на компьютере
- Сетевой адаптер не имеет допустимых параметров настройки IP
- Windows 10 не видит другие компьютеры в сети
- Не найден сетевой путь ошибка 0x80070035
[ Telegram | Поддержать ]
Всем привет! Сегодня столкнулся с такой проблемой. При построении локальной сети с двумя компьютерами первый (Windows 10) наотрез отказывается видеть другой комп (Windows 7). Все настройки я произвел правильно и открыл общий доступ. Но как потом оказалось, вся проблема в специальном сетевом протоколе SMB 1. Дело в том, что это старый протокол, который работает на олдскульных ОС. И он есть в десятке, но на последних обновлениях операционной системы Microsoft решила его отключить (во имя безопасности).
Симптомы достаточно простые. Вы выполнили все нужные настройки, заходите в раздел сети, а там ничего кроме вашего маршрутизатора не отображается. Бывает такое, что компьютер вы видите, и даже можете на него зайти, но вот при попытке открыть расшаренную папку можно лицезреть вот такое вот сообщение:
«Вы не можете подключиться к общей папке, так как она небезопасна. Эта общая папка работает по устаревшему протоколу SMB1, который не безопасен и может подвергнуть вашу систему риску атаки.»
Может быть еще вот такой текст ошибки: «Не удалось выполнить сопоставление сетевого диска из-за следующей ошибки». Ну и дальше все в том же духе.
Кстати, некоторые старые роутеры, также исползают устаревший SMB1 протокол – поэтому если у вас еще наблюдается проблема с доступом к жесткому диску или флешке, которые подключены к роутеру, то дальнейшие инструкции вам также будут полезны. Что мы будем делать? – нам нужно просто включить протокол SMBv1, и проблема будет решена. Поехали!
Содержание
- Включения SMB1 на Windows 10
- Проверка настроек
- Включение SMB2
- Ничего не помогло, папку или компьютер не видно, ничего не работает
- Задать вопрос автору статьи
Открываем меню «Пуск» и в поисковой строке вводим «Включение и отключение компонентов Windows». Можете просто ввести не полное слово «компонент». Вы также можете зайти туда через «Панель управления» (нажимаем кнопки «Win» и «R» – вводим команду: control). Далее заходим в «Программы и компоненты» и слева выбираем тот же самый пункт с отключением и включением компонентов.
Находим раздел с упоминанием нашего любимого протокола и включаем в папке все галочки. В самом конце нажимаем «ОК», чтобы изменения были приняты.
После этого SMB-1 в Windows 10 будет включено, и проблемы с сетью возникнуть не должны. Я бы на всякий случай перезагрузил компьютер. Но если вы все равно не видите какой-то компьютер в сети, или есть проблемы с доступом, смотрим следующую главу.
Проверка настроек
Нам нужно посмотреть настройки общего доступа и есть ли они у вас вообще.
- В «Пуске» нажмите по шестеренке.
- Заходим в раздел «Сеть и Интернет».
- Тут же на первой странице (вкладка «Состояние») откройте «Свойства» того подключения, которое вы используете для коннекта с роутером. Если вы подключены по кабелю, то выбираем «Ethernet», если вы подключены по «Wi-Fi», то выбираема второе подключение. На старых версиях нужно открыть ссылку «Изменить свойства подключения».
- Убедитесь, чтобы тип сетевого профиля был как «Частный». Вернитесь обратно, нажав по стрелки влево.
- Пролистните чуть ниже и откройте «Центр управления сетями…». Этот раздел может также называться как «Параметры общего доступа». Поэтому можете ориентироваться по значку или найти раздел со словами «Общий доступ».
- Слева выбираем третий пункт для изменения параметров.
- Так как мы уже изменили текущий профиль на частный, то открываем его.
- Теперь открываем раздел «Все сети» и включаем сетевое обнаружение для папок. Шифрование должно стоять в нужной позиции, но если это не так, то включите 128-и битное шифрование. Обязательно отключите параметр, который будет запрашивать у вас пароль при заходе в общую папку или при запросе к этому компьютеру.
- В самом конце сохраняем изменения.
Включение SMB2
Сначала давайте проверим статус SMBv2. Для это откройте «PowerShell» с правами админа, нажав ПКМ по кнопке «Пуск».
Введите команду:
Get-SmbServerConfiguration | Select EnableSMB2Protocol
14
Если вы видите значение «True», то значит протокол работает. Если стоит значение «False», то включить параметр можно также с помощью команды:
Set-SmbServerConfiguration -EnableSMB2Protocol $true
ПРИМЕЧАНИЕ! Таким же образом можно включить или выключить SMB1 – просто замените в команде одну цифру (2 на 1).
Далее кликаем по «Y» и на «Enter», чтобы подтвердить свои действия. Если же вы хотите отключить SMB2, то вместо «true» ставим «false». В конце не забываем перезагрузить систему.
Ничего не помогло, папку или компьютер не видно, ничего не работает
Если проблема остается, то есть несколько вариантов – от неправильных сетевых настроек до проблем с некоторыми службами в самой операционной системе. Все решения я уже описал в отдельной статье, и с ней вы можете ознакомиться по этой ссылке. То, что описано там, должно помочь.
Способ 1: Использование PowerShell
В отличие от устаревшего протокола SMB1, активировать который можно с помощью оснастки «Включение и отключение компонентов Windows», для включения версии протокола SMB2 придется использовать консоль.
Читайте также: Включение SMB1 в Windows 10
- Откройте «Windows PowerShell» от имени администратора из контекстного меню кнопки «Пуск».
- Чтобы проверить текущий статус протокола SMB2, выполните команду
Get-SmbServerConfiguration | Select EnableSMB2Protocol
. Если команда вернет значение «true», значит, протокол активен, если «false», значит, его нужно включить. - Для этого тут же в консоли выполните команду
Set-SmbServerConfiguration -EnableSMB2Protocol $true
и нажмите клавишу ввода, чтобы подтвердить действие. - Перезагрузите компьютер.
Способ 2: Применение твика реестра
Если по какой-то причине приведенный выше способ вам не подходит, воспользуйтесь встроенным в Windows 10 редактором ключей реестра.
- Чтобы его запустить, нажмите на клавиатуре Win + R, введите в открывшееся диалоговое окошко команду
regedit
и подтвердите ввод. - В левой колонке редактора разверните узел
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters
и найдите справа параметр с именем «SMB2». - Если параметр отсутствует, создайте его вручную. Для этого кликните правой кнопкой мыши по пустой области правой колонки и выберите в контекстном меню опцию «Создать» > «Параметр DWORD (32 бита)». Дайте созданному параметру имя «SMB2».
- Откройте окошко редактирования значения параметра двойным кликом и задайте в качестве значения «1».
- Если параметр уже существует, измените его текущее значение на «1» («0» – отключено, «1» – включено).
- Закройте редактор реестра и перезагрузите компьютер.
В результате применения этого несложного твика реестра протокол SMB2 будет задействован.
Еще статьи по данной теме:
Помогла ли Вам статья?
Содержание
- 1 Включаем поддержку протокола SMB1 в Windows 10
- 2 Проверка параметров общего доступа в Windows 10
- 3 Проверяем настройки общего доступа
- 4 Антивирус или брандмауэр может блокировать сетевые устройства
- 5 Рабочая группа
- 6 Проблема с доступом к общей сетевой папке по SMB1 в Windows 10 (мое решение)
Самая популярная проблема при настройке локальной сети – когда компьютер не видит другие компьютеры, общие папки, сетевые накопители и т. д. Эта проблема чаще всего решается настройкой общего доступа и отключением антивируса (брандмауэра), но не всегда. В этой статье я хочу рассказать о нескольких решениях данной проблемы в Windows 10, которые я уже не раз применял на практике. Если у вас компьютер с установленной Windows 10 не видит компьютеры и папки в локальной сети, то первым делом нужно проверить, включена ли поддержка SMB1, так как после одного из обновлений этот протокол отключили. Как бы для безопасности. И это основная причина, по которой на вкладке «Сеть» в проводнике а не появляются сетевые устройства. Как правило, это более старые устройства, которые используют этот самый протокол SMB1, который в десятке отключен.
Открываем мы значит вкладку «Сеть» в проводнике Windows 10, где должны отображаться все сетевые устройства. Но видим там в лучшем случае свой Wi-Fi роутер, свой компьютер и может еще какие-то устройства мультимедиа. Другие компьютеры в локальной сети и сетевые папки не отображаются. А с других компьютеров они обычно видны и можно на них зайти. В том числе на этот компьютер с установленной Windows 10.
Как правило, все компьютеры подключены через один маршрутизтор. И многие почему-то думают, что локальная сеть не работает именно из-за настроек маршрутизатора. Но по своему опыту могу сказать, что это не так. Если на маршрутизаторе вы не настраивали какие-то особые функции и ничего не отключали, то все подключенные к нему устройства автоматически находятся в одной локальной сети.
Отдельно хочу рассказать об общем доступе к USB-накопителям через роутер. Если вы подключили к роутеру в USB-порт флешку, или внешний жесткий диск и Windows 10 не видит сетевой накопитель на вкладке «Сеть», то проблема так же может быть в отключенном протоколе SMB1. Так как роутер использует этот протокол для общего доступа к накопителю (сетевой папке).
Включаем поддержку протокола SMB1 в Windows 10
Откройте Пуск (или нажмите на кнопку поиска) и введите «компонентов». Откройте «Включение или отключение компонентов Windows». Или можно открыть это окно через «Панель управления» – «Программы и компоненты» и слева переходим в «Включение или отключение компонентов Windows».
Открываем пункт «Поддержка общего доступа к файлам SMB 1.0/CIFS». Нужно поставить галочку возле «Клиент SMB 1.0/CIFS» и нажать «Ok».
Поддержка старого протокола SMB 1.0 в Windows 10 включена. Теперь система должна видеть все сетевые папки, доступ к которым осуществляется через SMB 1. Можете еще выполнить перезагрузку компьютера.
Возможно, конечно, на вашем компьютере отключен, или неправильно настроен общий доступ. Из-за чего Windows 10 не может обнаружить другие компьютеры и накопители в локальной сети. Сейчас покажу, как проверить эти настройки.
В Windows 10 (версия 1803) домашняя группа была удалена. Достаточно просто настроить общий доступ к принтерам и файлам.
Открываем меню «Пуск» (или нажав на кнопку поиска) и пишем «общего доступа». Открываем «Управление расширенными параметрами общего доступа».
Или можно открыть это окно в параметрах «Сеть и Интернет» – «Параметры общего доступа».
Дальше для текущего профиля (скорее всего это будет частная сеть) установите переключатель возле «Включить сетевое обнаружение» и «Включить общий доступ к файлам и принтерам». А так же поставьте галочку возле «Включить автоматическую настройку на сетевых устройствах».
Нажмите на кнопку «Сохранить изменения».
Если это не поможет – попробуйте установить такие настройки для вкладки «Все сети».
Но не рекомендую составлять такие настройки, особенно если вы часто подключаетесь к общественным Wi-Fi сетям.
Еще несколько решений:
- Убедитесь, что ваш компьютер и другие компьютеры с которыми вы хотите настроить локальную сеть подключены через один роутер.
- Отключите антивирус (встроенный в нем брандмауэр) и защитник Windows. Если это не решит проблему – включите обратно.
- Если ваш компьютер с Windows 10 (который не видит общие папки и компьютеры в локальной сети) подключен к роутеру по Wi-Fi, то присвойте этой беспроводной сети статус частной (домашней).
- Убедитесь, что на других компьютерах в локальной сети правильно заданы настройки общего доступа. Или на роутере настроен общий доступ к подключенному USB-накопителю.
Буду рад видеть ваши комментарии с другими решениями и вопросами по теме данной статьи!
Привет! Для тех кто не в теме, начну из далека. На компьютерах и ноутбуках с установленной Windows в проводнике есть отдельная вкладка «Сеть». На этой вкладке отображаются устройства из сетевого окружения. То есть, открыв вкладку «Сеть» мы там можем наблюдать компьютеры, сетевые хранилища (NAS), устройства мультимедиа (DLNA), флешки и внешние диски, которые подключены к роутеру и к которым настроен общий доступ. Проще говоря, те устройства, которые подключены через один роутер (находятся в одной сети) и на которых включена функция сетевого обнаружения (устройства, которые могут быть обнаружены в локальной сети). Там так же может отображаться наш маршрутизатор (раздел «Сетевая инфраструктура») и другие устройства.
Сейчас поясню что и как, и почему я вообще решил написать эту статью. У меня роутер ASUS, к которому я подключил USB флешку, и настроил общий доступ к этой флешке для всех устройств в сети. И что вы думаете, в разделе «Сеть» на всех компьютерах появился этот сетевой накопитель (он там отображается как «Компьютер»), а на моем компьютере он не отображался. То есть, мой компьютер не видел ни флешку подключенную к роутеру, ни другие компьютеры в этой сети. Зато отображался DLNA-сервер запущен на том же роутере. Но это ничего не меняет, так как мне нужен обычный сетевой доступ к накопителю.
Так же я не мог получить доступ к флешке, когда набирал ее адрес //192.168.1.1 в проводнике. Сразу этот адрес открывался через браузере. И мне не удалось подключить этот накопитель как сетевой диск. Его просто не было в списке доступных устройств в сетевом окружении.
Такая проблема, когда Windows 7, Windows 8, или Windows 10 не видит сетевые устройства – не редкость. Это не обязательно должна быть флешка, или внешний HDD, который вы подключили к своему маршрутизатору, как в моем случае. Чаще всего настраивают общий доступ между компьютерами в локальной сети. И точно так же сталкиваются с проблемой, когда компьютеры подключены к одной сети (к одному роутеру), настройки общего доступа выставлены правильно, а на вкладке «Сеть» пусто. Или отображается только маршрутизатор и ваш компьютер.
Так как причин и соответственно решений может быть много, то я наверное начну с самых простых (которые мне не помогли) и в конце этой статьи поделюсь решением, которое помогло в моем случае. В итоге мой ноутбук все таки увидел все устройства в сети. В том числе сетевой накопитель и другой компьютер, который так же подключен к этой сети.
Но это не значит, что у вас такой же случай. Поэтому, советую проверить все настройки по порядку.
Проверяем настройки общего доступа
Мы будем рассматривать два случая:
- Когда компьютеры не видят друг друга в локальной сети.
- Общий доступ к сетевому накопителю. Это у нас может быть флешка, или жесткий диск который подключен к роутеру, или отдельный накопитель (он же NAS).
Первый случай
Чтобы компьютеры могли видеть друг друга и отображаться в проводнике в разделе «Сеть», они должны быть подключены через один маршрутизатор. Или соединены напрямую (кабелем, или по Wi-Fi). Проще говоря, они должны находится в одной локальной сети.
Дальше, на всех компьютерах (не знаю, сколько их там у вас), желательно присвоить статус сети «Домашняя» (частная). Как это сделать в Windows 10, я писал в статье домашняя (частная) и общественная (общедоступная) сеть Windows 10. В Windows 7 достаточно зайти в «Центр управления сетями и общим доступом» и сменить там статус текущего подключения.
Если после этого по прежнему компьютер не обнаруживает другие компьютеры (или наоборот), то давайте еще проверим параметры общего доступа.
Для этого, в окне «Центр управления сетями и общим доступом» (если не знаете как открыть его в Windows 10, то смотрите эту статью) нажимаем на пункт «Изменить дополнительные параметры общего доступа».
И для текущего профиля (обычно это «Частная») выставляем параметры как на скриншоте ниже.
Делаем это на всех компьютерах в локальной сети.
Статьи по этой теме:
Не путайте настройки общего доступа с настройками FTP. Настройки FTP-сервера на роутере в данном случае не при чем.
Ну и если другие устройства видят сетевой накопитель и имеют к нему доступ, а на каком-то конкретном компьютере доступа к нему нет, то значит проблема не на стороне роутера. Перебирайте настройки «проблемного» ПК по этой статье.
Антивирус или брандмауэр может блокировать сетевые устройства
Если вашему антивирусу, или брандмауэру (фаерволу), который установлен на вашем компьютере что-то не понравилось, то он легко может сделать так, что ни вы не сможете видеть другие устройства в сетевом окружении, ни вас никто не сможет обнаружить.
Правда, у меня после отключения встроенного в антивирусе фаервола проблема не была решена (значит, проблема скорее всего не в нем), но все ровно мне кажется, что в моем случае без участия антивируса не обошлось.
Поэтому, попробуйте на время полностью остановить работу антивируса, или хотя бы отключить встроенный в него фаервол (межсетевой экран). В NOD 32 это делается вот так:
Для проверки это нужно сделать на всех компьютерах, которые будут участвовать в локальной сети.
Вполне возможно, что у вас установлены еще какие-то программы, которые могут мониторить сеть и управлять сетевыми соединениями.
Если окажется, что проблема в антивирусе, то нужно добавить свою сеть в исключения. Запретить фаерволу блокировать саму сеть, или сетевые устройства.
Если у вас нет антивируса, то можно поэкспериментировать с отключением/включением брандмауэра встроенного в Windows.
Рабочая группа
Рабочая группа должна быть одинаковой на всех устройствах. Как правило, так и есть. Но желательно проверить. Для этого откройте свойства компьютера «Система» и перейдите в «Дополнительные параметры системы».
Там будет указана «Рабочая группа». Чтобы изменить ее, нужно нажать на кнопку «Изменить».
Еще раз: имя рабочей группы должно быть одинаковым на всех компьютерах.
Если у вас проблема с доступом к сетевому накопителю (к флешке через маршрутизатор), то в настройках общего доступа на том же роутере ASUS так же указана рабочая группа. Можете посмотреть на скриншоте выше в статье. Она должна быть такой же, как на компьютере.
Проблема с доступом к общей сетевой папке по SMB1 в Windows 10 (мое решение)
Вернемся конкретно к моей проблеме. Все что я описал выше, проверил и перепроверил уже по 10 раз. Пару раз сделал сброс сетевых настроек, но Windows 10 так и не видела другие компьютеры в сети и что самое главное – в проводнике так и не появлялась общая папка в виде флеши подключенной к роутеру. А на других устройствах в сети все определялось без проблем. В том числе мой ноутбук.
Где-то я прочитал, что можно попробовать открыть общую папку через окно «Выполнить». Нажал сочетание клавиш Win + R, ввел адрес сетевой папки //192.168.1.1 (он же адрес роутера).
Доступ к накопителю я не получил, но появилась интересная ошибка:
Вы не можете подключиться к общей папке, так как она небезопасна. Эта общая папка работает по устаревшему протоколу SMB1, который небезопасен и может подвергнуть вашу систему риску атаки.
Вашей системе необходимо использовать SMB2 или более позднюю версию.
И ссылка, которую нужно вручную набирать 🙂
Вот она:
Это уже интересно. Хоть что-то.
SMB (Server Message Block) – сетевой протокол, который отвечает за общий доступ к файлам, принтерам и другим сетевым устройствам.
Начал искать. И оказывается, что в Windows 10 отказались от протокола SMB1. Из-за безопасности. А установленный на моем роутере пакет программ Samba походу работает по протоколу SMB1. Поэтому Windows 10 его не видит. Но другие компьютеры, которые так же работают на Windows 10 у меня так же не отображались на вкладке «Сеть».
Так как обновить протокол к SMB2 в настройках роутера я не мог, то решил что нужно как-то включить поддержку SMB1 в Windows 10. И как оказалось, это без проблем можно сделать. В итоге, после подключения компонента «Клиент SMB 1.0/CIFS» у меня все заработало. Система увидела общие папки на компьютерах в сети и сетевую папку настроенную на самом роутере.
Как включить SMB1 в Windows 10?
Через поиск найдите и откройте старую «Панель управления».
Переключитесь на «Мелкие значки» и откройте «Программы и компоненты».
Открываем «Включение или отключение компонентов Windows». Находим пункт «Поддержка общего доступа к файлам SMB 1.0/CIFS». Открываем его и ставим галочку возле «Клиент SMB 1.0/CIFS». Нажимаем Ok.
Если компьютер выдаст запрос на перезагрузку, то перезагрузите его. Если окна с предложением не будет, то выполните перезагрузку вручную.
После перезагрузки, на вкладке «Сеть» – «Компьютер» должны появится все доступные устройства в вашей сети.
Буду рад, если эта статья кому-то пригодится и поможет решить возникшую проблему. Не забудьте написать в комментариях о результатах. Или задать вопрос, куда же без них 🙂
340
СергейРешение проблем и ошибок
Скорее всего дело в том, что в рамках постепенного отключения старых небезопасных версий протокола SMB помимо полного отключения SMB1, по умолчанию стала блокировать также доступ под гостевой учетной записью на удаленный сервер по протоколу SMBv2.
При попытке такого подключения как раз и появляется такая ошибка. А в журнале клиента SMB (Microsoft-Windows-SMBClient) при этом фиксируется: Rejected an insecure guest logon.
Именно по этому при доступе к SMBv2 сетевым папкам под гостевой учетной (в большинстве случаев на NAS включают именно гостевой доступ) или к шарам на старых версия ОС (согласно опубликованной ранее таблице поддерживаемых версий SMB в различных версиях Windows, SMB 2.0 используется в Windows Server 2008 и Windows Vista SP1, а SMB 2.1 в Windows Server 2008 R2 и Windows 7).
Чтобы включить доступ под гостевой учетной записью, нужно с помощью редактора групповых политик (gpedit.msc) в разделе:
Конфигурация компьютера ->Административные шаблоны -> Сеть->Рабочая станция Lanman включить политику Включить
небезопасные гостевые входы.
Либо создать следующий ключ реестра:
HKLMSYSTEMCurrentControlSetServicesLanmanWorkstationParameters “AllowInsecureGuestAuth”=dword:1
Если данное решение не помогло, возможно ваш NAS (или другое удаленное устройство, которое предоставляет доступ к сетевым папкам по SMB), поддерживают только SMBv1. Попробуйте включить этот протокол на клиенте (Windows Features -> SMB 1.0/CIFS File Sharing Support -> SMB 1.0/CIFS Client).
Однако, вы должны понимать, что использование данного обходного решения не рекомендовано, т.к. подвергает вашу систему опасности.
Используемые источники:
- https://prostocomp.net/sistema/windows-10-ne-vidit-kompyutery-v-seti-i-obshhie-papki-pochemu-i-chto-delat.html
- https://help-wifi.com/reshenie-problem-i-oshibok/ne-otobrazhayutsya-obshhie-papki-setevye-kompyutery-fleshki-diski-na-vkladke-set-provodnika-windows/
- http://it-chainik.ru/ne-otkryvayutsya-obshhie-setevye-smb-papki-v-windows-10/
Сетевой протокол 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) нужно использовать службы обнаружения (линк).
Блок сообщений сервера или 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, 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:SYSTEMCurrentControlSetServicesLanmanServerParameters» SMB1 -Type DWORD -Value 0 -Force
Чтобы отключить протоколы SMB версии 2 и 3 на SMB-сервере, выполните следующий командлет:
Set-ItemProperty -Path «HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters» SMB2 -Type DWORD -Value 0 -Force
Чтобы включить протокол SMB версии 1 на SMB-сервере, выполните следующий командлет:
Set-ItemProperty -Path «HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters» SMB1 -Type DWORD -Value 1 -Force
Чтобы включить протоколы SMB версии 2 и 3 на SMB-сервере, выполните следующий командлет:
Set-ItemProperty -Path «HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters» 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
Внимание!
Обязательно соблюдайте пробел после знака равно (=). Для удобства, просто скопируйте и вставьте данные команды в командную строку.
Перед любыми изменениями в системе, создавайте резервные копии реестра, образ системы и создавайте контрольные точки восстановления.