Q: How can I quickly check what version of SMB is being used between my machine and the server?
A: There are now several different versions (or dialects) of the SMB protocol that were introduced with different versions of Windows:
- SMB 1 - Windows 2000
- SMB 2 - Windows Server 2008 and WIndows Vista SP1
- SMB 2.1 - Windows Server 2008 R2 and Windows 7
- SMB 3.0 - Windows Server 2012 and Windows 8
The version of SMB used between a client and the server will be the highest dialect supported by both the client and server.
This means if a Windows 8 machine is talking to a Windows 8 or Windows Server 2012 machine, it will use SMB 3.0. If a Windows 8 machine is talking to Windows Server 2008 R2, then the highest common level is SMB 2.1.
To check which dialect version you are using, run the the PowerShell cmdlet
Get-SmbConnection
which will show the SMB connections and the dialect that is being used. Below is a sample execution.
PS C:\Windows\system32> Get-SmbConnection ServerName ShareName UserName Credential Dialect NumOpens ---------- --------- -------- ---------- ------- -------- savdal08r2 c$ SAVILLTEC... SAVILLTEC... 2.10 1 savdalfs01 c$ SAVILLTEC... SAVILLTEC... 3.00 1 savdalhv01 software SAVILLTEC... SAVILLTEC... 3.00 1
Notice in this example that connections to servers savdalfs01 and savdalhv01 are using SMB version 3.0, while the connection to savdal08r2 (which is a Windows Server 2008 R2 server) uses SMB version 2.1.