其实从2007年开始,SMBv1已经逐渐被SMBv2取代,Microsoft 在 2014 年公开弃用了 SMBv1 协议。
但是因为域、共享服务 等很多Windows比较古老的服务都是最早基于SMBv1开发,且SMBv1算是一个隐姓埋名的协议,所以大多数人并不知晓和清楚。
关联影响比较大的是浏览器服务,资源管理器网络无法再通过旧版 NetBIOS 数据报浏览方法显示 Windows 计算机。
根据微软官网公布的资讯,SMBv1 在 Windows 10 和 Windows Server 2019 及更高版本中具有以下行为:
执行powershell查询:
Get-SmbServerConfiguration | Select EnableSMB1Protocol
执行cmd命令行检测:
sc.exe qc lanmanworkstation
Set-SmbServerConfiguration -EnableSMB1Protocol $false
如果需要启用,则执行:
Set-SmbServerConfiguration -EnableSMB1Protocol $true
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb10 start= auto
可以通过检查当前存储使用情况来排查文件传输速度缓慢的问题。 如果你发现文件传输速度缓慢,可以使用如下方法:
- xcopy /J
- robocopy /J
对于 SMBv3 及更高版本,请确保 SMB 多通道已启用且正常工作。
在 SMB 客户端上,在SMB 中启用大型 MTU,并通过运行以下命令禁用带宽限制:
Set-SmbClientConfiguration -EnableBandwidthThrottling 0 -EnableLargeMtu 1
网络延迟、create 命令和防病毒程序会导致小文件的传输速度变慢。
存储性能问题可能会导致 SMB 服务器上的 CPU 使用率过高。在继续之前,请使用进程资源管理器来查看 srv2.sys 或 ntfs.sys 是否有消耗过多的 CPU 资源。
磁盘 IO 延迟测量的是创建磁盘 IO 请求与完成该请求之间的时间延迟。
在 Perfmon 中测量的 IO 延迟包括在硬件层中花费的所有时间,再加上在 Microsoft 端口驱动程序队列 (Storport.sys for SCSI) 中花费的时间。
在 Perfmon 中,以下计数器显示物理磁盘延迟:
“物理磁盘性能对象”->“Avg. Disk sec/Read 计数器”- 这显示平均读取延迟。
“物理磁盘性能对象”->“Avg. Disk sec/Write 计数器”- 这显示平均写入延迟。
“物理磁盘性能对象”->“Avg. Disk sec/Transfer 计数器”- 这显示读取和写入的组合平均值。
“_Total”实例是计算机中所有物理磁盘的延迟平均值。 其他每个实例表示单个物理磁盘。
要排查此问题,请禁用基于存取的枚举 (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 已启用。
SMB Signing not required漏洞修复方法
关于 Windows 11 的云端备份
Windows 11清除无效、回收站、过期、缓存、补丁更新文件
Windows 11和Windows 2022 TLS/SSL(Schannel SSP)的加密套件
在 Windows 11 上继续使用 Internet Explorer 的方法