如何检查在 Windows Server 2008 R2 上启用了哪个 SMB 版本

How to check which SMB Version is enabled on Windows Server 2008 R2

我想查找在 Windows Server 2008 R2 上启用了哪个版本的 SMB。

我在 PowerShell 中使用了以下命令来了解安装的 smb 版本:

sc.exe qc lanmanworkstation

在其输出中,DEPENDENCIES 显示了两个版本的 SMB:

现在混淆了安装的 2 个版本,我的服务器上启用了哪个 SMB 版本?由于Server 2008 R2不支持Get-SMBConnection具体版本我无法确定。

我也检查了注册表路径,没有关于SMB版本的条目。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters 

如果 SMB 版本不止一个,谁能告诉我如何确定服务器上启用了哪个 SMB 版本?

回答你的问题。由于您发现 win2008R2 不支持 Get-SMBConnection,因此最好的方法是找出哪些驱动程序是 运行:

我已经用我们的win2008R2查过了(看下面的例子)。如果您发现 STATE4 RUNNING 而不是 smb 版本处于活动状态并且 "running"

PS U:\> sc.exe query mrxsmb10

SERVICE_NAME: mrxsmb10
        TYPE               : 2  FILE_SYSTEM_DRIVER
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

PS U:\> sc.exe query mrxsmb20

SERVICE_NAME: mrxsmb20
        TYPE               : 2  FILE_SYSTEM_DRIVER
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

这意味着 两个 SMB 版本都处于活动状态并且 运行。