本文提供了错误的解决方案“无法查询命名空间。 RPC 服务器不可用“,在访问、修改或创建分布式文件系统 (DFS) 命名空间时发生。
原始 KB 数: 2021914
在安装了文件服务工具(包括远程服务器管理工具(RSAT)的 DFS 命名空间服务器上访问、修改或创建 DFS 命名空间时,可能会收到以下错误消息:
无法查询命名空间。 RPC 服务器不可用。
原因 1:DFS 命名空间服务已停止或处于未定义状态
在本地使用 DFS 管理控制台,并在 DFS 命名空间服务器上收到此错误。 它可能指示 DFS 命名空间服务器上的 DFS 命名空间服务已停止或处于未定义状态,但未“正在运行”。
原因 1 的解决方法:启动 DFS 命名空间服务
注意
应用解决方案后,从 DFS 管理控制台中删除 DFS 命名空间并将其添加回,或关闭并重新打开控制台以使更改生效。
若要解决此问题,请启动 DFS 命名空间服务。
运行以下 PowerShell cmdlet 以检查 DFS 命名空间服务是否正在运行:
Get-Service -Name Dfs
如果未启动 DFS 命名空间服务,请运行以下 PowerShell cmdlet 以启动 DFS 命名空间服务:
Start-Service -Name Dfs
注意
如果无法启动 DFS 命名空间服务,则表示注册表损坏或服务依赖项问题。 确保 DFS 命名空间服务的依赖项服务正常运行,或从备份导入注册表设置。 然后,再次启动 DFS 命名空间服务。 有关详细信息,请参阅 原因 4 的解决方法:从有效的注册表备份导入注册表项。
原因 2:DFS 命名空间服务已停止或无法访问 DFS 命名空间服务器
如果从已加入域的成员服务器(而不是 DFSN 服务器)或安装了 RSAT 文件服务工具的域客户端使用 DFS 管理控制台,则可能会出现此错误:
-
方案 1
DFS 命名空间服务器上的 DFS 命名空间服务已停止或处于未定义状态,但未“正在运行”。
-
方案 2
已加入域的成员服务器(不是 DFS 命名空间)或安装了 RSAT 文件服务工具的 Windows 客户端(在其中运行 DFS 管理控制台)无法通过 TCP 端口 445(服务器消息块(SMB 使用)访问 DFS 命名空间服务器。
Wireshark 跟踪
-
方案 1
192.168.0.45 192.168.0.42 SMB2 190 Create Request File: netdfs 192.168.0.42 192.168.0.45 SMB2 130 Create Response, Error: STATUS_OBJECT_NAME_NOT_FOUND -
方案 2
域名系统(DNS)查询 DFS 命名空间服务器的 A 记录。
192.168.0.45 192.168.0.1 DNS 79 Standard query 0x429a A SRV2022.contoso.com 192.168.0.1 192.168.0.45 DNS 95 Standard query response 0x429a A SRV2022.contoso.com A 192.168.0.42但是,在 TCP 端口 445(SMB 使用)上与 DFS 命名空间服务器建立 TCP 连接失败。
192.168.0.45 192.168.0.42 TCP 66 60345 → 445 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 WS=256 SACK_PERM 192.168.0.45 192.168.0.42 TCP 66 [TCP Retransmission] 60345 → 445 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 WS=256 SACK_PERM 192.168.0.45 192.168.0.42 TCP 66 [TCP Retransmission] 60345 → 445 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 WS=256 SACK_PERM 192.168.0.45 192.168.0.42 TCP 66 [TCP Retransmission] 60345 → 445 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 WS=256 SACK_PERM 192.168.0.45 192.168.0.42 TCP 66 [TCP Retransmission] 60345 → 445 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 WS=256 SACK_PERM
原因 2 的解决方法:启动 DFS 命名空间服务或允许 TCP 端口 445
注意
应用解决方案后,从 DFS 管理控制台中删除 DFS 命名空间并将其添加回,或关闭并重新打开控制台以使更改生效。
若要解决问题,请执行以下操作:
-
方案 1
启动 DFS 命名空间服务。
运行以下 PowerShell cmdlet 以检查 DFS 命名空间服务是否正在运行:
Get-Service -Name Dfs如果未启动 DFS 命名空间服务,请运行以下 PowerShell cmdlet 以启动 DFS 命名空间服务:
Start-Service -Name Dfs -
方案 2
确保允许 TCP 端口 445(SMB 使用)到 DFS 命名空间服务器,并且服务器服务(LanmanServer)已启动。
原因 3:未为域注册任何 DomainDNSName 记录
此错误通常在使用第三方 DNS 服务器的环境中出现。 如果没有为域注册 DomainDNSName 记录,则可能会出现此情况。 这些记录由域控制器上的 Netlogon 服务更新。 这些记录与父域的正向查找区域中的记录“相同”。
以下文档指示这些记录不是必需的,仅用于不了解 SRV 记录的 DNS 客户端:
Active Directory 的 DNS 支持的工作原理
| 主机 (A) 资源记录 | 说明 |
|---|---|
| DnsDomainName | 通过查找 A 记录,使非 SRV 感知客户端能够查找域中的任何域控制器。 此表单中的名称通过 LDAP 引用返回到 LDAP 客户端。 非 SRV 感知客户端查找名称;SRV 感知客户端查找相应的 SRV 资源记录。 |
在网络跟踪中,你将看到 DomainDNSname A 记录的 DNS 查找,如果这些 A 记录不存在,DNS 服务器将使用 SOA 记录进行响应。
DNS 查找查询:
Dns:QueryId = 0x887C,QUERY (标准查询),查询类 Internet 上主机加载项类型的 contoso.com QRecord:类 Internet 上主机加载项类型的 contoso.com
使用 SOA 记录的响应:
Dns:QueryId = 0x887C,QUERY (标准查询),响应 - 成功 QRecord:类 Internet 上主机加载项类型的 contoso.com AuthorityRecord:类 Internet 上 SOA 类型的 contoso.com:PrimaryNameServer:SRVPdc.contoso.com,AuthorityMailbox:hostmaster.contoso.com
原因 3 的解决方法:更新 DNS 服务器上的 A 记录或创建 HOSTS 文件
注意
应用解决方案后,从 DFS 管理控制台中删除 DFS 命名空间并将其添加回,或关闭并重新打开控制台以使更改生效。
更新第三方 DNS 服务器上的“与父”相同的记录。
注意
在 Windows 域控制器上重启 Netlogon 服务会重新填充该区域下 _msdcs.contoso.com 所有缺少的 SRV 记录。 确保 AD 复制可能或成功运行,以便正确复制有关 SRV 记录的更改。
作为异常情况的异常解决方法:
如果上述解决方案在应用后 30 分钟内未显示积极结果,则可以将以下方法实现为临时解决方法。 只有在更新了第三方 DNS 服务器上的“与父级相同”记录之前,才使用此解决方法。
在将使用 DFS 管理控制台的计算机上,创建一个 HOSTS 文件,其中包含完全限定的名称和域控制器的 IP 地址。
HOSTS 文件条目的示例:
- contoso.com 192.168.0.1
- contoso.com 192.168.0.2
- contoso.com 192.168.0.3
原因 4:缺少独立 DFS 命名空间的注册表值
缺少一个或两个注册表值 ID 以及 Svc``REG_BINARY DFS 根注册表路径 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DFS\Roots\Standalone\<YourDfsStandaloneNamespace>下的类型。
在这种情况下,DFS 命名空间服务可能会崩溃、停止响应甚至无法启动,从而导致此错误。
原因 4 的解决方法:从有效的注册表备份导入注册表项
注意
应用解决方案后,从 DFS 管理控制台中删除 DFS 命名空间并将其添加回,或关闭并重新打开控制台以使更改生效。
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,按以下步骤操作时请务必谨慎。 出于防范目的,请在修改之前备份注册表,以便在出现问题时还原注册表。 有关如何备份和还原注册表的详细信息,请参阅:如何备份和还原 Windows 中的注册表。
从同一注册表项的有效注册表备份(如果可用)导入 DFS 命名空间根目录的注册表项可以解决此问题。
如果没有备份,并且由于在 DFS 独立命名空间配置中只有命名空间的单个 DFS 根服务器,唯一的选项是删除 DFS 命名空间,在 DFS 根服务器上执行 DFS 命名空间清理,然后重新创建 DFS 命名空间。
注意
重启 DFS 服务器或 DFS 服务器服务,以便再次将注册表中的更改加载到内存中。 不重启 DFS 服务器或 DFS 服务器服务可能会导致相同的错误。