概要
由于 Windows 10 Fall Creators Update 和 Windows Server 版本 1709(RS3),因此默认情况下不再安装服务器消息块版本 1(SMBv1)网络协议。 从 2007 年开始,SMBv2 和更高版本的协议取代了它。 Microsoft 2014 年公开弃用 SMBv1 协议。
SMBv1 在 Windows 10 和 Windows Server 2019 及更高版本中具有以下行为:
- SMBv1 现在同时具有可以单独卸载的客户端和服务器子功能。
- Windows 10 企业版、Windows 10 教育版和 Windows 10 专业版工作站在安装干净后默认不再包含 SMBv1 客户端或服务器。
- 安装干净后,Windows Server 2019 及更高版本默认不再包含 SMBv1 客户端或服务器。
- 安装干净后,Windows 10 家庭版和 Windows 10 专业版默认不再包含 SMBv1 服务器。
- Windows 11 在安装干净后默认不包含 SMBv1 服务器或客户端。
- 安装干净后,Windows 10 家庭版和 Windows 10 专业版仍默认包含 SMBv1 客户端。 如果 SMBv1 客户端在 15 天内没有被使用(不包括计算机关机的时间),它会自动卸载自身。
- Windows 10 家庭版和 Windows 10 专业版的就地升级和预览体验成员外部测试版最初不会自动删除 SMBv1。 Windows 会评估 SMBv1 客户端和服务器的使用情况,如果其中任一客户端和服务器未总共使用 15 天(不包括计算机关闭的时间),Windows 将自动卸载它。
- Windows 10 企业版、Windows 10 教育版和 Windows 10 工作站专业版的就地升级和预览体验成员外部测试版不会自动删除 SMBv1。 管理员必须决定在这些托管环境中卸载 SMBv1。
- 15 天后自动移除 SMBv1 是一次性操作。 如果管理员重新安装 SMBv1,则不会再尝试卸载它。
- SMB 版本 2.02、2.1、3.0、3.02 和 3.1.1 功能仍完全受支持,并默认包含在 SMBv2 二进制文件中。
- 由于计算机浏览器服务依赖于 SMBv1,因此如果卸载 SMBv1 客户端或服务器,则会卸载该服务。 这意味着资源管理器网络无法再通过旧版 NetBIOS 数据报浏览方法显示 Windows 计算机。
- SMBv1 仍可在 Windows 10 和 Windows Server 2016 的所有版本中重新安装。
- 为 Azure 市场Microsoft创建的 Windows Server 虚拟机不包含 SMB1 二进制文件,也不能启用 SMB1。 第三方 Azure 市场 VM 可能包含 SMB1,请与其供应商联系以获取信息。
从 Windows 10 版本 1809(RS5)开始,Windows 10 专业版在安装干净后默认不再包含 SMBv1 客户端。 版本 1709 中的所有其他行为仍适用。
注释
Windows 10 版本 1803 (RS4) Pro 处理 SMBv1 的方式与 Windows 10 版本 1703 (RS2) 和 Windows 10 版本 1607 (RS1) 相同。 此问题已在 Windows 10 版本 1809(RS5)中修复。 你仍然可以手动卸载 SMBv1。 但是,在以下情况下,Windows 不会在 15 天后自动卸载 SMBv1:
- 你执行 Windows 10 版本 1803 的全新安装。
- 直接将 Windows 10 版本 1607 或 Windows 10 版本 1703 升级到 Windows 10 版本 1803,而无需先升级到 Windows 10 版本 1709。
如果尝试连接到仅支持 SMBv1 的设备,或者这些设备尝试连接到你,可能会收到以下错误消息之一:
You can't connect to the file share because it's not secure. This share requires the obsolete SMB1 protocol, which is unsafe and could expose your system to attack.
Your system requires SMB2 or higher. For more info on resolving this issue, see: https://go.microsoft.com/fwlink/?linkid=852747
The specified network name is no longer available.
Unspecified error 0x80004005
System Error 64
The specified server cannot perform the requested operation.
Error 58
如果远程服务器需要来自此客户端的 SMBv1 连接,并且安装了 SMBv1 客户端,则会记录以下事件。 此机制会审核 SMBv1 的使用,并且还由自动卸载程序用来设置由于缺少使用而删除 SMBv1 的 15 天计时器。
Log Name: Microsoft-Windows-SmbClient/Security
Source: Microsoft-Windows-SMBClient
Date: Date/Time
Event ID: 32002
Task Category: None
Level: Info
Keywords: (128)
User: NETWORK SERVICE
Computer: junkle.contoso.com
Description:
The local computer received an SMB1 negotiate response.
Dialect:
SecurityMode
Server name:
Guidance:
SMB1 is deprecated and should not be installed nor enabled. For more information, see https://go.microsoft.com/fwlink/?linkid=852747.
如果远程服务器需要来自此客户端的 SMBv1 连接,并且未安装 SMBv1 客户端,则会记录以下事件。 此事件用于显示连接失败的原因。
Log Name: Microsoft-Windows-SmbClient/Security
Source: Microsoft-Windows-SMBClient
Date: Date/Time
Event ID: 32000
Task Category: None
Level: Info
Keywords: (128)
User: NETWORK SERVICE
Computer: junkle.contoso.com
Description:
SMB1 negotiate response received from remote device when SMB1 cannot be negotiated by the local computer.
Dialect:
Server name:
Guidance:
The client has SMB1 disabled or uninstalled. For more information: https://go.microsoft.com/fwlink/?linkid=852747.
这些设备不太可能运行 Windows。 它们更有可能运行较旧版本的 Linux、Samba 或其他类型的第三方软件来提供 SMB 服务。 通常,这些版本的 Linux 和 Samba 本身不再受支持。
注释
Windows 10 版本 1709 也称为“Fall Creators Update”。
详细信息
若要解决此问题,请联系仅支持 SMBv1 的产品制造商,并请求支持 SMBv2.02 或更高版本的软件或固件更新。 有关已知供应商及其 SMBv1 要求的当前列表,请参阅以下 Windows 和 Windows Server 存储工程团队博客文章:
租赁模式
如果需要 SMBv1 来为旧版软件行为提供应用程序兼容性,例如要求禁用 oplock,则 Windows 会提供称为“租赁模式”的新 SMB 共享标志。 此标志指定共享是否禁用新式 SMB 语义,例如租赁和 oplock。
可以在不使用 oplock 或租用的情况下指定共享,以允许旧版应用程序使用 SMBv2 或更高版本。 为此,请将 New-SmbShare 或 Set-SmbShare PowerShell cmdlet 与 -LeasingMode None 参数一起使用。
注释
如果供应商指出需要此选项,则只应对第三方应用程序要求以支持旧版的共享使用此选项。 不要在 Scale-Out 文件服务器使用的用户数据共享或 CA 共享上指定租赁模式。 这是因为删除 oplock 和租赁会导致大多数应用程序中的不稳定和数据损坏。 租赁模式仅在共享模式下工作。 它可以被任何客户端操作系统使用。
资源管理器网络浏览
计算机浏览器服务依赖于 SMBv1 协议来填充 Windows 资源管理器网络节点(也称为“网络邻居”)。 此旧协议已弃用,不会路由,并且安全性有限。 由于该服务在没有 SMBv1 的情况下无法正常运行,因此会同时将其删除。
但是,如果仍必须使用家庭和小型企业工作组环境中的资源管理器网络来查找基于 Windows 的计算机,则可以在不再使用 SMBv1 的基于 Windows 的计算机上执行以下步骤:
启动“函数发现提供程序主机”和“函数发现资源发布”服务,然后将其设置为“自动”(延迟启动)。
打开资源管理器网络时,请在出现提示时启用网络发现。
具有这些设置的该子网中的所有 Windows 设备现在将显示在“网络”中以供浏览。 这使用 WS-DISCOVERY 协议。 如果其他供应商和制造商的设备在 Windows 设备出现后仍未显示在此浏览列表中,请与你的其他供应商和制造商联系。 他们可能禁用此协议,或者他们仅支持 SMBv1。
注释
建议映射驱动器和打印机,而不是启用此功能,因为启用此功能仍需要搜索和浏览设备。 映射的资源更易于定位,需要更少的训练,并且更安全地使用。 如果这些资源通过组策略自动提供,则尤其如此。 管理员可以通过使用 IP 地址、Active Directory 域服务(AD DS)、Bonjour、mDNS、uPnP 等,通过旧计算机浏览器服务以外的方法为位置配置打印机。
如果无法使用上述任何解决方法,或者应用程序制造商无法提供受支持的 SMB 版本,则可以按照 Windows 中如何检测、启用或禁用 SMBv1、SMBv2 和 SMBv3 中的步骤手动重新启用 SMBv1。
重要
强烈建议不要重新安装 SMBv1。 这是因为此较旧的协议存在有关勒索软件和其他恶意软件的已知安全问题。
Windows Server 最佳做法分析器消息传送
Windows Server 2012 及更高版本的服务器操作系统包含文件服务器的最佳实践分析器(BPA)。 如果已按照正确的联机指南卸载 SMB1,则运行此 BPA 将返回一条相互矛盾的警告消息:
Title: The SMB 1.0 file sharing protocol should be enabled
Severity: Warning
Date: 3/25/2020 12:38:47 PM
Category: Configuration
Problem: The Server Message Block 1.0 (SMB 1.0) file sharing protocol is disabled on this file server.
Impact: SMB not in a default configuration, which could lead to less than optimal behavior.
Resolution: Use Registry Editor to enable the SMB 1.0 protocol.
重要
应忽略此特定 BPA 规则的指南,它已弃用。 在 2022 年 4 月的累积更新中,Windows Server 2022 和 Windows Server 2019 首次纠正了该伪错误。 重复:不启用 SMB 1.0。