Before going into details a little back story.
SMB v1 is old proprietary protocol (now open sourced, after it was reverse engineered) and should be avoided if possible. Most of the time we can forget about it especially in recent lights of WannaCry outbreaks. So why do I write about enabling it, right?
When using VLC on my portable devices (iOS and Android TV) after host Windows 10 upgrade to Fall Creators Update did noticed that those devices can’t no longer access shares. When navigating to host, that I know had shares enabled, nothing happened and VLC just displayed “Empty folder”, it didn’t event asked for authentication on that device (accessing shares do require authentication on that host). VLC do use libdsm (Defective SMb)(*1) that probably don’t fully support new SMB protocols. Using Mac as smb host do also cause some issues with SMB but OS update apparently do fix that.
FreeFileSync and syncing with old Mac 10.9.5 (IIRC) caused issues with inability to read / traverse content of directories etc. This was corrected in some macOS update. As far as I know FFS do use native OS calls so issue that I did experienced was mostly on macOS side, but as I said this do affected only old 10.9.5 versions, after updating to recent version issue was resolved. Reason why I did kept that device with so old os version was because QA testing.
More info about issues plagued SMB v1: https://blogs.technet.microsoft.com/filecab/2016/09/16/stop-using-smb1/
NOTE: this is potential security risk and should be avoided if possible.
Enabling SMB v1 is straight forward and fairly simple process:
- Install SMB v1 client and server
To do so go to:
Control Panel -> Programs and Features -> Turn Windows Features on or off
and tick checkbox:
SMB 1.0/CIFS File Sharing Support (including all sub items, servers etc.).
This will install additional required components for Windows.
- Setting up SMB v1
Invoke Windows PowerShell as Administrator and:
a. check SMB status by invoking:
Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol
b. to enable SMB v1
Set-SmbServerConfiguration -EnableSMB1Protocol $true
c. to disable SMB v2
Set-SmbServerConfiguration -EnableSMB2Protocol $false
When enabling SMB v1 without SMB v1 server installed error is issues like:
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-SmbSe
rverConfiguration], CimException
+ FullyQualifiedErrorId : Windows System Error 1243,Set-SmbServerConfiguration
After enabling SMB v1 reboot and check if issue is resolved.
References:
- https://videolabs.github.io/libdsm/
- https://support.microsoft.com/en-gb/help/2696547/how-to-detect-enable-and-disable-smbv1-smbv2-and-smbv3-in-windows-and
- https://blogs.technet.microsoft.com/filecab/2016/09/16/stop-using-smb1/