概要
本文可帮助你解决在 Windows上访问服务器消息块(SMB)文件共享时发生的访问被拒绝错误。 它提供分步指导,帮助识别并解决常见原因,包括较新版本的 Windows 中的安全更改以及配置不匹配。 这些解决方案有助于确保对共享文件夹的安全无缝访问,提高工作效率并减少故障排除时间。 使用 “确定原因第一 部分”确定适当的解决方法。
Important
从 Windows 11 版本 24H2 和 2025 Windows Server开始,默认情况下会强制实施多个 SMB 安全功能。 如果在 操作系统升级后 开始出现“访问被拒绝”,且该共享之前可正常访问,请先查看 不同操作系统版本的行为变更。
现象
连接到Windows文件服务器上的共享文件夹、第三方设备或网络连接存储(NAS)设备时,会出现以下一个或多个症状:
Access is denied.或You do not have permission to access \\server\share.You can't access this shared folder because your organization's security policies block unauthenticated guest access.- 映射失败并出现
System error 5(net use)或状态代码,例如0x80070035(找不到网络路径)或STATUS_ACCESS_DENIED (0xC0000022)。 - 在升级到 Windows 11 版本 24H2 或 Windows Server 2025 之前连接正常工作,现在失败。
因操作系统版本而异的行为
大多数新式访问被拒绝的情况都是由默认安全更改而不是错误配置引起的。 首先检查这些更改。
| 更改 | 默认开始于 | 适用时的症状 |
|---|---|---|
| 已禁用不安全的(未经身份验证的)来宾访问 | Windows 10 1709 / Windows 11 (专业, 企业, 教育) / Windows Server | "…安全策略阻止未经身份验证的来宾访问“;SMBClient 事件 ID 31017 |
| 需要 SMB 签名(入站和出站) | Windows 11 24H2 / Windows Server 2025 | 拒绝与不支持签名的设备的连接 |
| SMB 客户端现已支持阻止 NTLM;NTLM 受限 | windows 11 24H2 | 无法访问无法使用 Kerberos 的 IP 地址、工作组或 NAS 目标 |
| SMB 身份验证速率限制器 | Windows Server 2022+ | 多次登录失败后,后续登录尝试会被延迟(约 2 秒),这可能看起来像是账户被锁定或响应缓慢 |
首先确定原因
在 SMB 客户端 上运行这些检查以确定适用条件:
# What error and target?
net use
# Existing/attempted SMB sessions and dialect
Get-SmbConnection
# Client security posture (signing, guest, NTLM, encryption)
Get-SmbClientConfiguration
另请查看事件查看器>应用和服务日志>Microsoft>Windows>SMBClient(连接 和安全通道)。 事件 ID 和消息直接指向本文中所述的分支。
原因和解决方法
1.未经身份验证的来宾访问被阻止(新式客户端上最常见的)
适用于以下情况: 消息提到“未经身份验证的来宾访问”,或 SMBClient 记录 事件 ID 31017。 服务器或 NAS 接受来宾,但默认情况下Windows不再允许来宾登录。
分辨率: 使用 有效的凭据 连接到服务器或 NAS,而不是依赖于来宾访问。 不要将不安全的来宾登录重新启用为修复程序,除非是暂时的、风险接受的解决方法,因为它会将客户端暴露在恶意服务器和中间人攻击中。 有关详细信息和(不建议)策略替代,请参阅 在 SMB2 和 SMB3 中启用不安全的来宾登录。
2. 需要 SMB 签名,但目标不支持 SMB 签名
适用于以下情况:共享位于第三方服务器或 NAS 上,并且客户端Windows 11 24H2/Windows Server 2025,其中默认需要签名。
分辨率: 在服务器或 NAS 上启用 SMB 签名(首选)。 如果设备不支持签名,在更改客户端要求之前评估安全影响。 请参阅控制 SMB 签名行为以及SMB 安全强化中的概述。
3. NTLM 被阻止或不可用
**适用于以下情况:**在已配置 SMB NTLM 阻止的客户端上,通过 IP 地址 连接、连接到 工作组 设备,或连接到无法使用 Kerberos 的 NAS。
分辨率: 通过服务器 支持 Kerberos 的名称 (FQDN)而不是 IP 进行连接,确保名称解析和 SPN 正确,或为所需的旧目标配置 NTLM 异常列表。 请参阅 通过 SMB 阻止 NTLM 身份验证。
4. 被 SMB 身份验证速率限制器限流的重复失败
适用于以下情况:多次登录尝试失败后,Windows Server 2022+ 上的间歇性访问被拒绝或身份验证速度缓慢。
解决方法: 解决根本的凭据错误或映射问题。 仅当限制器影响了合法的高流量场景时,才调整或禁用它。 请参阅 配置 SMB 身份验证速率限制程序。
5. 共享或 NTFS 权限不匹配(包括基于访问的枚举)
在以下情况下适用: 当其他用户或组成功时拒绝特定用户或组,或隐藏文件夹。
解决方法:验证共享权限和 NTFS(安全)权限这两者是否授予用户所需的访问权限,并检查基于访问的枚举。 请参阅“无法从文件资源管理器访问Windows中的共享文件夹。
6. 缺少 SYNCHRONIZE 访问控制条目(NetApp Filer/NAS 边缘案例)
适用于以下情况: 通过 SMB2 访问 NetApp Filer 或其他 SMB2 服务器上的文件夹时被拒绝,并且网络跟踪显示,在针对该文件夹执行 SMB2 DesiredAccess 操作时出现了 失败。 目标文件夹缺少 SYNCHRONIZE ACE。
**解决方法:**使用 ICACLS 授予包含 Synchronize 位的权限:
ICACLS h:\folder /grant domain\user:(RC,RD,REA,RA,X,S)
括号中的权限包括:RC 读取控制、RD 读取数据或列出目录、REA 读取扩展属性、RA 读取属性、X 执行或遍历、S 同步。
验证: 确认文件夹是否设置了“同步位”。 在文件夹 ACL 上, SYNCHRONIZE 应列出(例如,通过 AccessChk):
accesschk.exe -ld <folder>
请参阅 SMB2 客户端上的 SYNCHRONIZE 位的行为。
在提出支持案例之前收集数据
如果上述解决方案无法解决问题,请先收集此数据,以便支持团队无需来回对案例进行会审:
# Client posture
Get-SmbClientConfiguration | Out-File C:\SMBdata\client-config.txt
Get-SmbConnection | Out-File C:\SMBdata\connections.txt
# Simultaneous network trace on client AND server, then reproduce
netsh trace start capture=yes scenario=NetConnection tracefile=C:\SMBdata\smb.etl
# ... reproduce the Access Denied ...
netsh trace stop
此外,导出 SMBClient 和 (在服务器上) SMBServer 事件日志,涵盖重现窗口。