Как проверить версию smb на windows

Обновлено: 04.07.2024

Мой локальный компьютер работает под управлением Windows 7, которая поддерживает последнюю выпущенную версию протокола SMB (SMB 2.1). У меня также есть удаленный хост, и я не знаю, какая операционная система или программное обеспечение поддержки SMB установлено на этом удаленном хосте; Я только знаю, что удаленный хост поддерживает некоторую версию протокола SMB.

Как узнать из командной строки (или PowerShell) моего компьютера с Windows 7, какая версия SMB поддерживается этим удаленным хостом?

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

Самый простой способ - установить WireShark и перехватить пакеты, он декодирует их и должен показать вам версию протокола. У них есть запись SMBv2 в их вики , поэтому последняя версия WireShark должна декодировать ее во время захвата пакета.

В этом случае я бы использовал netmon 3.4, если вы не хотите его устанавливать, вам не нужно просто запускать «netsh trace start capture = yes», затем подключаться к общему ресурсу, а затем запускать «netsh trace stop», полученный в результате * .cab файл доступен для чтения с помощью netmon 3.4, который не обязательно должен находиться на рабочей станции / сервере, на котором вы записываете.

В Windows 8 и выше вы можете использовать команду powerhsell, Get-SmbConnection чтобы проверить, какая версия SMB используется для каждого соединения.

Хотя мой оригинальный вопрос касается Windows 7, приятно знать, что в Windows 8 и более поздних версиях все проще!

Существует только два возможных способа определения версии SMB удаленного хоста.

Во-первых , захват баннера с помощью telnet. Даже тогда вы не гарантированы, что что-то полезное вернется. Я могу успешно подключиться к одному из моих SMB-серверов, но не получаю никакой полезной информации о баннере.

Во-вторых , для идентификации системы по сети с помощью сканера сетевой безопасности. Вам придется искать хорошую инструментальную мысль, потому что вам все еще не гарантирован успех в определении, какая версия SMB работает. Например, я только что использовал быстрое сканирование с помощью nmap в своей сети (я знаю, что он работает под управлением Microsoft SMB на нескольких конечных точках), и я не получаю соответствующей информации о том, какую версию SMB он использует.

nmap определяет версию cifs? не использовал это в течение долгого времени. @tonyroth Это могут быть дополнения Nmap Scripting Engine, которые это делают. Я знаю об одной проверке уязвимости smb - но вы не хотите использовать эту волю, потому что она будет использовать сервер. =) Вы должны использовать nmap с флагами "-sV -p 139", чтобы получить подробную информацию о демоне. например. Samba smbd 3.X (рабочая группа: XXXX)

Вот что вы делаете, чтобы вытащить версию SMB:

  1. Откройте Powershell от имени администратора. Щелкните правой кнопкой мыши значок и скажите «открыть как администратор».
  2. Перейдите к c: \ с помощью «cd \», а затем «c:»

Теперь вы собираетесь запустить 2 команды в течение 10 секунд, иначе Windows закроет порты как неиспользуемые.

3a. Запустите "dir \ SERVERNAME \ C $"

3b. Запустите «Get-SmbConnection», и вы увидите, что столбец «Диалект» является версией вашего SMB.

date

22.09.2021

directory

Windows 10, Windows 7, Windows Server 2012 R2, Windows Server 2016

comments

комментариев 7

Сетевой протокол SMB (Server Message Block) используется для предоставления совместного удаленного доступа к файлам, принтерам и другим устройствам через порт TCP 445. В этой статье мы рассмотрим: какие версии (диалекты) протокола SMB доступны в различных версиях Windows (и как они соотносятся с версиями samba в Linux); как определить версию SMB на вашем компьютере; и как включить/отключить клиент и сервер SMBv1, SMBv2 и SMBv3.

Версии протокола 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 2016Windows 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.02SMB 3.0SMB 2.1SMB 2.0SMB 1.0
Windows 8.1 ,
Server 2012 R2
SMB 3.02SMB 3.02SMB 3.0SMB 2.1SMB 2.0SMB 1.0
Windows 8 ,
Server 2012
SMB 3.0SMB 3.0SMB 3.0SMB 2.1SMB 2.0SMB 1.0
Windows 7,
Server 2008 R2
SMB 2.1SMB 2.1SMB 2.1SMB 2.1SMB 2.0SMB 1.0
Windows Vista,
Server 2008
SMB 2.0SMB 2.0SMB 2.0SMB 2.0SMB 2.0SMB 1.0
Windows XP, 2003 и нижеSMB 1.0SMB 1.0SMB 1.0SMB 1.0SMB 1.0SMB 1.0

К примеру, при подключении клиентского компьютера с Windows 8.1 к файловому серверу с Windows Server 2016 будет использоваться протокол SMB 3.0.2.

Согласно таблице Windows XP, Windows Server 2003 для доступа к общим файлам и папкам на сервере могут использовать только SMB 1.0, который в новых версиях Windows Server (2012 R2 / 2016) может быть отключен. Таким образом, если в вашей инфраструктуре одновременно используются компьютеры с Windows XP (снятой с поддержки), Windows Server 2003/R2 и сервера с Windows Server 2012 R2/2016/2019, устаревшие клиенты не смогут получить доступ к файлам и папкам на файловом сервере с новой ОС.

Если Windows Server 2016/2012 R2 с отключенным SMB v1.0 используется в качестве контроллера домена, значить клиенты на Windows XP/Server 2003 не смогут получить доступ к каталогам SYSVOL и NETLOGON на контроллерах домена и авторизоваться в AD.

На старых клиентах при попытке подключиться к ресурсу на файловом сервере с отключенным SMB v1 появляется ошибка:

Как проверить поддерживаемые версии SMB в Windows?

Рассмотрим, как определить, какие версии протокола SMB поддерживаются на вашем компьютере Windows.

В Windows 10, 8.1 и Windows Server 2019/2016/2012R2 вы можете проверить состояние различных диалектов SMB протокола с помощью PowerShell:

Get-SmbServerConfiguration | select EnableSMB1Protocol,EnableSMB2Protocol

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

Если в данной ветке реестра нет параметров с именами SMB1 или SMB2, значить протоколы SMB1 и SMB2 по умолчанию включены.

проверить какие версии smb включены в windows

Также в этих версиях Windows вы можете проверить, какие диалекты SMB разрешено использовать в качестве клиентов с помощью команд:

sc.exe query mrxsmb10

sc.exe query mrxsmb20

В обоих случаях службы запущены ( STATE=4 Running ). Значит Windows может подключаться как к SMBv1, так и к SMBv2 серверам.

Вывести используемые версии SMB с помощью Get-SMBConnection

Как мы говорили раньше, компьютеры при взаимодействии по протоколу SMB используют максимальную версию, поддерживаемую как клиентом, так и сервером. Для определения версии SMB, используемой для доступа к удаленному компьютеру можно использовать командлет PowerShell Get-SMBConnection :

Get-SMBConnection вывести в powershell версии smb, исопльзуемые для подключения

Версия SMB, используемая для подключения к удаленному серверу (ServerName) указана в столбце Dialect.

Можно вывести информацию о версиях SMB, используемых для доступа к конкретному серверу:

Get-SmbConnection -ServerName servername

Если нужно отобразить, используется ли SMB шифрование (появилось в SMB 3.0), выполните:

Get-SmbConnection | ft ServerName,ShareName,Dialect,Encrypted,UserName

В Linux вывести список SMB подключения и используемые диалекты в samba можно командой:

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

Get-SmbSession | Select-Object -ExpandProperty Dialect | Sort-Object -Unique

Get-SmbSession Получить количество клиентов, использующих разные версии SMB

В нашем примере имеется 825 клиентов, подключенных к серверу с помощью SMB 2.1 (Windows 7/Windows Server 2008 R2) и 12 клиентов SMB 3.02.

С помощью PowerShell можно включить аудит версий SMB, используемых для подключения:

Set-SmbServerConfiguration –AuditSmb1Access $true

События подключения затем можно извлечь из журналов Event Viewer:

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

Set-SmbServerConfiguration - powershell отключить SMBv2 и SMBv3

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 сервер в windows 7 через powershell

Включить 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) нужно использовать службы обнаружения (линк).

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

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

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

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

в Windows 10, Windows 8.1 и Windows 8 Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 и Windows Server 2012, отключение SMBv3 деактивирует следующие функциональные возможности:

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

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

протокол smb был впервые появился в Windows Vista и Windows Server 2008, а протокол SMBv3 появился в Windows 8 и Windows Server 2012. Дополнительные сведения о функциях SMB и SMBv3 см. в следующих статьях:

Удаление SMBv1

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

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


Как проверить версию SMB в Windows 10

Прежде всего, если у вас Windows 7, вам не следует отключать SMB v2. Это связано со следующими причинами:

Даже если вы используете Windows 8.1 или Windows 10, вам не следует отключать SMB v3 или SMB v2, потому что, помимо вышеуказанных проблем, вы также можете столкнуться со следующими проблемами, которые связаны с отключением SMB v3:

Способы проверки того, какая версия SMB установлена ​​на сервере

Мы будем использовать следующие методы, чтобы проверить, какая версия SMB установлена ​​на вашем компьютере:

  1. Метод PowerShell.
  2. Метод редактора реестра.

Если вы хотите проверить, какую версию SMB вы используете, вы можете просто ввести следующее в командлете для PowerShell:

SMB v1 Windows 10 и Windows 8.1

Get-WindowsOptionalFeature –Online –FeatureName SMB1Protocol

SMB v2 Windows 10 и Windows 8.1

Get-SmbServerConfiguration | Выберите EnableSMB2Protocol.

SMB v1 Windows 7

Get-Item HKLM: SYSTEM CurrentControlSet Services LanmanServer Parameters | ForEach-Object

SMB v2 Windows 7

Get-ItemProperty HKLM: SYSTEM CurrentControlSet Services LanmanServer Parameters | ForEach-Object


Если он возвращает значение как Истинный, он включен, иначе отключен.

2]Метод редактора реестра

Тип regedit в Начать поиск и нажмите Enter. Когда откроется редактор реестра, перейдите к следующему ключу:

HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services LanmanServer Parameters

Теперь, если у вас есть DWORD с именем SMB1 или SMB2, проверьте их данные значения.

Если он установлен на 0, он отключен.

А в любом другом случае он включен.

Способы проверки того, какая версия SMB установлена ​​на клиентах

Мы будем использовать следующие методы, чтобы проверить, какая версия SMB установлена ​​на вашем компьютере.

  1. Метод PowerShell.
  2. Метод редактора групповой политики.

Итак, если вы хотите проверить, какую версию SMB вы используете, вы можете просто ввести следующее в командной строке с правами администратора:

SMB v1 Windows 10 и Windows 8.1

sc.exe qc lanmanworkstation

SMB v2 Windows 10 и Windows 8.1

Как проверить версию SMB в Windows

sc.exe qc lanmanworkstation2]Метод редактора групповой политики

Стоит отметить, что этот метод не будет работать в Windows 10 Домашняя или эквивалентной версии Windows 8 или Windows 7.

Конфигурация компьютера> Параметры Windows


В разделе «Реестр» найдите элемент реестра со следующими свойствами:

Ключевой путь: SYSTEM CurrentControl services mrxsmb10

Имя значения: Начало

Тип значения: REG_DWORD

Данные значения: 4

Если значение параметра установлено на 4, SMB отключен.

Связанное чтение: Почему и как отключить SMB1 в Windows 10 ?.

Как проверить версию SMB в Windows

.

Читайте также: