-
Notifications
You must be signed in to change notification settings - Fork 3
SMB Basics
Server Message Block (SMB) is a network file system protocol. It converts file system calls and data into network packets, which are passed between two computers.
SMB has a number of dialects. Each dialect is a variation of the SMB protocol; adding things like security updates, new feature, performance optimizations and so on.
Various dialects have been grouped together into versions of SMB. This is done to simplify discussing and marketing SMB.
It is best to ignore the operating system name when thinking about SMB server and SMB client. The same device can be both SMB server and SMB client at the same time.
The SMB Server is always the device hosting the file system. This is the device where the network share is created and the physical storage is attached, either directly or remotely via something like a SAN.
This can cause confusion with Windows OS naming, because Windows 10/11, which are Windows clients, can also be an SMB server if you share a folder. Likewise, Windows Server can be an SMB Client.
In Windows this is called the Server service. The registry/official name is LanmanServer, which comes from Windows old SMB1 roots. Lanman was one of the original SMB protocol dialect names.
This is the device accessing the remote file system. Or, the system which maps the network drive.
In Windows this is called the Workstation service. The registry/official name is LanmanWorkstation, again coming from Windows old SMB1 roots.
SMB1 is a term used for the original dialects of SMB. This is a group of all the pre-MS-SMB2 dialects.
Microsoft has deprecated SMBv1 and is in the process of removing it from Windows. The short version of why has to do with security. SMBv1 is about 40 years old and hasn't been updated in over 25 years (as of 2022). It is a big gaping security hole on networks, as WannaCry and its variants showed. Plus, SMB1 is all plain text, which cannot be used on secured networks.
SMB1 is also deprecated in Samaba, starting with version 4.11. SMB1 is also disabled by default on macOS 10.15 (Catalina) and newer.
While it is possible to enable SMB1 to access legacy devices, it is not recommended. Please considered updating the legacy devices whenever possible.
SMB2 is based on an open protocol specification maintained by Microsoft called MS-SMB2.
SMB2 introduced a number of network and performance optimizations, plus a number of security updates. SMB2 was a rewrite of SMB1 for modern networks and broadband Internet. Though the basic premise of how SMB1 works is shared in SMB2.
SMB3 and its dialects belongs to the MS-SMB2 protocol specification family. The current version, SMB 3.1.1, was designed to be modified in a way that new dialects would not be needed for quite some time.
On a historical note: There was a large change made to MS-SMB2 after the SMB2 dialect 2.1 was released, adding a number of data center centric features. SMB 3.0 was originally called SMB 2.2, and you can still see SMB 2.2 referenced in some old documents online. Microsoft marketing decided it should be named SMB3 to denote a major update to the protocol.
Development on this project has ended in a pre-release state. Please use with extreme caution! |
This project can be used AS-IS, with no warranties, guarantees, or support of any kind! A registry setting backup file is created prior to any change being committed. Use that reg file to restore the previous state, then restart the Server (LanmanServer) service to restore the old security state. |
📝 NOTE |
---|
The -ComputerName parameter is currently not supported! Please use PSRemoting to manage servers remotely. |