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

powershellwindows-server-2008-r2

I am using Windows Server 2008 R2. I want to know which version of SMB is enabled on my server.

I used the following command in PowerShell to know the smb versions installed: sc.exe qc lanmanworkstation

In its output, the DEPENDENCIES shows two versions of SMB : MRxSmb10 and MRxSmb20.

Now the confusion is out of 2 versions installed, which SMB version is enabled on my server? As windows server 2008 R2 does not support get-smbconnection command, I am unable to determine the specific version.

I also checked the registry path HKEY_LOCAL_MACHINE\\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters and there is no entry about SMB version.

Can anyone please tell me how to determine which SMB version is enabled on server if SMB versions are more than one?

Best Answer

If you don't see HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters containing key for SMB1 with REG_DWORD: 0 for disabled, then it is enabled, which adds up with the other method that indicated the lanmanworkstation having dependency for both MRxSmb10 and RxSmb20.

As described in How to detect, enable and disable SMBv1, SMBv2, and SMBv3 section for Windows Server 2008 R2, you can disable SMBv1 with

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

After that, sc.exe query lanmanworkstation should only show MRxSmb20.