“无法查询命名空间。 尝试创建基于域的 DFS 命名空间时出现“访问被拒绝”错误

本文介绍如何解决尝试创建基于域的命名空间时出现访问被拒绝错误的问题。

适用于: 所有受支持的 Windows Server 版本

使用属于 域管理员 组的帐户登录到 Windows 时,尝试在任何分布式文件系统 (DFS) 命名空间服务器上创建基于域的命名空间时,操作将失败。 Windows 返回如下所示的错误消息:

\\contoso.com\Public 命名空间无法查询。 拒绝访问。

但是,发生此错误时,仍可以成功创建独立命名空间。

原因 1:NTLM 身份验证失败

创建新的基于域的命名空间时,域名系统(DNS)查询将发送到 DNS 服务器,以接收域控制器(DC)的 A 记录列表。 收到 DNS 响应后,针对其中一个 DC 执行新技术 LAN 管理器(NTLM)身份验证。

由于已用帐户是受保护用户组的成员,因此 NTLM 身份验证失败,并STATUS_ACCOUNT_RESTRICTION出现错误。

默认情况下,属于受保护用户组成员的帐户无法使用 NTLM 身份验证进行身份验证。

Wireshark 跟踪示例

192.168.0.42    192.168.0.1        SMB2    681    Session Setup Request, NTLMSSP_AUTH, User: CONTOSO\Testuser
192.168.0.1        192.168.0.42    SMB2    130    Session Setup Response, Error: STATUS_ACCOUNT_RESTRICTION

原因 1 的解决方法:从“受保护的用户”组中删除已用帐户

注意

应用解决方案后,从 DFS 管理控制台中删除 DFS 命名空间并将其添加回,或关闭并重新打开控制台以使更改生效。

若要解决此问题,请从 受保护的用户组 中删除已用帐户以执行 NTLM 身份验证。 有关详细信息,请参阅受保护的用户安全组

原因 2:SMB 会话未相互身份验证

如果在域的路径(例如 \\Contoso.com\* \\CONTOSO\*或)上实现了强化(服务器消息块(SMB)相互身份验证,也可能发生此错误。

应用强化配置的计算机无法创建管道 netdfs ,因为 SMB 会话不会相互进行身份验证。

可以通过运行 gpresult /h 命令来检查强化设置是否在环境中实现。 还可以在以下项下检查受影响计算机上的注册表设置:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\NetworkProvider\HardenedPaths

应查找域名的条目,例如:

域名 值名称和数据
\\corp\* RequireMutualAuthentication=1
RequireIntegrity=1
\\corp.contoso.com\* RequireMutualAuthentication=1
RequireIntegrity=1

原因 2 的解决方法:将 RequireMutualAuthentication 值设置为零

注意

应用解决方案后,从 DFS 管理控制台中删除 DFS 命名空间并将其添加回,或关闭并重新打开控制台以使更改生效。

重要

此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,按以下步骤操作时请务必谨慎。 出于防范目的,请在修改之前备份注册表,以便在出现问题时还原注册表。 有关如何备份和还原注册表的详细信息,请参阅:如何备份和还原 Windows 中的注册表

若要解决此问题,请将RequireMutualAuthentication该值设置为\\Contoso\*\\contoso.com\*零。 进行这些更改后,可以创建命名空间。

例如:

域名 值名称和数据
\\corp.contoso.com\* RequireMutualAuthentication=0
RequireIntegrity=1
\\corp\* RequireMutualAuthentication=0
RequireIntegrity=1

此方案的进程监视器日志文件示例

10:32:48.8093671 AM    mmc.exe    3488    CreateFile    \\contoso.com\pipe\netdfs    0xC0000201    Desired Access: Generic Read/Write, Disposition: Open, Options: , Attributes: n/a, ShareMode: Read, Write, AllocationSize: n/a

错误 c0000201 指示“远程打开失败,因为未满足网络打开限制。

注意

以下进程监视器筛选器非常有用:

  • PID is 3488,它是 DFS 管理控制台的 PID

    在前面的进程监视器输出中,3488 是 DFS 管理控制台进程的 PID。 使用此筛选器之前,请先标识 DFS 管理控制台进程的 PID。

  • Path contains \\contoso.com(或 \\contoso

详细信息