Windows 10 какая версия smb

Сетевой протокол 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

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 по умолчанию включены.

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

Также в этих версиях 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
:

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 можно командой:

$ sudo smbstatus

Чтобы на стороне сервера вывести список используемых клиентами версий протокола 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 с помощью 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

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

Server Message Block (SMB) is a network protocol that allows applications to read and write to files and request services from server programs in a computer network. In today’s environment, SMB is integral to file sharing, especially within networks utilizing Windows operating systems. With the introduction of Windows 10 and subsequently Windows 11, Microsoft updated various network functionalities, including the SMB protocol. Understanding which version of SMB your Windows machine uses is essential for several reasons, including security, compatibility with networked devices, and optimizing performance. This article will provide a comprehensive guide on how to check the SMB version on Windows 10 and 11, covering different methods and scenarios in a detailed manner.

Understanding SMB Versions

Before diving into the methods for checking the SMB version on Windows 10 and 11, it’s crucial to understand the evolution of the SMB protocol:

  1. SMB 1.0: The original version, introduced in the 1980s, is less secure and has known vulnerabilities, which is why it’s being deprecated in favor of later versions.

  2. SMB 2.0 and 2.1: Introduced with Windows Vista and Windows Server 2008, these versions brought performance improvements and new features such as pipelining.

  3. SMB 3.0: Launched with Windows 8 and Windows Server 2012, this version enhanced security (supporting encryption) and provided improvements for performance and reliability.

  4. SMB 3.1.1: The latest version used in Windows 10 and Windows 11, which introduced additional security measures and improvements in performance.

With Microsoft’s focus on security, using outdated versions like SMB 1.0 is not advised. Thus, checking and understanding the SMB version in use on your Windows machine is vital.

Checking SMB Version on Windows 11/10

There are several methods to check the version of SMB installed on your Windows 10 or Windows 11 system. Below, we will explore various approaches, starting with the most straightforward methods and progressing toward command-line utilities for advanced users.

Method 1: Using the PowerShell

PowerShell is a powerful command-line utility that can be used to manage system tasks efficiently. Checking SMB versions via PowerShell is both straightforward and informative.

  1. Open PowerShell:

    • Right-click the Start button.
    • Select Windows Terminal (Admin) or Windows PowerShell (Admin) from the context menu. This action may prompt you to confirm your action, depending on your User Account Control (UAC) settings.
  2. Run the command:
    Input the following command in the PowerShell window and press Enter:

    Get-WindowsFeature FS-SMB1, FS-SMB2, FS-SMB3
  3. Interpret the results:
    After running the command, you will see a list of the installed SMB features. The results will display whether SMB 1.0, SMB 2.0, or SMB 3.0 is installed on your system.

If the state shows as Installed, it means you are running that particular version of SMB. Conversely, if it’s listed as Removed, then that SMB version is not present on your system.

Method 2: Using the Command Prompt

The Command Prompt is another powerful tool that can be utilized to check for SMB versions.

  1. Open Command Prompt:

    • Press Windows + R to open the Run dialog.
    • Type cmd and press Enter, or type cmd in the Start menu search and select Command Prompt.
  2. Execute the command:
    Type the following command and hit Enter:

    sc query lanmanworkstation
  3. Analyze the output:
    You will see output with various fields. Look for the lines that correspond to:

    • STATE: This indicates whether the service is running.
    • TYPE: This will display service type and details about the LAN Manager Workstation, which deals with SMB.

While the Command Prompt might not provide the explicit version number, if the service is running, it’s an indication that SMB is available.

Method 3: Check through Local Group Policy Editor

For users with Windows 10 or Windows 11 Professional, Enterprise, or Education editions, the Local Group Policy Editor can provide insights into SMB settings.

  1. Open Local Group Policy Editor:

    • Press Windows + R, type gpedit.msc, and hit Enter.
  2. Navigate to Network settings:
    In the Group Policy Editor, follow this path:

    Computer Configuration -> Administrative Templates -> Network -> Offline Files

    Although this method won’t explicitly state the SMB version, it can reveal settings and configurations related to SMB 1.0, 2.0, or higher.

Method 4: Registry Editor

Another advanced method to check the SMB version involves using the Registry Editor, which can reveal detailed configuration settings including SMB values. Caution: Editing the registry can have serious implications, so always back up the registry before making changes.

  1. Open Registry Editor:

    • Press Windows + R, type regedit, and press Enter.
  2. Navigate to the appropriate keys:
    To check for SMB 1.0, navigate to:

    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters
  3. Look for the SMB1 key:
    The existence and value of the SMB1 key will indicate whether SMB 1.0 is enabled. Check the keys named SMB2 or SMB3, if present, for their configurations.

  4. Review values:

    • If the SMB1 value is 0, it is disabled (i.e., not running).
    • If it is not present, SMB 1.0 is likely not installed.
    • For SMB2 and SMB3, if the value is 1, it indicates that respective SMB protocol versions are enabled.

Method 5: File Sharing Settings

Another practical way to deduce which SMB version is active is by checking the file-sharing settings for the network. This method is less technical and focuses on user experience.

  1. Open Folder Options:

    • Open File Explorer.
    • Click on the three dots in the top right corner and go to Options.
  2. Navigate to the Sharing Tab:
    Under the Sharing tab, check the advanced sharing settings. Here, you may find options that pertain to file sharing and network discovery, which helps assess the capabilities of your sharing features.

  3. Check the Status:
    Consider verifying if your network allows for SMB connections and if any particular settings require adjustment to enhance compatibility with devices reliant on SMB sharing.

Understanding Additional Factors

The methods outlined can help determine which version of SMB is present on your system. However, there are several other factors to consider when checking SMB versions. These can include:

  1. Security Concerns:
    SMB 1.0, in particular, has a history of vulnerabilities, making it crucial to disable this version if not in use. Microsoft has announced plans to phase out SMB 1.0, and it’s recommended to rely on SMB 3.0 or later for enhanced security features.

  2. Configuration Settings:
    Depending on organizational policies, certain SMB versions may be required or disabled. Always check with IT departments or system administrators to ensure compliance with security standards.

  3. Troubleshooting Compatibility:
    When experiencing issues with networked devices, understanding the SMB version can assist in troubleshooting compatibility problems. Many NAS (Network Attached Storage) devices allow configuration of the version of SMB they utilize.

  4. Performance Implications:
    Newer SMB versions generally offer improved performance. If file-sharing speeds are sluggish, consider whether an upgrade or configuration change is necessary to facilitate better data throughput.

Conclusion

Understanding how to check the SMB version on Windows 10 and 11 is critical for anyone involved in network administration or daily computing tasks, particularly in collaborative environments where file sharing is routine. Utilizing PowerShell, Command Prompt, Group Policy Editor, Registry Editor, and reviewing file-sharing settings can help demystify your system’s SMB configurations.

As more devices and services adopt enhanced security features, ensuring that your Windows machine utilizes the latest SMB protocols will be tremendously beneficial, not only for security reasons but also to maintain optimal network performance. If you find your machine is still using an outdated SMB version, consider taking steps to upgrade and secure your file-sharing capabilities.

In a rapidly modernizing digital landscape, keeping your systems up to date with the latest technology protocols, including SMB, is not merely an enhancement—it’s a necessity.

The Server Message Block (SMB) network protocol is used to share and access folders, files, printers, and other devices over network (TCP port 445). In this article, we will look at which versions (dialects) of SMB are available in different versions of Windows (and how they relate to samba versions on Linux); how to check the SMB version in use on your computer; and how to enable or disable the SMBv1, SMBv2, and SMBv3 dialects.

Contents:

  • SMB Protocol Versions in Windows
  • How to Check SMB Version on Windows?
  • Checking Used SMB Dialects with Get-SMBConnection
  • Stop Using the Insecure SMBv1 Protocol
  • How to Enable and Disable SMBv1, SMBv2, and SMBv3 on Windows?

SMB Protocol Versions in Windows

There are several versions of the SMB protocol (dialects) that have consistently appeared in new Windows versions (and samba) :

  • CIFS – Windows NT 4.0
  • SMB 1.0 – Windows 2000
  • SMB 2.0 – Windows Server 2008 and Windows Vista SP1 (supported in Samba 3.6)
  • SMB 2.1 – Windows Server 2008 R2 and Windows 7 (Samba 4.0)
  • SMB 3.0 – Windows Server 2012 and Windows 8 (Samba 4.2)
  • SMB 3.02 – Windows Server 2012 R2 and Windows 8.1 (not supported in Samba)
  • SMB 3.1.1 – Windows Server 2016 and Windows 10 (not supported in Samba)

Samba is used to implement the SMB protocol in Linux/Unix . Samba 4.14 and newer uses SMB 2.1 by default.

In SMB network communication, the client and server use the maximum SMB protocol version supported by both the client and the server.

The summary table of SMB version compatibility looks like this. Using this table, you can determine the version of the SMB protocol that is selected when different versions of Windows interact:

Operating System Windows 10, Win Server 2016 Windows 8.1, Win Server 2012 R2 Windows 8,Server 2012 Windows 7,Server 2008 R2 Windows Vista,Server 2008 Windows XP, Server 2003 and earlier
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 and earlier SMB 1.0 SMB 1.0 SMB 1.0 SMB 1.0 SMB 1.0 SMB 1.0

For example, if a client computer running Windows 8.1 connects to a file server with Windows Server 2016, the SMB 3.0.2 protocol will be used.

According to the table, Windows XP and Windows Server 2003 can use only SMB 1.0 to access shared folders and files. The SMBv1 is disabled in newer versions of Windows Server (2012 R2/2016). So, if you are still using Windows XP and Windows Server 2003 devices on your network, they won’t be able to access shared folders on the file server running Windows Server 2016.

If Windows Server 2019/2016 with disabled SMB v1.0 is used as a domain controller, then Windows XP/Server 2003 clients won’t be able to access the SYSVOL and NETLOGON folders on domain controllers and authenticate with AD.

You may receive the following error when trying to connect to a shared folder on a file server with SMBv1 disabled:

The specified network name is no longer available

How to Check SMB Version on Windows?

Let’s look on how to find out which versions of the SMB are enabled on your Windows device.

On Windows 10/8.1 and Windows Server 2019/2016/2012R2, you can check the status of various dialects of the SMB protocol using PowerShell:

Get-SmbServerConfiguration | select EnableSMB1Protocol,EnableSMB2Protocol

How to check which SMB version is enabled on Windows with PowerShell

This command returned that the SMB1 protocol is disabled (EnableSMB1Protocol = True), and the SMB2 and SMB3 protocols are enabled (EnableSMB1Protocol = False).

Note that the SMBv3 and SMBv2 protocols are closely related. You cannot disable or enable SMBv3 or SMBv2 separately. They are always enabled/disabled only together because they share the same stack.

On Windows 7, Vista, and Windows Server 2008 R2/2008:

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

If there are no parameters named SMB1 or SMB2 in this registry key, then the SMBv1 and SMBv2 protocols are enabled by default.

Checking smb version on Windows 7 SP1

Also on these Windows versions, you can check which SMB client dialects are allowed to connect to remote hosts:

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

In both cases, the services are running (STATE = 4 Running). This means that the current Windows device can connect to both SMBv1 and SMBv2 hosts.

Checking Used SMB Dialects with Get-SMBConnection

When communicating over SMB, computers use the maximum SMB version supported by both the client and the server. The Get-SMBConnection PowerShell cmdlet can be used to check the SMB version used to access a remote computer:

How to find out what SMB dialect is in use using Get-SmbConnection cmdlet

The SMB version used to connect to the remote server (ServerName) is listed in the Dialect column.

You can display information about the SMB versions used to access a specific server:

Get-SmbConnection -ServerName srvfs01

If you want to display if SMB encryption is in use (introduced in SMB 3.0):

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

On Linux, you can display a list of SMB connections and used dialects in samba using the command:

$ sudo smbstatus

On the Windows SMB server side, you can display a list of the versions of the SMB protocols that the clients are currently using. Run the command:

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

Get-SmbSession used Dialect versions

In this example, there are 898 clients connected to the server using SMB 2.1 (Windows 7/ Windows 2008 R2) and 8 SMB 3.02 clients.

You can use PowerShell to enable auditing of the SMB versions used for the connection:

Set-SmbServerConfiguration –AuditSmb1Access $true

SMB connection events can then be exported from Event Viewer logs:

Get-WinEvent -LogName Microsoft-Windows-SMBServer/Audit

Stop Using the Insecure SMBv1 Protocol

Over the past few years, Microsoft has systematically disabled the legacy SMB 1.0 protocol in all products for security reasons. This is due to the large number of critical vulnerabilities in this protocol (remember the incidents with wannacrypt and petya ransomware, which exploited a vulnerability in the SMBv1 protocol). Microsoft and other IT companies strongly recommend that you stop using SMBv1 in your network.

However, disabling SMBv1 can cause problems with accessing shared files and folders on newer versions of Windows 10 (Windows Server 2016/2019) from legacy clients (Windows XP, Windows Server 2003), third-party OS (Mac OSX 10.8 Mountain Lion, Snow Leopard, Mavericks, old Linux distros), old NAS devices.

If there are no legacy devices left on your network that support only SMBv1, be sure to disable this SMB dialect in Windows.

If you have clients running Windows XP, Windows Server 2003, or other devices that only support SMBv1, they should be updated or isolated.

How to Enable and Disable SMBv1, SMBv2, and SMBv3 on Windows?

Let’s look at ways to enable and disable different SMB versions on Windows. We’ll cover SMB client and server management (they are different Windows components).

Windows 10, 8.1, and Windows Server 2019/2016/2012R2:

Disable SMBv1 client and server:

Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol

Disable SMBv1 server only:

Set-SmbServerConfiguration -EnableSMB1Protocol $false

Enable SMBv1 client and server:

Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol

Enable only SMBv1 server:

Set-SmbServerConfiguration -EnableSMB1Protocol $true

Disable SMBv2 and SMBv3 server:

Set-SmbServerConfiguration -EnableSMB2Protocol $false

Enable SMBv2 and SMBv3 server:

Set-SmbServerConfiguration -EnableSMB2Protocol $true

Dsable smb2 using set-smbserverconfiguration cmdlet

Windows 7, Vista, and Windows Server 2008 R2/2008:

Disable SMBv1 server:

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

How to disable SMB 1 on Windows 7 via registry?

Enable SMBv1 server:

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

Disable SMBv1 client:

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

Enable SMBv1 client:

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

Disable SMBv2 server:

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

Enable SMBv2 server:

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

Disable SMBv2 client:

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

Enable SMBv2 client:

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

You can disable SMBv1 server on domain joined computers by deploying the following registry parameter through the GPO:

  • Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • Name: SMB1
  • Type: REG_DWORD
  • Value: 0

Set the registry parameter SMB2=0 in order to disable the SMBv2 server.

To disable the SMBv1 client, you need to propagate the following registry setting:

  • Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10
  • Name: Start
  • Type: REG_DWORD
  • Value: 4

275

В этой статье я покажу как включить и при необходимости отключить поддержку протокола SMB 1.0 в Windows 11 или Windows 10. Через Компоненты Windows, командную строку или PowerShell.

SMB 1 – это устаревший протокол, который по умолчанию уже отключен в Windows 11 и Windows 10 и считается небезопасным. Из-за этого иногда бывают проблемы с доступом к локальной сети. Если в сети есть устаревшие устройства, которые используют протокол SMB 1, то без поддержки этого протокола в Windows 11/10 вы не сможете получить доступ к такому серверу. И соответственно другие устройства с SMB 1 не смогут получить доступ к вашему компьютеру для обмена файлами, использования сетевого принтера и т. д., если ваш компьютер выступает в роли сервера и на нем отключен протокол SMB первой версии.

Управление протоколом SMB 1 через Компоненты Windows 11/10

Чтобы открыть окно Компоненты Windows нажмите сочетание клавиш Win + R, введите команду appwiz.cpl и нажмите Ok. Дальше слева нажмите на Включение или отключение компонентов Windows. Откроется окно, в котором нужно найти и развернуть пункт Поддержка общего доступа к файлам SMB 1.0 /CIFS. Он состоит из трех компонентов. Если вы не знаете что конкретно вам нужно (ниже я поясню), то установите галочки возле всех трех компонентов (как у меня на скриншоте) и нажмите OK.

  • Автоматическое удаление протокола SMB 1.0 /CIFS. Если данный протокол не используется более 15 дней в Windows 11 и Windows 10, он автоматически отключается. Это сделано для безопасности, так как сам протокол уже устаревший. Чтобы запретить автоматическое отключение – не устанавливайте галочку возле этого пункта.
  • Клиент SMB 1.0 /CIFS. Нужно включать, если ваш компьютер выступает в роли клиента. Чтобы была возможность получить доступ к общим папкам на других компьютерах, NAS, роутерах и т. д.
  • Сервер SMB 1.0 /CIFS.  Нужно включать, когда другие устройства с поддержкой SMB 1 будут подключаться к общим папкам на вашем компьютере.

Включение протокола SMB 1 через Компоненты Windows 11/10

Перезагрузите компьютер.

Чтобы отключить поддержку SMB 1 вручную, просто снимите галочку возле пункта Поддержка общего доступа к файлам SMB 1.0 /CIFS и нажмите на кнопку OK.

Через командную строку или PowerShell

Есть ряд команд, с помощью которых можно можно включить или отключить SMB 1 в Windows 11/10. Можно включать и отключать отдельно как клиент, так и сервер. Для этого нужно открыть командную строку или Терминал от имени администратора.

  1. Чтобы запустить командную строку откройте меню Пуск и наберите на клавиатуре «командная строка». Нажмите на нее правой кнопкой мыши и выберите Запуск от имени администратора.
    Запуск командной стройки

  2. Для запуска PowerShell нажмите правой кнопкой мыши на меню Пуск и выберите Терминал (администратор).

Команды для включения SMB 1

Для включения SMB 1 выполните по очереди эти команды:

Dism /online /Enable-Feature /FeatureName:"SMB1Protocol"
Dism /online /Enable-Feature /FeatureName:"SMB1Protocol-Client"
Dism /online /Enable-Feature /FeatureName:"SMB1Protocol-Server"

После выполнения каждой команды Windows будет предлагать перезагрузить компьютер. Чтобы отказаться нажмите на клавишу N.

Включение SMB 1 через командную строку в Windows 11/10

Если необходимо, можно выполнить команду только для включения SMB 1 клиент (когда вы подключаетесь) или сервер (когда к вам подключаются). Перезагрузите компьютер.

Команды для PowerShell:

Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Server
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client

Команды для отключения SMB 1

Для командной строки:

Dism /online /Disable-Feature /FeatureName:"SMB1Protocol"
Dism /online /Disable-Feature /FeatureName:"SMB1Protocol-Client"
Dism /online /Disable-Feature /FeatureName:"SMB1Protocol-Server"

Для PowerShell (команда удаляет протокол SMB 1):

Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -Remove

Как проверить статус протокола SMB 1?

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

Dism /online /Get-Features /format:table | find "SMB1Protocol"

Ее нужно выполнить в командной строке. Появится отчет по каждому компоненту.

Проверка статуса SMB 1 в Windows (включен или отключен)

Как вы можете увидеть не скриншоте выше, на моем компьютере протокол SMB 1 в данный момент отключен.

Дополнительная информация

  • Так как протокол SMB 1 уже устаревший и считается небезопасным, то я не рекомендую включать его без необходимости. А если включили, и это не помогло решить проблему или он вам больше не нужен, то отключите его вручную.
  • Из-за протокола SMB 1 в Windows 11 и Windows 10 часто может быть проблема, когда компьютер не видит другие компьютеры или папки в сети, или появляется ошибка 0x80070035 (не найдет сетевой путь) при настройке локальной сети в Windows 11 и в Windows 10. Поэтому, для решения подобных проблем я рекомендую включать/отключать данный протокол.
  • Ошибка «Вы не можете подключиться к общей папке, так как она небезопасна. Эта общая папка работает по устаревшему протоколу SMB1, который небезопасен и может подвергнуть вашу систему риску атаки. Вашей системе необходимо использовать SMB2 или более позднюю версию.» о которой я писал в статье не отображаются общие папки, сетевые компьютеры, флешки, диски на вкладке «Сеть» проводника Windows так же возникает из-за того, что отключен протокол SMB 1. После его включения для клиента эта ошибка должна исчезнуть. Или нужно настроить сервер на использование более нового протокола SMB 2 или SMB 3, если это возможно.

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

Как включить или отключить протокол SMB 1.0 в Windows 10/11 и Windows Server?

Протокол доступа к общим файлам SMB 1.0 (Server Message Block) по умолчанию отключен в последних версиях Windows 11 и 10, а также в Windows Server 2019/2022. Эта версия протокола является небезопасной/уязвимой, и не рекомендуется использовать ее на устройствах в локальной сети. Windows поддерживает более безопасные версии протокола SMB (2.x и 3.x).

SMB v1 может быть необходим, только если в вашей сети остались устаревшие устройства с Windows XP/2003, старые версии NAS, сетевые принтеры с поддержкой SMB, устройства со старыми версиями samba, и т.д. В этой статье рассмотрено, как включить или отключить протокол общего доступа к файлам SMB 1.0 в Windows.

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

  • Клиент SMB0 – нужен для доступа к общим папками на других компьютерах
  • Сервер SMB 0 – должен быть включен, если ваш компьютер используется в качестве файлового сервера, к которому подключаются другие компьютеры и устройства.

Включить/отключить SMB 1.0 в Windows 10 и 11

Начиная с Windows 10 1709, протокол SMB 1 отключен в десктопных версиях Windows, но его можно включить из вручную.

Откройте командную строку и проверить статус компонентов протокола SMBv1 в Windows с помощью команды DISM:

Dism /online /Get-Features /format:table | find «SMB1Protocol»

dism проверить что протокола SMB1Protocol установлен в windows 10

В данном примере видно, что все компоненты SMBv1 отключены:

SMB1Protocol                                | Disabled
SMB1Protocol-Client                         | Disabled
SMB1Protocol-Server                         | Disabled
SMB1Protocol-Deprecation                    | Disabled

В Windows 10 и 11 также можно управлять компонентами SMB 1 из панели Windows Features ( optionalfeatures.exe ). Разверните ветку Поддержка общего доступа к файлам SMB 1.0 /CIFS (SMB 1.0/CIFS File Sharing Support). Как вы видите здесь также доступны 3 компонента:

  • Клиент SMB 1.0/CIFS (SMB 1.0/CIFS Client)
  • Сервер SMB 1.0/CIFS (SMB 1.0/CIFS Server)
  • Автоматическое удаление протокола SMB0/CIFS (SMB 1.0/CIFS Automatic Removal)

Клиент SMB v1.0 нужно установить, если вашему компьютеру нужен доступ к сетевым папкам на старых устройствах. Если устаревшие сетевые устройства должны писать данные в сетевые папки на вашем компьютере, или использовать его общие сетевые принтеры, нужно включить сервер SMB 1.

настройка компонента "Поддержка общего доступа к файлам SMB 1.0 /CIFS" в WIndows 10

Вы можете включить клиент или сервер SMB 1.0 в Windows 10/11 из панели окна управления компонентами или с помощью команд:

Dism /online /Enable-Feature /FeatureName:»SMB1Protocol»
Dism /online /Enable-Feature /FeatureName:»SMB1Protocol-Client»
Dism /online /Enable-Feature /FeatureName:»SMB1Protocol-Server

Также можно включить сервер или клиент SMBv1 с помощью PowerShell:

Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Server

Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client

Если после включения клиента SMBv1, он не используется более 15 дней, он автоматически отключается.

Чтобы выключить SMB1 в Windows, выполните следующие команды DISM:

Dism /online /Disable-Feature /FeatureName:»SMB1Protocol»
Dism /online /Disable-Feature /FeatureName:»SMB1Protocol-Client»
Dism /online /Disable-Feature /FeatureName:»SMB1Protocol-Server»

Или удалите компоненты SMB1Protocol с помощью PowerShell:

Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -Remove

Если вы отключили поддержку SMBv1 клиента в Windows 10/11, то при доступе к сетевой папке на файловом сервере (устройстве), который поддерживает только SMBv1, появятся ошибки вида:

  • 0x80070035 — не найден сетевой путь;
  •  
Вы не можете подключиться к общей папке, так как она небезопасна. Эта общая папка работает по устаревшему протоколу SMB1, который небезопасен и может подвергнуть вашу систему риску атаки. Вашей системе необходимо использовать SMB2 или более позднюю версию.
Unable to connect to file shares because it is not secure. This share requires the obsolete SMB1 protocol, which is not secure and could expose your system to attacks

;

ошибки доступа по smb1 в Windows 10


  • Вы не можете подключиться к общей папке, так как она небезопасна. Эта общая папка работает по устаревшему протоколуSMB1, который небезопасен и может подвергнуть вашу систему риску атаки. Вашей системе необходимо использовать SMB2 или более позднюю версию.
You can’t connect to the file share because it’s not secure. This share requires the obsolete SMB1 protocol, which is unsafe and could expose your system to attack. Your system requires SMB2 or higher).

Также при отключении клиента SMBv1 на компьютере перестает работать служба Computer Browser (Обозреватель компьютеров), которая используется устаревшим протоколом NetBIOS для обнаружения устройств в сети. Для корректного отображения соседних компьютеров в сетевом окружении Windows нужно настроить службу Function Discovery Provider Host.

Включение и отключение SMB 1.0 в Windows Server 2019/2022

В Windows Server 2019 и 2022 компоненты протокола SMBv1 также по умолчанию отключены. Включить SMB v1 в этих версиях можно через Server Manager (компонент SMB 1.0/CIFS File Sharing Support) или с помощью PowerShell.

компонент SMB 1.0/CIFS File Sharing Support в Windows Server 2016

Проверить, включен ли SMB 1.0 в Windows Server с помощью команды PowerShell:

Get-WindowsFeature | Where-Object {$_.name -like «*SMB1*»} | ft Name,Installstate

Get-WindowsFeature SMB1 включить в Windows Server

Чтобы установить клиент SMB 1, выполните команду:

Install-WindowsFeature FS-SMB1-CLIENT

Включить поддержку серверной части SMB 1.0:

Install-WindowsFeature FS-SMB1-SERVER

Затем проверьте, что протокол SMB 1 включен в настройках SMB сервера. Если протокол отключен, включите его:

Get-SmbServerConfiguration | select EnableSMB1Protocol
Set-SmbServerConfiguration -EnableSMB1Protocol $true -Force

Set-SmbServerConfiguration команда EnableSMB1Protocol

Если в EnableSMB1Protocol = True, значит этот сервер поддерживает SMB 1.0 клеинтов.

Чтобы отключить SMBv1 (понадобится перезагрузка), выполните:

Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

Чтобы полностью удалить компоненты SMB1 с диска, выполните:

Uninstall-WindowsFeature -Name FS-SMB1 -Remove

В Windows 7/8 и Windows Server 2008 R2/ 2012 можно отключать службу и драйвер доступа SMBv1 командами:

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

отключение smb1 драйвера и службы

Аудит доступа к файловому серверу по SMB v1.0

Перед отключением и полным удалением драйвера SMB 1.0 на стороне файлового сервера желательно убедится, что в сети не осталось устаревших клиентов, которые используют для подключения протокол SMB v1.0. Чтобы найти таких клиентов, нужно включить аудит доступа к файловому серверу по SMB1 протоколу:

Set-SmbServerConfiguration –AuditSmb1Access $true

Через пару дней откройте на сервере журнал событий Event Viewer -> Applications and Services -> Microsoft -> Windows -> SMBServer -> Audit и проверьте, были ли попытки доступа к ресурсам сервера по протоколу SMB1.

Совет. Список событий из журнала Event Viewer можно вывести командой PowerShell:

Get-WinEvent -LogName Microsoft-Windows-SMBServer/Audit

Проверьте, есть ли в журнале событие с EventID 3000 от источника SMBServer, в котором указано что клиент 192.168.1.10 пытается обратиться к сервере по протоколу SMB1.

SMB1 access
Client Address: 192.168.1.10
Guidance:
This event indicates that a client attempted to access the server using SMB1. To stop auditing SMB1 access, use the Windows PowerShell cmdlet Set-SmbServerConfiguration.

Аудит доступа к шарам по SMB 1.0

Вам нужно найти в сети компьютер или устройство с этим IP адресом. Если возможно обновите на нем ОС или прошивку, до версии поддерживающий, более новые протоколы SMBv2 или SMBv3. Если обновить такой клиент не удастся, придется включить SMBv1 на вашем файловом сервере.

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

Get-ADComputer -Filter {(enabled -eq $True) } | % {Invoke-Command -ComputerName $_.DNSHostName -scriptblock {If ( (Get-ItemProperty -path «HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters»).SMB1 -eq 1 ) {Write-Output «SMBv1 is enabled on ${env:computername}»}}}

Эта команда получит список активных компьютеров в домене с помощью командлета Get-ADComputer. Затем с помощью Invoke-Command выполнит подключение через PowerShell Remoting к каждому компьютеру и проверит включен ли сервис SMB 1.0.

<Отключение SMB 1.0 с помощью групповых политик

Если в вашей сети не осталось устаревших устройств, которые поддерживают только SMB 1.0, нужно полностью отключить эту версию протокола на всех компьютерах. Чтобы предотвратить ручную установку и включение компонентов SMB 1.0 на компьютерах в домене AF, можно внедрить групповую политику, которая будет принудительно отключить протокол SMB 1.0 на всех серверах и компьютерах. Т.к. в стандартных политиках Windows нет политики настройки компонентов SMB, придется отключать его через политику реестра.

  1. Откройте консоль управления Group Policy Management ( gpmc.msc ), создайте новый объект GPO (disableSMBv1) и назначьте его на OU с компьютерами, на которых нужно отключить SMB1;
  2. Перейдите в режим редактирования политики. Выберите Computer Configuration -> Preferences -> Windows Settings -> Registry;
  3. Создайте новый параметр реестра (Registry Item) со следующими настройками:
    Action: Update
    Hive: HKEY_LOCAL_MACHINE
    Key Path: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    Value name: SMB1
    Value type: REG_DWORD
    Value data: 0
    отключить SMB1 сервер групповой политикой

  4. Данная политика отключит службу сервера SMBv1.

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

  • Параметр Start (типа REG_DWORD) со значением 4 в ветке реестра HKLM\SYSTEM\CurrentControlSet\services\mrxsmb10;
  • Параметр DependOnService (типа REG_MULTI_SZ) со значением Bowser, MRxSmb20, NSI (каждое значение с новой строки) в ветке реестра HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation.

групповая политика отключения службы SMBv1 клиента

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

С помощью WMI фильтр GPO можно сделать исключения для определенных версий Windows.

В групповых политиках Security Baseline из Microsoft Security Compliance Toolkit есть отдельный административный шаблон GPO (файлы SecGuide.adml и SecGuide.ADMX), в которых есть отдельные параметры для отключения сервера и клиента SMB:

  • Configure SMB v1 server;
  • Configure SMB v1 client driver.

групповая политика для включения/отключение smbv1 сервера и клиента

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Sharp ar 5320d драйвер windows xp
  • Vmware tools download for windows
  • Какой формат флешки для загрузочной флешки windows 10
  • C json library windows
  • Файл подкачки для 4 гб озу x32 windows 7