Как обнаруживать, включать и отключать SMBv1, SMBv2 и SMBv3 в Windows

Область применения: Windows Server 2022, Windows 10, Windows 8.1, Windows 8, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012

В этой статье описывается, как включить и отключить блок сообщений сервера (SMB) версии 1 (SMBv1), SMB версии 2 (SMBv2) и SMB версии 3 (SMBv3) на клиентских и серверных компонентах SMB.

При отключении или удалении SMBv1 могут возникнуть некоторые проблемы совместимости со старыми компьютерами или программным обеспечением, SMBv1 имеет значительные уязвимости системы безопасности, и мы настоятельно рекомендуем не использовать его.

Отключение SMBv2 или SMBv3 для устранения неполадок

Рекомендуется включить SMBv2 и SMBv3, но может оказаться полезным отключить его временно для устранения неполадок. Дополнительные сведения см. в разделе "Обнаружение состояния, включение и отключение протоколов SMB" на сервере SMB.

В Windows 10 Windows 8.1 Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 и Windows Server 2012 отключение SMBv3 отключает следующие функции:

  • Прозрачная отработка отказа — клиенты повторно подключались к узлам кластера во время обслуживания или отработки отказа
  • Scale Out — одновременный доступ к общим данным на всех узлах файлового кластера
  • Multichannel — агрегирование пропускной способности сети и отказоустойчивости при наличии нескольких путей между клиентом и сервером
  • SMB Direct — добавляет поддержку сети RDMA для обеспечения высокой производительности, с низкой задержкой и низким потреблением ЦП
  • Шифрование — обеспечивает сквозное шифрование и защищает от перехвата в ненадежных сетях
  • Аренда каталогов — улучшение времени отклика приложений в филиалах с помощью кэширования
  • Оптимизация производительности — оптимизация для небольших случайных операций чтения и записи ввода-вывода

В Windows 7 и Windows Server 2008 R2 отключение SMBv2 деактивирует следующие функции:

  • Соединение запросов — позволяет отправлять несколько запросов SMBv2 в виде одного сетевого запроса.
  • Более крупные операции чтения и записи — лучшее использование более быстрых сетей
  • Кэширование свойств папок и файлов — клиенты хранят локальные копии папок и файлов.
  • Устойчивые дескрипторы — разрешить прозрачное повторное подключение к серверу при временном отключении
  • Улучшенное подписывание сообщений — HMAC SHA-256 заменяет MD5 в качестве алгоритма хэширования
  • Улучшенная масштабируемость для общего доступа к файлам — количество пользователей, общих папок и открытых файлов на сервер значительно увеличилось
  • Поддержка символьных ссылок
  • Модель аренды oplock клиента — ограничивает данные, передаваемые между клиентом и сервером, повышая производительность в сетях с высокой задержкой и увеличивая масштабируемость сервера SMB.
  • Поддержка больших MTU — для полного использования 10 Гигабит Ethernet (GbE)
  • Улучшенная энергоэффективность — клиенты, имеющие открытые файлы на сервере, могут спянуть

Протокол SMBv2 появился в Windows Vista и Windows Server 2008, в то время как протокол SMBv3 появился в Windows 8 и Windows Server 2012. Дополнительные сведения о возможностях SMBv2 и SMBv3 см. в следующих статьях:

Удаление SMBv1

Вот как удалить SMBv1 в Windows 10, Windows 8.1, Windows Server 2019, Windows Server 2016 и Windows 2012 R2.

Методы PowerShell

Ниже приведены действия по обнаружению, отключению и включению клиента и сервера SMBv1 с помощью команд PowerShell.

Примечание

Компьютер перезагрузится после выполнения команд PowerShell, чтобы отключить или включить SMBv1.

  • Обнаружить:

    Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Отключите:

    Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Включите параметр

    Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    

Windows Server 2012 Windows Server 2012 R2, Windows Server 2016, Windows Server 2019: метод диспетчер сервера

Server Manager - Dashboard method

Чтобы удалить SMBv1 с сервера Windows, выполните приведенные далее действия.

  1. На панели мониторинга диспетчер сервера сервера, на котором требуется удалить SMBv1, в разделе "Настройка этого локального сервера" выберите "Добавить роли и компоненты".
  2. На странице "Перед началом работы " выберите "Запустить мастер удаления ролей и компонентов", а затем на следующей странице нажмите кнопку "Далее".
  3. На странице "Выбор целевого сервера " в пуле серверов убедитесь, что выбран сервер, из которого требуется удалить эту функцию, и нажмите кнопку "Далее".
  4. На странице "Удаление ролей сервера " нажмите кнопку "Далее".
  5. На странице "Удалить компоненты " снимите флажок для поддержки общего доступа к файлам SMB 1.0/CIFS и нажмите кнопку "Далее".
  6. На странице "Подтверждение удаления" убедитесь, что эта функция указана, а затем нажмите кнопку "Удалить".

Windows 8.1 и Windows 10: метод добавления или удаления программ

Add-Remove Programs client method

Чтобы отключить SMBv1 в Windows 8.1 и Windows 10, выполните приведенные ниже действия.

  1. Откройте Панель управления, выберите раздел Программы и компоненты.
  2. В разделе панель управления "Главная" выберите "Включить или отключить функции Windows", чтобы открыть поле "Компоненты Windows".
  3. В поле Windows Функции прокрутите список вниз, снимите флажок для поддержки общего доступа к файлам SMB 1.0/CIFS и нажмите кнопку "ОК".
  4. После Windows применения изменения на странице подтверждения нажмите кнопку "Перезапустить".

Обнаружение состояния, включение и отключение протоколов SMB на сервере SMB

Для Windows 8.1, Windows Server 2012, Windows Server 2012 R2, Windows 10 и Windows Server 2019

Windows 8 и Windows Server 2012 появился новый командлет Set-SMBServerConfiguration Windows PowerShell. Этот командлет позволяет включить или отключить протоколы SMBv1, SMBv2 и SMBv3 на сервере.

Примечание

Если включить или отключить SMBv2 в Windows 8 или Windows Server 2012, SMBv3 также включен или отключен. Это происходит потому, что эти протоколы используют один и тот же стек.

После запуска командлета Set-SMBServerConfiguration не нужно перезагрузить компьютер.

SMBv1 на сервере SMB

  • Обнаружить:

    Get-SmbServerConfiguration | Select EnableSMB1Protocol
    
  • Отключите:

    Set-SmbServerConfiguration -EnableSMB1Protocol $false
    
  • Включите параметр

    Set-SmbServerConfiguration -EnableSMB1Protocol $true
    

Дополнительные сведения см. в разделе "Хранилище сервера" в Корпорации Майкрософт.

SMB версии 2/v3 на 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 или более поздняя версия PowerShell.

SMBv1 на сервере SMB

Обнаружить:

Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}

Конфигурация по умолчанию = включено (не создается именованное значение реестра), поэтому не будет возвращено значение SMB1.

Отключите:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force

Включите параметр

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 -Force

Примечание После внесения этих изменений необходимо перезагрузить компьютер. Дополнительные сведения см. в разделе "Хранилище сервера" в Корпорации Майкрософт.

SMBv2/v3 на сервере SMB

Обнаружить:

Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}

Отключите:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 -Force

Включите параметр

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 -Force

Примечание

После внесения этих изменений необходимо перезагрузить компьютер.

Редактор реестра

Важно!

Внимательно выполните действия, описанные в этом разделе. Неправильное изменение реестра может привести к серьезным проблемам. Перед внесением изменений создайте резервную копию реестра для его восстановления в случае возникновения проблем.

Чтобы включить или отключить SMBv1 на сервере SMB, настройте следующий раздел реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

Registry entry: SMB1
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled (No registry key is created)

Чтобы включить или отключить SMBv2 на сервере SMB, настройте следующий раздел реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

Registry entry: SMB2
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled (No registry key is created)

Примечание

 После внесения этих изменений необходимо перезагрузить компьютер.

Как обнаруживать состояние, включать и отключать протоколы SMB на клиенте SMB

Вот как определить состояние, включить и отключить протоколы SMB на клиенте SMB, работающем под управлением Windows 10, Windows Server 2019, Windows 8.1, Windows Server 2016, Windows Server 2012 R2 и Windows Server 2012.

Примечание

Если включить или отключить SMBv2 в Windows 8 или в Windows Server 2012, SMBv3 также включен или отключен. Это происходит потому, что эти протоколы используют один и тот же стек.

SMBv1 на клиенте SMB

  • Определение

    sc.exe qc lanmanworkstation
    
  • Отключите:

    sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
    sc.exe config mrxsmb10 start= disabled
    
  • Включите параметр

    sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
    sc.exe config mrxsmb10 start= auto
    

Дополнительные сведения см. в разделе "Хранилище сервера" в Корпорации Майкрософт

SMBv2/v3 в клиенте SMB

  • Обнаружить:

    sc.exe qc lanmanworkstation
    
  • Отключите:

    sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
    sc.exe config mrxsmb20 start= disabled
    
  • Включите параметр

    sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
    sc.exe config mrxsmb20 start= auto
    

Примечание

  • Эти команды необходимо выполнить в командной строке с повышенными привилегиями.
  • После внесения этих изменений необходимо перезагрузить компьютер.

Отключение SMBv1 с помощью групповая политика

В этом разделе описывается использование групповая политика для отключения SMBv1. Этот метод можно использовать в разных версиях Windows.

Отключение сервера SMBv1

Эта процедура настраивает следующий новый элемент в реестре:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

  • Запись реестра: SMB1
  • REG_DWORD: 0 = отключено

Чтобы использовать групповая политика для настройки, выполните следующие действия.

  1. Откройте Консоль управления групповыми политиками. Щелкните правой кнопкой мыши объект групповой политики (GPO), который должен содержать новый элемент настройки, а затем щелкните Изменить.

  2. В дереве консоли в разделе "Конфигурация компьютера" разверните папку "Параметры", а затем разверните папку Windows Параметры.

  3. Щелкните правой кнопкой мыши узел реестра , наведите указатель мыши на пункт "Создать" и выберите пункт реестра.

    Registry - New - Registry Item

В диалоговом окне "Новые свойства реестра" выберите следующее:

  • Действие: обновление
  • Hive: HKEY_LOCAL_MACHINE
  • Путь к ключу: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • Имя значения: SMB1
  • Тип значения: REG_DWORD
  • Данные значения: 0

New Registry Properties - General

Эта процедура отключает компоненты сервера SMBv1. Эта групповая политика должна применяться ко всем необходимым рабочим станциям, серверам и контроллерам домена в домене.

Примечание

 Фильтры WMI также можно задать для исключения неподдерживаемых операционных систем или выбранных исключений, таких как Windows XP.

Важно!

Будьте внимательны при внесении этих изменений на контроллерах домена, на которых устаревшие Windows XP или более старые системы Linux и сторонних систем (которые не поддерживают SMBv2 или SMBv3) требуют доступа к SYSVOL или другим общим папкам, в которых отключен SMB версии 1.

Отключение клиента SMBv1

Чтобы отключить клиент SMBv1, необходимо обновить раздел реестра служб, чтобы отключить запуск MRxSMB10 , а затем зависимость от MRxSMB10 должна быть удалена из записи для LanmanWorkstation , чтобы она запускала нормально, не требуя MRxSMB10 для первого запуска.

Это руководство обновляет и заменяет значения по умолчанию в следующих двух элементах реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10

Запись реестра: запуск REG_DWORD: 4= отключено

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation

Запись реестра: DependOnService REG_MULTI_SZ: "Bowser", "MRxSmb20", "NSI"

Примечание

 Значение по умолчанию включало MRxSMB10, которое теперь удаляется как зависимость.

Чтобы настроить это с помощью групповая политика, выполните следующие действия.

  1. Откройте Консоль управления групповыми политиками. Щелкните правой кнопкой мыши объект групповой политики, который должен содержать новый элемент предпочтения, и нажмите кнопку "Изменить".

  2. В дереве консоли в разделе "Конфигурация компьютера" разверните папку "Параметры", а затем разверните папку Windows Параметры.

  3. Щелкните правой кнопкой мыши узел реестра , наведите указатель мыши на пункт "Создать" и выберите пункт реестра.

  4. В диалоговом окне "Новые свойства реестра" выберите следующее:

    • Действие: обновление
    • Hive: HKEY_LOCAL_MACHINE
    • Путь к ключу: SYSTEM\CurrentControlSet\services\mrxsmb10
    • Имя значения: Start
    • Тип значения: REG_DWORD
    • Данные значения: 4

    Start Properties - General

  5. Затем удалите зависимость от отключенного MRxSMB10 .

    В диалоговом окне "Новые свойства реестра" выберите следующее:

    • Действие: замена
    • Hive: HKEY_LOCAL_MACHINE
    • Путь к ключу: SYSTEM\CurrentControlSet\Services\LanmanWorkstation
    • Имя значения: DependOnService
    • Тип значения: REG_MULTI_SZ
    • Данные значения:
      • Баузер
      • MRxSmb20
      • NSI

    Примечание

    Эти три строки не будут содержать маркеры (см. следующий снимок экрана).

    DependOnService Properties

    Значение по умолчанию включает MRxSMB10 во многих версиях Windows, поэтому, заменив их этой строкой с несколькими значениями, она фактически удаляет MRxSMB10 как зависимость для LanmanWorkstation и переходя от четырех значений по умолчанию до только этих трех значений выше.

    Примечание

    При использовании групповая политика консоли управления вам не нужно использовать кавычки или запятые. Просто введите каждую запись в отдельных строках.

  6. Перезапустите целевые системы, чтобы завершить отключение SMB версии 1.

Аудит использования SMBv1

Чтобы определить, какие клиенты пытаются подключиться к серверу SMB с помощью SMBv1, можно включить аудит на Windows Server 2016, Windows 10 и Windows Server 2019. Вы также можете выполнять аудит на Windows 7 и Windows Server 2008 R2, если установлено ежемесячное обновление за май 2018 года, а также на Windows 8.1 и Windows Server 2012 R2, если установлено ежемесячное обновление за июль 2017 года.

  • Включите параметр

    Set-SmbServerConfiguration -AuditSmb1Access $true
    
  • Отключите:

    Set-SmbServerConfiguration -AuditSmb1Access $false
    
  • Обнаружить:

    Get-SmbServerConfiguration | Select AuditSmb1Access
    

Если включен аудит SMBv1, событие 3000 отображается в журнале событий Microsoft-Windows-SMBServer\Audit, идентифицируя каждый клиент, который пытается подключиться к SMBv1.

Сводка

Если все параметры находятся в одном объекте групповой политики, групповая политика Management отображает следующие параметры.

Group Policy Management Editor - Registry

Тестирование и проверка

После выполнения действий по настройке, описанных в этой статье, разрешите политике репликацию и обновление. При необходимости для тестирования запустите gpupdate /force в командной строке, а затем просмотрите целевые компьютеры, чтобы убедиться, что параметры реестра применены правильно. Убедитесь, что SMBv2 и SMBv3 работают для всех других систем в среде.

Примечание

Не забудьте перезапустить целевые системы.