7

Sometimes over slow connections we switch to an older version of the protocol. I'd like to be able to check and see which version is being used, I only know how to set the version ala:

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

How does one check the version of the protocol being used without using Powershell?

leeand00
  • 4,807
  • 13
  • 64
  • 106
  • Why would you switch to an older version over slow connections? – Jim B Apr 15 '16 at 02:19
  • @JimB Because it doesn't work if you don't. The Microsoft KB says to do exactly that. – leeand00 Apr 15 '16 at 02:20
  • Can you post that KB? Autotuming can cause performance problems but SMB peformance usually rises as the version gets higher. – Jim B Apr 15 '16 at 02:23
  • @JimB I think it's this one: https://support.microsoft.com/en-us/kb/2696547 – leeand00 Apr 15 '16 at 02:26
  • That link tells you how to disable the various protocols but also explain what you lose - IE disabling SMB2 looses the better network performamce,and high latency performance. In fact that one says (correctly) ONLY do this as a temporary troubleshooting measure. – Jim B Apr 15 '16 at 14:30
  • @JimB Well I'm not making the decisions, I'm just implementing the solution... – leeand00 Apr 15 '16 at 14:32
  • what was the problem you were doing this to try to fix? That would be a better question to solve the problem. If anything reducing the SMB version should make life worse for poor network connectivity. – Jim B Apr 15 '16 at 14:44
  • The problem was that their connection would disconnect while they had an office document open; and then they would get a message stating that someone else was editing it. And they would have to contact IT to delete the temp file on the server to free it up again so they could open it again. – leeand00 Apr 15 '16 at 14:47

2 Answers2

8

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:

Katherine Villyard
  • 18,510
  • 4
  • 36
  • 59
2

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!

mwfearnley
  • 757
  • 9
  • 21
DomQ
  • 279
  • 2
  • 6
  • 2
    That is because `sc` in Powershell is an Alias for `Set-Content`. To run this in Powershell, use `sc.exe query [...]` – Cory Knutson Jul 18 '17 at 16:07