windows smb共享的版本控制指协议版本(如smb2.0/smb3.0)协商管理,影响安全性、性能与兼容性;需禁用存在eternalblue漏洞的smb1,推荐启用smb2/smb3并按需配置加密与最大协商版本。
windows smb 共享文件版本控制不是指对共享文件做“历史版本备份”,而是指控制客户端与服务器之间协商使用的 smb 协议版本(如 smb 2.0、smb 3.0、smb 3.1.1)。这个版本直接影响连接安全性、传输性能和兼容性。正确设置可避免因协议不匹配导致的访问失败,也能堵住老旧协议(如 smb1)带来的安全风险。
确认当前启用的 SMB 版本
在任意 Windows 10/11 或 Server 系统上,打开 PowerShell(管理员),运行:
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol, EnableSMB2Protocol, EnableSMB3Protocol
输出中若 EnableSMB1Protocol 为 True,说明 SMB1 已启用——这应被立即禁用;EnableSMB2Protocol 和 EnableSMB3Protocol 均建议保持为 True(SMB3 向下兼容 SMB2,且默认优先协商最高可用版本)。
强制禁用 SMB1(安全必需)
SMB1 存在 EternalBlue 等高危漏洞,微软已弃用。禁用后不影响现代设备互通,仅影响极少数老旧系统(如 Windows XP、部分 NAS 或嵌入式设备)。
- PowerShell(推荐):
Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol -NoRestart - 图形界面:控制面板 → “程序和功能” → “启用或关闭 Windows 功能” → 取消勾选 SMB 1.0/CIFS 文件共享支持
- 组策略(域环境):计算机配置 → 管理模板 → 网络 → Lanman 工作站 → “禁用 SMB1 服务器”设为已启用
限制最高协商版本(按需控制兼容性)
默认情况下,Windows 会协商双方都支持的最高 SMB 版本(如客户端支持 SMB3.1.1、服务端也支持,则自动用 SMB3.1.1)。若需强制限制(例如对接只支持 SMB2 的旧设备),可通过注册表微调:
- 路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters - 新建 DWORD(32位)值:
MinSupportedDialect和MaxSupportedDialect - 取值示例(十六进制):
• SMB2.02 →0x0202
• SMB3.0 →0x0300
• SMB3.1.1 →0x0311 - 设
MaxSupportedDialect = 0x0202即强制最高只用 SMB2,可解决某些老设备连接异常问题
启用 SMB 加密(增强传输安全)
从 SMB3 开始支持端到端加密,即使内网被监听也无法窃取文件内容。适用于敏感数据共享场景:
- PowerShell 命令:
Set-SmbServerConfiguration -EncryptData $true -RejectUnencryptedAccess $true -Force - 效果:所有连接必须使用 SMB3+ 且开启加密,SMB2 客户端将被拒绝
- 注意:macOS 和部分 Linux SMB 客户端需明确支持 SMB3 加密才能正常连接











