踩坑备忘:Win11 24H2 访问 Win10 免密共享,反复弹"需要登录"

| 约 8 分钟
QThinker
QThinker
80后,前地产屌丝,宽客,Coder

环境:客户端 Windows 11 24H2(内部版本 26100)|服务端 Windows 10,已开启文件夹共享并选择"关闭密码保护的共享"
现象:资源管理器访问 \\192.168.x.x 不断弹出"输入网络凭据"登录框,输什么都不对;命令行报 系统错误 5,拒绝访问


一、先说结论

根因不在共享那台电脑,而在客户端。
Windows 11 24H2 把 SMB 客户端的强制签名(RequireSecuritySignature)默认改成了 True,而对方"关闭密码保护的共享"走的是 Guest(来宾)会话——来宾会话没有会话密钥,无法签名,于是被客户端直接拒绝,表现就是反复要求登录。

最终需要三件套配合,缺一不可:

# 配置 作用
1 关闭 SMB 客户端强制签名 让无法签名的来宾会话能建立
2 启用不安全的来宾登录 客户端允许 Guest 方式连接
3 凭据管理器存 guest 凭据 避免客户端拿 Microsoft 账户去试导致弹框

二、排查过程实录

1. 逐项排除客户端常规嫌疑

# 已存凭据(排除陈旧凭据干扰)
cmdkey /list
# 现有映射(排除残留会话)
net use

# SMB 客户端配置(关键输出)
Get-SmbClientConfiguration | Format-List EnableInsecureGuestLogons,EnableSecuritySignature,RequireSecuritySignature

结果:

  • 来宾登录 EnableInsecureGuestLogons : True ✅(之前组策略已启用)
  • 192.168.x.x 无陈旧凭据、无残留映射 ✅
  • 网络配置文件为"专用"(Private)✅
  • 445 端口连通 ✅(Test-NetConnection 192.168.x.x -Port 445 → True)
  • RequireSecuritySignature : True ← 可疑点

2. 复现并定位

net view \\192.168.x.x
# 系统错误 5。拒绝访问。

传输层正常(445 通),错误发生在认证/会话层。24H2 强制签名 + 来宾会话无法签名,与所有症状吻合。

3. 关签名后验证

管理员 PowerShell:

Set-SmbClientConfiguration -RequireSecuritySignature $false -Confirm:$false

随后显式用 guest 建会话成功(exit=0),证明签名正是阻断点。

注意一个细节:此时 net view 仍报错 5——因为它用的是当前登录的 Microsoft 账户去连,对方服务器不认。显式 /user:guest 才通。所以还需要第三步"固定用 guest 连"。

4. 持久化 guest 凭据

net use \\192.168.x.x\IPC$ /delete /y          # 清掉临时会话
cmdkey /add:192.168.x.x /user:guest /pass:""   # 存储空密码 guest 凭据
net view \\192.168.x.x                          # 默认凭据路径直连成功 ✅

重启后资源管理器也会走存储的 guest 凭据,不再弹框。


三、修复步骤汇总(照做即可)

① 关闭 SMB 客户端强制签名(24H2 关键)

管理员 PowerShell 执行:

Set-SmbClientConfiguration -RequireSecuritySignature $false -Confirm:$false

② 启用不安全的来宾登录

两种方式等价(组策略启用的本质就是写注册表):

  • 组策略:gpedit.msc → 计算机配置 → 管理模板 → 网络 → Lanman 工作站 → "启用不安全的来宾登录" → 已启用(写入 HKLM\SOFTWARE\Policies\Microsoft\Windows\LanmanWorkstation!AllowInsecureGuestAuth = 1)
  • 注册表:HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters 下新建 DWORD AllowInsecureGuestAuth = 1

③ 存储 guest 凭据(防止弹框的临门一脚)

cmdkey /add:192.168.x.x /user:guest /pass:""

四、验证清单

Get-SmbClientConfiguration | Format-List RequireSecuritySignature,EnableInsecureGuestLogons
# RequireSecuritySignature : False
# EnableInsecureGuestLogons : True

net use \\192.168.x.x\IPC$ /delete /y   # 删会话模拟重启后的干净状态
net view \\192.168.x.x                  # 能列出共享 = 持久化路径 OK

再用 Shell 接口确认共享可枚举、文件可浏览:

(New-Object -ComObject Shell.Application).NameSpace("\\192.168.x.x").Items() | ForEach-Object { $_.Name }

五、经验总结

  1. "反复要密码"≠服务器要密码,很可能是客户端策略把会话拒了(错误 5 是典型特征)。
  2. 24H2 两个默认值变更要牢记:SMB 客户端强制签名默认开(RequireSecuritySignature=True)、Pro 版不安全来宾登录默认关。免密共享/NAS 打不开,先查这两个。
  3. 来宾会话无法签名:签名要求与 Guest 免密访问天然互斥,二选一。
  4. net view 和资源管理器走的凭据不同:前者用当前账户,存储凭据后才会走 guest。实测通过 ≠ 重启后通过,删掉会话再测一遍才靠谱。
  5. 组策略和注册表是同一个开关的两个入口,不要重复设置;排查时用 Get-SmbClientConfiguration 看生效值最直接。

安全代价与替代方案

  • 关闭强制签名后,局域网内 SMB 报文可被篡改(无完整性保护)。家用可信网段可接受。
  • 更安全的替代:服务端改用真实账号 + 密码共享(开启密码保护共享,用对端登录账户连接),此时签名随 NTLM 会话密钥正常工作,可以把签名要求改回去:
  Set-SmbClientConfiguration -RequireSecuritySignature $true   # 管理员 PowerShell
  • 若哪天又弹登录框:先 net use * /delete 清残留会话,再检查凭据管理器里 192.168.x.x 的 guest 凭据是否还在。
143 2

评论

2
正在加载评论...

发表评论