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

46,752

Solution 1

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:

Solution 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!

Share:
46,752

Related videos on Youtube

leeand00
Author by

leeand00

Projects jobdb - Creator of Open Source Job Search Document Creator/Tracker http://i9.photobucket.com/albums/a58/Maskkkk/c64nMe.jpg Received my first computer (see above) at the age of 3, wrote my first program at the age of 7. Been hooked on programming ever since.

Updated on September 18, 2022

Comments

  • leeand00
    leeand00 almost 2 years

    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?

    • raja
      raja about 8 years
      Why would you switch to an older version over slow connections?
    • leeand00
      leeand00 about 8 years
      @JimB Because it doesn't work if you don't. The Microsoft KB says to do exactly that.
    • raja
      raja about 8 years
      Can you post that KB? Autotuming can cause performance problems but SMB peformance usually rises as the version gets higher.
    • leeand00
      leeand00 about 8 years
      @JimB I think it's this one: support.microsoft.com/en-us/kb/2696547
    • raja
      raja about 8 years
      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.
    • leeand00
      leeand00 about 8 years
      @JimB Well I'm not making the decisions, I'm just implementing the solution...
    • raja
      raja about 8 years
      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.
    • leeand00
      leeand00 about 8 years
      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
    leeand00 about 8 years
    Do I have to install that?
  • leeand00
    leeand00 about 8 years
    Some of my users are remote it might not be practical...
  • Katherine Villyard
    Katherine Villyard about 8 years
    It depends on your version of PowerShell, I imagine; it's built into Windows 8 and above, at least.
  • leeand00
    leeand00 about 8 years
    Oh I have Windows 7... :p
  • Katherine Villyard
    Katherine Villyard about 8 years
    I don't know about 7; I'd have to look. It might be built-in there, too.
  • Katherine Villyard
    Katherine Villyard about 8 years
    Alas. Windows 8.1 or server 2012. Sorry. :(
  • leeand00
    leeand00 about 8 years
    I couldn't run the suggested command as admin locally or other wise. I'm running powershell 3 0 -1 -1
  • leeand00
    leeand00 about 8 years
    That's kind of unbelievable.
  • Seymour Harding SimRacerSeymou
    Seymour Harding SimRacerSeymou about 7 years
    Get-SmbConnection isn't entirely helpful, as it's listing the current SMB connections and what Dialect (SMB version) they have negotiated between the 2 parties. It isn't showing the client or servers SMB capabilities.
  • Cory Knutson
    Cory Knutson almost 7 years
    That is because sc in Powershell is an Alias for Set-Content. To run this in Powershell, use sc.exe query [...]