![强制开启文件和打印机共享](https://linux22.com/image/1533859/%E5%BC%BA%E5%88%B6%E5%BC%80%E5%90%AF%E6%96%87%E4%BB%B6%E5%92%8C%E6%89%93%E5%8D%B0%E6%9C%BA%E5%85%B1%E4%BA%AB.png)
我正在尝试在朋友的计算机上设置文件共享,他使用的是 Windows 7 64 位旗舰版。在高级共享设置中,我选择单选按钮“打开文件和打印机共享”,然后单击“保存更改”。但是当我返回屏幕时,它又恢复为关闭状态。
我在网上搜索,发现很多人都面临着类似的问题,并且我尝试了很多步骤,例如关闭 Windows 防火墙、netsh 命令、检查防火墙中的预定义规则、启动服务器服务和家庭组侦听器服务、验证所有必需的服务是否已启动、组策略编辑器、运行疑难解答程序等,但在我看来似乎没有任何作用。
尽管网络发现已打开,但我无法在“网络位置”中看到这台计算机。该计算机使用无线连接连接到互联网。家庭组疑难解答程序显示“某些家庭组问题与网络有关”,但网络疑难解答程序未发现任何问题。
没有工具可以强制打开此设置吗?
非常感谢大家的帮助。我已经在这个简单却棘手的问题上花了很多时间。
谢谢。
编辑1:
我记得在安装驱动程序时通过 DriverPack 在线工具关闭了 SMB。这可能是原因吗?如果是,我该如何重新启用它而不重新安装操作系统?
答案1
我的问题终于在几个小时后得到解决,无需重新安装操作系统或返回到以前的还原点。
执行此操作的命令序列如下所示。我在 Windows PowerShell 中运行它们(右键单击->以管理员身份运行)
在 SMB 服务器上启用 SMBv1:
设置项目属性-路径“HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters”SMB1-类型 DWORD-值 1-强制
在 SMB 服务器上启用 SMBv2 和 SMBv3:
设置项目属性-路径“HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters”SMB2-类型 DWORD-值 1-强制
重启计算机
在 SMB 客户端上启用 SMBv1:
a)sc.exe 配置 lanmanworkstation 依赖= bowser/mrxsmb10/mrxsmb20/nsi
b) sc.exe 配置 mrxsmb10 启动=自动
在 SMB 客户端上启用 SMBv2 和 SMBv3:
a)sc.exe 配置 lanmanworkstation 依赖= bowser/mrxsmb10/mrxsmb20/nsi
b) sc.exe 配置 mrxsmb20 启动=自动
重启计算机
所有上述命令均在 Microsoft KB 2696547 文章中给出:https://support.microsoft.com/en-ie/help/2696547/how-to-enable-and-disable-smbv1-smbv2-and-smbv3-in-windows-and-windows-server。我之前也尝试过这些命令,但忘记为 SMB 客户端运行上面的命令 4 和 5。现在运行完所有命令后,问题就解决了!
希望有人觉得它有用,并节省几个小时的时间和无尽的挫败感。
答案2
有时,问题是由于服务已停止或禁用。正如您所提到的,设置会启用并立即禁用,这表明了这一点。请确保已启用以下服务(前 5 个服务应设置为自动)并正在运行:
Workstation
Server
HomeGroup Provider
HomeGroup Listener
Routing and Remote Access
Remote Procedure Call
Function Discovery Resource Publication
Function Discovery Provider Host
答案3
此解决方案可能有效,如另一篇文章中所述这里,尽管你可能已经尝试过其中的大部分。我在这里重写了帖子的步骤。
使用管理员命令提示符使用以下两个命令:
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=Yes
netsh advfirewall set currentprofile state on
另外,虽然我推荐前者,但您也可以使用 Windows 界面进行操作。事实上,如果您愿意,您可以同时使用这两种方法(首先从这些步骤开始,然后尝试通过网络和共享中心,然后执行上述步骤,以获得最佳效果。)
- 打开运行(Win+R),然后输入
wf.msc
- 导航到“入站规则”,然后在按字母顺序排列的列表中查找、选择并突出显示所有以“文件和打印机共享...”开头的规则。右键单击所选内容并选择“启用规则”。
- 与 2 相同,但使用“出站规则”。导航到“出站规则”,然后在按字母顺序排列的列表中查找、选择并突出显示所有以“文件和打印机共享...”开头的规则。右键单击所选内容并选择“启用规则”。
对于 Windows 8 或 10 用户:如果您认为已禁用 SMB,请在 Powershell(以管理员身份)运行这些命令,然后执行上述步骤。
Set-SmbServerConfiguration -EnableSMB1Protocol $true
Set-SmbServerConfiguration -EnableSMB2Protocol $true
对于 Windows 7 用户:按照 AllSolutions 的答案中所述进行操作。
您还可以使用以下方法检查其状态:
Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol
答案4
我所负责的一家中小企业的一台计算机上就发生了这种情况。
我不得不返回“Windows 功能”菜单,然后“重新”检查 SMB 1.0/CIFS 客户端,它是 SMB 1.0/CIFS 文件共享下的子项
我无法真正解释为什么该行项目被“取消”选中。据我所知,最终用户不是那种会随意浏览高级 Windows 设置的用户
可能是黑客?但如果是这样,那就很奇怪了,因为企业并不是一个引人注目的目标,而且网络上还有许多其他 PC 可能是优先级更高的目标(但价值仍然很低)
无论如何,可能需要检查一下,因为它有效,而我在网上看到的所有顶级建议都是尝试运行 CMD 和 Powershell 命令,但这些命令没有任何作用。这是有道理的,因为它们没有“安装” SMB/CIFS