Microsoft Networking -- SMB configuration in Windows 10

Metanis

Well-Known Member
Reaction score
879
Location
Medford, WI, USA
Since upgrading to Windows 10 I've experienced network browsing issues here in my home/office/lab gigabit ethernet environment. After troubleshooting and experimentation I wanted to share a tip that hasn't seen wide dissemination.

Windows 10 (like 8.0, 8.1, and Server 2012 and 2012R2) defaults to SMB 3.0. Server Message Block is the higher-level protocol that Microsoft uses for file sharing. Windows 7 and Server 2008 used SMB 2.1. Windows Vista used 2.0 and Windows NT and XP used 1.0. This is important for file sharing and computer browsing because machines won't "see" each other if they are using different versions of SMB.

Microsoft defaults Windows 10 to using the 3.0 version EVEN if the the underlying network is comprised of older machines and servers. However, Windows 10 ships with SMB 1.0/CIFS support as an optional feature. If you need to interact with older network clients or servers install the SMB 1.0 feature using the Programs and Features module in the Control Panel. I found however that installing it wasn't always enough to ensure the Win10 machines could browse the network.

Keep in mind that every Windows machine is both a network client and a network server. Also, for the sake of configuration, SMB 2 and SMB 3 are married. You can configure SMB 1 separately, but when you configure SMB 2 you also get SMB 3 on a Win8 or 10 platform. The following commands executed in an administrative command prompt on your Win 10 machine will enable it to communicate in every flavor of SMB.

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

sc.exe config mrxsmb10 start= auto

sc.exe config mrxsmb20 start= auto

reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v SMB1 /t REG_DWORD /d 1 /f

reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v SMB2 /t REG_DWORD /d 1 /f

powershell set-smbserverconfiguration -enablesmb1protocol $true

powershell set-smbserverconfiguration -enablesmb2protocol $true
 
Since upgrading to Windows 10 I've experienced network browsing issues here in my home/office/lab gigabit ethernet environment. After troubleshooting and experimentation I wanted to share a tip that hasn't seen wide dissemination.

Windows 10 (like 8.0, 8.1, and Server 2012 and 2012R2) defaults to SMB 3.0. Server Message Block is the higher-level protocol that Microsoft uses for file sharing. Windows 7 and Server 2008 used SMB 2.1. Windows Vista used 2.0 and Windows NT and XP used 1.0. This is important for file sharing and computer browsing because machines won't "see" each other if they are using different versions of SMB.

Microsoft defaults Windows 10 to using the 3.0 version EVEN if the the underlying network is comprised of older machines and servers. However, Windows 10 ships with SMB 1.0/CIFS support as an optional feature. If you need to interact with older network clients or servers install the SMB 1.0 feature using the Programs and Features module in the Control Panel. I found however that installing it wasn't always enough to ensure the Win10 machines could browse the network.

Keep in mind that every Windows machine is both a network client and a network server. Also, for the sake of configuration, SMB 2 and SMB 3 are married. You can configure SMB 1 separately, but when you configure SMB 2 you also get SMB 3 on a Win8 or 10 platform. The following commands executed in an administrative command prompt on your Win 10 machine will enable it to communicate in every flavor of SMB.

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

sc.exe config mrxsmb10 start= auto

sc.exe config mrxsmb20 start= auto

reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v SMB1 /t REG_DWORD /d 1 /f

reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v SMB2 /t REG_DWORD /d 1 /f

powershell set-smbserverconfiguration -enablesmb1protocol $true

powershell set-smbserverconfiguration -enablesmb2protocol $true
 
C:\WINDOWS\system32>powershell set-smbserverconfiguration -enablesmb1protocol $true
Confirm
Are you sure you want to perform this action?
Performing operation ‘Modify’ on Target ‘SMB Server Configuration’.
[Y] Yes [A] Yes to All [N] No [L] No to All Suspend [?] Help (default is “y”): y
set-smbserverconfiguration : The specified service does not exist.

At line:1 char:1

+set-smbserverconfiguration -enablesmb1protocol $true

+ CategoryInfo :NotSpecified: (MSFT_SmbServerConfiguration:ROOT/Microsoft?...erConfiguration) [Set-SmbServerConfiguration], CimException

+ FullyQualifiedErrorID : Windows System Error 1243,Set-SmbServerConfiguration
 
Last edited by a moderator:
Back
Top