最近购买了新的android TV盒子,然后安装了KODI,使用过程当中发现不能通过smb协议发现家中局域网下的电影服务器,从而不能正常观看电影和使用KODI。
家中局域网其他电脑和笔记本是可以通过smb协议访问这台服务器和发现这台服务器的,但是KODI偏偏不能。这就很奇怪了。
通过一顿搜索发现,应该是KODI所能支持的smb协议版本的问题上,我看官方一直都是使用SMB 1.0版本。那么是不是我的服务器系统在升级WIN7或者WIN10过程中关闭了 SMB 1.0/CIFS File Sharing Support的功能。通过一顿设置,验证了我的发现是正确的。终于找到了解决局域网其它电脑能发现共享的服务器smb协议,而KODI却不能通过smb协议发现局域网共享的电脑服务器的解决方法。
下面分别详述下Windows7和Windows10下面,KODI发现连接不了smb共享协议局域网的解决办法:
Win10解决方法:
打开控制面板中的“添加删除程序功能”模块,或者在 Windows 开始旁边的搜索框中输入“Turn Windows feature on or off”并找到控制面板的最佳匹配项。
在 Windows 功能中找到 SMB 1.0/CIFS File Sharing Support 并激活,Windows 会安装相应的文件。重启 Win10 之后,就能重新支持 Kodi 采用的旧版 SMB 协议。
Win7解决方法:
通过注册表方式修改:在左下角菜单栏输入框内输入“regedit”打开注册表编辑器,按下面项目修改。建议两个协议smb1.0和2.0都开启。
若要在 SMB 服务器上启用或禁用 SMBv1,请配置以下注册表项:
注册表子项:
HKEY_LOCAL_MacHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
注册表项: SMB1
REG_DWORD: 0 = 已禁用
REG_DWORD: 1 = 已启用
默认值: 1 = 已启用(未创建注册表项)
若要在 SMB 服务器上启用或禁用 SMBv2,请配置以下注册表项:
注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
注册表项: SMB2
REG_DWORD: 0 = 已禁用
REG_DWORD: 1 = 已启用
默认值: 1 = 已启用(未创建注册表项)
注意 进行这些更改后,必须重启计算机。
此方法需要 PowerShell 2.0 或更高版本的 PowerShell。管理员运行。
SMB 服务器上的 SMB v1
检测:
Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
默认配置 = 已启用(未创建注册表项),所以不会返回 SMB1 值。
禁用:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 –Force
启用:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 –Force
注意进行这些更改后,必须重启计算机。
SMB 服务器上的 SMB v2/v3
检测:
Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
禁用:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 –Force
启用:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 –Force
注意进行这些更改后,必须重启计算机。