Поделиться через


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

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

При отключении или удалении SMBv1 могут возникнуть проблемы совместимости со старыми компьютерами или программным обеспечением. SMBv1 имеет значительные уязвимости безопасности, и мы настоятельно рекомендуем не использовать его. SMBv1 по умолчанию не устанавливается в любом выпуске Windows 11 или Windows Server 2019 и более поздних версий. SMBv1 также не устанавливается по умолчанию в Windows 10, кроме выпусков Home и Pro. Мы рекомендуем вместо переустановки SMBv1 обновить сервер SMB, если он все еще требует эту версию. Список партнеров, требующих SMBv1, и обновлений, которые снимают это требование, см. в SMB1 Product Clearinghouse.

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

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

Отключение SMBv3 деактивирует следующие функции:

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

Отключение SMBv2 деактивирует следующие функции:

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

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

Удаление SMBv1 с помощью PowerShell

You can use the Get-WindowsOptionalFeature, Disable-WindowsOptionalFeature, and Enable-WindowsOptionalFeature PowerShell commands to detect, disable, and enable an SMBv1 client or server. Выполните команды в командной строке с повышенными привилегиями.

Note

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

  • Detect:

    Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Disable:

    Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Enable:

    Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    

Tip

You can detect the SMBv1 status without elevation by running the Get-SmbServerConfiguration command: Get-SmbServerConfiguration | Format-List EnableSMB1Protocol.

Remove SMBv1

SMBv1 по умолчанию не устанавливается в Windows Server 2019 и более поздних версиях. В более ранних версиях Windows Server можно использовать диспетчер серверов для удаления SMBv1:

  1. На сервере, из которого требуется удалить SMBv1, откройте диспетчер серверов.

  2. На панели мониторинга Диспетчера серверов в разделе Настройка этого локального серверавыберите Добавить роли и компоненты.

  3. На странице "Перед началом работы" выберите "Пуск мастера удаления ролей и компонентов", а затем на следующей странице нажмите кнопку "Далее".

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

  5. На странице "Удалить роли сервера" нажмите кнопку "Далее".

  6. On the Remove features page, clear the checkbox for SMB 1.0/CIFS File Sharing Support, and then select Next.

    снимок экрана: страница

  7. На странице выбора "Подтверждение удаления" убедитесь, что эта функция указана, а затем нажмите кнопку "Удалить".

Использование командной строки или редактора реестра для управления протоколами SMB

Начиная с Windows 10 Fall Creators Update и Windows Server 2019, SMBv1 больше не устанавливается по умолчанию. Дополнительные сведения см. в статье SMBv1 не устанавливается по умолчанию в Windows 10 версии 1709, Windows Server версии 1709 и более поздних версиях.

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

You can use the Set-SMBServerConfiguration cmdlet to enable or disable the SMBv1, SMBv2, and SMBv3 protocols on a server component. You can use the Get-SmbServerConfiguration cmdlet to retrieve the SMB server configuration.

You don't have to restart the computer after you run the Set-SMBServerConfiguration cmdlet.

SMBv1

  • Detect:

    Get-SmbServerConfiguration | Select EnableSMB1Protocol
    
  • Disable:

    Set-SmbServerConfiguration -EnableSMB1Protocol $false
    
  • Enable:

    Set-SmbServerConfiguration -EnableSMB1Protocol $true
    

Дополнительные сведения см. в разделе Прекратите использовать SMB1.

SMBv2 и SMBv3

  • Detect:

    Get-SmbServerConfiguration | Select EnableSMB2Protocol
    
  • Disable:

    Set-SmbServerConfiguration -EnableSMB2Protocol $false
    
  • Enable:

    Set-SmbServerConfiguration -EnableSMB2Protocol $true
    

Включение или отключение SMB в 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 или редактор реестра, как описано в следующих разделах.

Использование Windows PowerShell

You can use the Get-Item, Get-ItemProperty, and Set-ItemProperty cmdlets to detect, enable, and disable SMB protocols.

Note

Для команд в следующих разделах требуется PowerShell 2.0 или более поздней версии.

SMBv1 на сервере SMB
  • Detect:

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

    Конфигурация по умолчанию — Enabled. В результате не создается именованное значение реестра, поэтому команда не возвращает значение SMB1.

  • Disable:

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

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

Note

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

Дополнительные сведения см. в разделе Прекратите использовать SMB1.

SMBv2 и SMBv3 на сервере SMB
  • Detect:

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

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

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

Note

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

Использование редактора реестра

Important

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

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

Настройте запись со следующими свойствами:

  • For the name, use SMB1.
  • For the type, use REG_DWORD.
  • For the data, use 0 for Disabled and 1 for Enabled. The default value is 1, or Enabled. В этом случае раздел реестра не создается.

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

Настройте запись со следующими свойствами:

  • For the name, use SMB2.
  • For the type, use REG_DWORD.
  • For the data, use 0 for Disabled and 1 for Enabled. The default value is 1, or Enabled. В этом случае раздел реестра не создается.

Note

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

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

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

SMBv1

Вы можете отключить SMBv1 на сервере SMB, настроив следующий новый элемент в реестре:

  • Key path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • Registry entry: SMB1
  • Entry type: REG_DWORD
  • Entry data: 0, for Disabled

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

  1. Откройте консоль управления групповыми политиками. Right-click the Group Policy object (GPO) that should contain the new preference item, and then select Edit.

  2. In the console tree under Computer Configuration, expand the Preferences folder, and then expand the Windows Settings folder.

  3. Right-click the Registry node, point to New, and then select Registry Item.

    снимок экрана: дерево консоли в консоли управления групповыми политиками. Контекстные меню реестра отображаются с выделенным элементом

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

    • Action: Create
    • Hive: HKEY_LOCAL_MACHINE
    • Key Path: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    • Value name: SMB1
    • Value type: REG_DWORD
    • Value data: 0

    снимок экрана диалогового окна

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

Note

 Фильтры инструментария управления Windows (WMI) можно задать для исключения определенных операционных систем или исключения клиентских или серверных операционных систем. Дополнительные сведения см. в статье Фильтрация групповой политики и Создание фильтров WMI дляГрупповой политики.

Important

Некоторые системы требуют доступа к папке SYSVOL или другим общим папкам, но не поддерживают SMBv2 или SMBv3. Примерами таких систем являются устаревшие системы Windows и старые системы Linux и партнерские системы. Будьте осторожны при отключении SMBv1 на контроллерах домена в этих системах.

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

Чтобы определить, какие клиенты пытаются подключиться к серверу SMB с помощью SMBv1, можно включить аудит на клиентах Windows Server и Windows. To enable or disable auditing, use the Set-SmbServerConfiguration cmdlet. To check the auditing status, use the Get-SmbServerConfiguration cmdlet.

  • Enable:

    Set-SmbServerConfiguration -AuditSmb1Access $true
    
  • Disable:

    Set-SmbServerConfiguration -AuditSmb1Access $false
    
  • Detect:

    Get-SmbServerConfiguration | Select AuditSmb1Access
    

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

Проверка параметров групповой политики

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

снимок экрана реестра редактора управления групповыми политиками. Три элемента видимы: DependOnService, SMB1 и Start.

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

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

Note

После тестирования политики перезапустите целевые системы.