直接禁用 smbv1 即可,它与 smbv2/v3 独立控制,关闭后不影响现代共享功能且能防御“永恒之蓝”等高危漏洞;需通过 powershell 或图形界面关闭服务端及客户端组件,并验证返回值为 false。
直接禁用 smbv1 即可,它和 smbv2/v3 是独立控制的,关掉它不影响现代共享功能,还能堵住“永恒之蓝”这类高危漏洞入口。
先确认 SMBv1 是否启用
打开 PowerShell(管理员身份),运行:
Get-SmbServerConfiguration | Select EnableSMB1Protocol
如果返回 True,说明 SMBv1 正在运行;False 则已关闭,无需操作。
用 PowerShell 快速禁用(推荐)
在同一个管理员 PowerShell 窗口中执行:
Set-SmbServerConfiguration -EnableSMB1Protocol $false
- 命令立即生效,但部分场景需重启系统才彻底断开残留连接
- 该操作只影响本机作为 SMB 服务器时响应 SMBv1 请求的能力
- 若还需禁止本机主动发起 SMBv1 连接(如访问旧设备),额外运行:
Set-SmbClientConfiguration -EnableSMB1Protocol $false
通过图形界面关闭(适合不熟悉命令行的用户)
路径:控制面板 → 程序 → 启用或关闭 Windows 功能 → 找到 SMB 1.0/CIFS 文件共享支持 → 取消勾选 → 确定 → 重启电脑
- 此操作同时禁用 SMBv1 的服务端与客户端组件
- 适用于 Windows 10/11 家庭版、专业版等主流版本
- 注意:勾选此项是为兼容老旧设备(如 Windows XP 共享打印机),日常使用不建议开启
禁用后验证是否成功
再次运行:
Get-SmbServerConfiguration | Select EnableSMB1Protocol
输出应为 False。也可配合客户端测试:
- 尝试从另一台仅支持 SMBv1 的老设备(如 XP)访问本机共享,应连接失败
- 用 Wireshark 抓包,过滤 smb && smb.cmd == 0x72(SMBv1 Session Setup),不应再出现请求











