如何检查工作站在Windows上使用的服务器消息块客户端的版本?

有时通过慢速连接,我们切换到较旧版本的协议。 我想能够检查并查看哪个版本正在使用,我只知道如何设置版本ala:

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

如何在不使用Powershell的情况下检查使用的协议版本?

如果您有Windows 8.1或2012,则可以使用PowerShell cmdlet Get-SmbConnection

解释答案(从这里复制并粘贴):

  • SMB 1 – Windows 2000
  • SMB 2 – Windows Server 2008和Windows Vista SP1
  • SMB 2.1 – Windows Server 2008 R2和Windows 7
  • SMB 3.0 – Windows Server 2012和Windows 8

示例输出:

 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 

如果你不这样做,也许这个相关的问题将有所帮助:

  • ServerFault, 如何找出在远程主机上启用了哪个版本的SMB?

如这里所见:

 sc query mrxsmb10 sc query mrxsmb20 

💡出于某种原因,这个命令只适用于普通的旧“cmd”,而不是PowerShell!