您当前的位置:首页 > 计算机 > 系统应用 > Windows

Windows 10以后的版本默认不会启用SMBv1

时间:04-02来源:作者:点击数:

Windows 10 Fall Creators Update 和 Windows Server 版本 1709 (RS3),默认情况下不再安装服务器消息块版本 1 (SMBv1) 网络协议。

SMBv1的历史故事

其实从2007年开始,SMBv1已经逐渐被SMBv2取代,Microsoft 在 2014 年公开弃用了 SMBv1 协议。

但是因为域、共享服务 等很多Windows比较古老的服务都是最早基于SMBv1开发,且SMBv1算是一个隐姓埋名的协议,所以大多数人并不知晓和清楚。

关联影响比较大的是浏览器服务,资源管理器网络无法再通过旧版 NetBIOS 数据报浏览方法显示 Windows 计算机。

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 将自动卸载它。
  • Windows10 企业版、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 中重新安装。

检查计算机是否启用SMBv1

1,Server端检测SMBv1是否启用

执行powershell查询:

Get-SmbServerConfiguration | Select EnableSMB1Protocol

输出结果如下图:

在这里插入图片描述

状态为False则为未启用状态。

2,客户端检测SMBv1是否启用

执行cmd命令行检测:

sc.exe qc lanmanworkstation
在这里插入图片描述

Windows 如何禁用SMBv1

1,Server端用powershell禁用:
Set-SmbServerConfiguration -EnableSMB1Protocol $false

如果需要启用,则执行:

Set-SmbServerConfiguration -EnableSMB1Protocol $true
2,客户端禁用方法:
1,客户端用Windows cmd指令禁用
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled
1,客户端用Windows cmd指令启用
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb10 start= auto

SMB常见问题排查

1,传输速度缓慢

可以通过检查当前存储使用情况来排查文件传输速度缓慢的问题。 如果你发现文件传输速度缓慢,可以使用如下方法:

  • 尝试对无缓冲的 IO 使用文件复制命令:
 - xcopy /J 
 - robocopy /J
  • 对于 SMBv3 及更高版本,请确保 SMB 多通道已启用且正常工作。
  • 在 SMB 客户端上,在SMB 中启用大型 MTU,并通过运行以下命令禁用带宽限制:
Set-SmbClientConfiguration -EnableBandwidthThrottling 0 -EnableLargeMtu 1
2,小文件的传输速度缓慢

网络延迟、create 命令和防病毒程序会导致小文件的传输速度变慢。

  • SMB 调用 create 命令来请求创建文件。 代码将检查文件是否存在,然后创建该文件。 或者,create命令的某些变体会创建实际文件。每个 create 命令都会在文件系统上生成活动。写入数据后,文件会关闭。
  • 此过程可能会受到网络延迟和SMB 服务器延迟的影响。 造成此延迟的原因是因为 SMB 请求首先会转换为文件系统命令,然后会转换为实际文件系统以完成操作。
  • 防病毒程序运行时,传输速度会继续变慢。 这是因为数据通常被数据包探查器扫描一次,在写入到磁盘时被扫描第二次。在某些情况下,这些操作会重复数千次。 你可能会看到速度小于 1 MB/秒。

SMB 服务器上 CPU 使用率过高

1,由于存储性能问题,CPU 使用率过高

存储性能问题可能会导致 SMB 服务器上的 CPU 使用率过高。在继续之前,请使用进程资源管理器来查看 srv2.sys 或 ntfs.sys 是否有消耗过多的 CPU 资源。

2,磁盘 IO 延迟

磁盘 IO 延迟测量的是创建磁盘 IO 请求与完成该请求之间的时间延迟。

在 Perfmon 中测量的 IO 延迟包括在硬件层中花费的所有时间,再加上在 Microsoft 端口驱动程序队列 (Storport.sys for SCSI) 中花费的时间。

在 Perfmon 中,以下计数器显示物理磁盘延迟:

  • “物理磁盘性能对象”->“Avg. Disk sec/Read 计数器”- 这显示平均读取延迟。
  • “物理磁盘性能对象”->“Avg. Disk sec/Write 计数器”- 这显示平均写入延迟。
  • “物理磁盘性能对象”->“Avg. Disk sec/Transfer 计数器”- 这显示读取和写入的组合平均值。

“_Total”实例是计算机中所有物理磁盘的延迟平均值。 其他每个实例表示单个物理磁盘。

3,枚举文件夹导致 CPU 使用率过高

要排查此问题,请禁用基于存取的枚举 (ABE) 功能。

要确定哪些 SMB 共享启用了 ABE,请运行以下 PowerShell 命令:

Get-SmbShare | Select Name, FolderEnumerationMode
PS C:\Windows\system32> Get-SmbShare | Select Name, FolderEnumerationMode

Name FolderEnumerationMode
---- ---------------------
IPC$          Unrestricted


PS C:\Windows\system32>

Unrestricted = ABE 已禁用。

AccessBase = ABE 已启用。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门