默认情况下,WINDOWS Server 和 Windows 中未安装 SMBv1

服务器消息块版本 1 (SMBv1) 协议已弃用,默认情况下不再安装在 Windows 和 Windows Server 的新式版本中。 本文概述了 SMBv1 的删除、其各种 Windows 版本的行为,以及旧版兼容性的替代项。 了解如何解决与 SMBv1 相关的问题,探索最佳做法,并了解其在网络环境中缺失的影响。

SMBv1 的默认行为

由于 Windows 10 版本 1709 和 Windows Server 版本 1709,因此默认情况下不再安装服务器消息块版本 1(SMBv1)网络协议。 从 2007 年开始,SMBv2 和更高版本的协议取代了 SMBv1。 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 专业版版本 1709 在安装干净后默认仍包含 SMBv1 客户端。 如果 SMBv1 客户端在 15 天内没有被使用(不包括计算机关机的时间),它会自动卸载自身。 从 Windows 10 版本 1809 开始,Windows 10 专业版在安装干净后默认不再包含 SMBv1 客户端。

  • 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 客户端或服务器,则会卸载该服务。 如果没有 SMBv1,资源管理器网络将无法再通过旧版 NetBIOS 数据报浏览方法显示 Windows 计算机。

  • SMBv1 仍可在 Windows 10 和 Windows Server 2016 的所有版本中重新安装。

  • 为 Azure 市场创建Microsoft创建的 Windows Server 虚拟机不包含 SMB1 二进制文件,并且无法启用 SMB1。 第三方 Azure 市场 VM 可能包含 SMB1;请联系其供应商以获取信息。

注释

Windows 10 版本 1803 专业版处理 SMBv1 的方式与 Windows 10 版本 1703 和 Windows 10 版本 1607 相同。 此问题已在 Windows 10 版本 1809 中修复。 你仍然可以手动卸载 SMBv1。 但是,在以下情况下,Windows 不会在 15 天后自动卸载 SMBv1:

  • 你执行 Windows 10 版本 1803 的全新安装。
  • 直接将 Windows 10 版本 1607 或 Windows 10 版本 1703 升级到 Windows 10 版本 1803,而无需先升级到 Windows 10 版本 1709。

连接到 SMBv1 设备时出现错误消息

如果尝试连接到仅支持 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:      computer1.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:      computer1.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 本身不再受支持。

SMBv1 的解决方法

应联系仅支持 SMBv1 的产品制造商,并请求支持 SMBv2.02 或更高版本的软件或固件更新。 有关已知供应商及其 SMBv1 要求的当前列表,请参阅以下 Windows 和 Windows Server 存储工程团队博客文章:

SMBv1 产品结算所

如果更新不可用,可以使用以下解决方法来允许旧版应用程序使用 SMBv2 或更高版本。 但是,这些解决方法应仅用作最后手段,并且仅当供应商指出它们是必需的时。

如果无法使用上述任何解决方法,或者应用程序制造商无法提供受支持的 SMB 版本,则可以按照 Windows 中如何检测、启用或禁用 SMBv1、SMBv2 和 SMBv3 中的步骤手动重新启用 SMBv1。

警告

强烈建议不要重新安装 SMBv1。 此较旧的协议具有有关勒索软件和其他恶意软件的已知安全问题。

租赁模式

如果需要 SMBv1 为旧版软件行为提供应用程序兼容性,例如禁用 oplock 的要求,Windows 将提供称为 租赁模式的 SMB 共享标志。 此标志指定共享是否禁用新式 SMB 语义,例如租赁和 oplock。

可以在不使用 oplock 或租用的情况下指定共享,以允许旧版应用程序使用 SMBv2 或更高版本。 若要设置租赁模式,请将 New-SmbShareSet-SmbShare PowerShell cmdlet 与参数一 -LeasingMode None 起使用。 有关详细信息,请参阅 New-SmbShareSet-SmbShare cmdlet 文档。

谨慎

如果供应商指出需要旧版支持,则应仅在第三方应用程序所需的共享上使用此选项。 不要在 Scale-Out 文件服务器使用的用户数据共享或 CA 共享上指定租赁模式。 删除 oplock 和租约会导致大多数应用程序中的不稳定和数据损坏。 租赁模式仅在共享模式下工作。

资源管理器网络浏览

计算机浏览器服务依赖于 SMBv1 协议来填充 Windows 资源管理器网络节点(也称为 网络邻里)。 此旧协议已弃用,不会路由,并且安全性有限。 由于该服务在没有 SMBv1 的情况下无法正常运行,因此会同时将其删除。

但是,如果仍必须使用家庭和小型企业工作组环境中的资源管理器网络来查找不再使用 SMBv1 的基于 Windows 的计算机,请启动函数发现提供程序主机函数发现资源发布服务,然后将其设置为“自动”(延迟启动)。 打开资源管理器网络时,请在出现提示时启用网络发现。

具有这些设置的该子网中的所有 Windows 设备都会显示在“网络”中以供浏览。 此方法使用 WS-DISCOVERY 协议。 如果其他供应商和制造商的设备在 Windows 设备出现后仍未显示在此浏览列表中,请与你的其他供应商和制造商联系。 他们可能禁用此协议,或者他们仅支持 SMBv1。

建议映射驱动器和打印机,而不是启用此功能,因为启用此功能仍需要搜索和浏览设备。 映射的资源更易于定位,需要更少的训练,并且更安全地使用。 如果这些资源通过组策略自动提供,则尤其如此。 管理员可以通过使用 IP 地址、Active Directory 域服务(AD DS)、Bonjour、mDNS、uPnP 等,通过旧计算机浏览器服务以外的方法为位置配置打印机。

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。