How do you check what version of Server Message Block client a workstation is using on Windows?

If you have Windows 8.1 or 2012, you can use the PowerShell cmdlet Get-SmbConnection for that.

To interpret the answer (copied and pasted from here):

  • 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

Sample output:

ServerName   ShareName   UserName      Credential                 Dialect   NumOpens
----------   ---------   --------      ----------                 -------   --------
SERVER2      f$          DOMAIN\USER   otherdomain\otheruser...   2.02      1
SERVER1      backups     DOMAIN\USER   DOMAIN.LOCAL\USER          3.02      2
SERVER3      users       DOMAIN\USER   DOMAIN.LOCAL\USER          2.02      1

If you don't, perhaps this related question will help:

  • ServerFault, How do I find out what version of SMB is enabled on a remote host?

You can check the status of the SMB 1/2 services, as seen here:

sc query mrxsmb10
sc query mrxsmb20

In PowerShell, you will need to use sc.exe instead of sc!