状态代码0x6bf或0xc002001c:远程过程调用失败且未执行

本文提供了在将工作组计算机加入域时解决远程过程调用(RPC)状态代码0x6bf或0xc002001c的故障排除步骤。

将工作组计算机加入域时,会收到以下错误消息:

远程过程调用失败,未执行。

检查 NetSetup.log 文件时,会看到以下条目。 例如:

NetpGetLsaHandle: LsaOpenPolicy on \\<DC name>.<domain>.<tld> failed: 0xc002001c
NetpGetLsaPrimaryDomain: status: 0xc002001c
NetpJoinDomain: initiaing a rollback due to earlier errors
NetpJoinDomain: status of disconnecting from '\\<DC name>.<domain>.<tld>': 0x0
NetpDoDomainJoin: status: 0x6bf

网络设备拒绝网络数据包

当网络设备(路由器、防火墙或虚拟专用网络(VPN)设备)拒绝加入客户端与域控制器(DC)之间的网络数据包时,会出现此错误。

错误0x6ba(RPC_S_SERVER_UNAVAILABLE)不同。 发生错误0x6ba时,设备无法创建到服务器端口的 TCP 会话。 错误0x6bf指示可以创建 TCP 会话,但 RPC 请求消息无法成功传递,并且 TCP 会话已重置。

RPC 网络会话问题的另一个变体是错误0x6be(RPC_S_CALL_FAILED)。 在这种情况下,可以传递 RPC 请求消息,但在收到响应之前重置 TCP 会话。

验证并测试连接

若要排查此问题,请使用以下步骤:

  1. 通过所需的端口和协议验证要加入的客户端与目标 DC 之间的连接。

    服务器端口 服务/协议
    传输控制协议 (TCP) 135 RPC 终结点映射程序
    TCP 49152 - 65535 RPC (动态端口分配)
    TCP 445 服务器消息块 (SMB)
    用户数据报协议 (UDP)/TCP 389 轻型目录访问协议 (LDAP)

    请参阅 “如何为 Active Directory 域和信任配置防火墙”中所需端口的列表。

  2. 通过运行以下 cmdlet 测试客户端与 DC 之间的连接:

    Test-NetConnection <IP_address_of_the_DC> -Port 389
    

    预期输出如下所示:

    ComputerName            : <ComputerName>
    RemoteAddress           : <RemoteAddress>
    RemotePort              : 389
    InterfaceAlias          : Ethernet 2
    SourceAddress           : <SourceAddress>
    TcpTestSucceeded        : True
    

    输出指示 LDAP 端口 TCP 389 在客户端和 DC 之间打开。

  3. 使用 PortQry 命令行工具确定 DC 上是否阻止了端口(TCP/UDP)。 有关详细信息,请参阅 使用 PortQry 命令行工具

    下面是一些示例语法:

    • portqry -n <problem_server> -e 135
    • portqry -n <problem_server> -e 445
    • portqry -n <problem_server> -e 389
    • portqry -n <problem_server> -p UDP -e 389
    • portqry -n <problem_server> -r 49152:65535

    下面是一些示例输出:

    如果 DC 上的 TCP 135 端口连接被阻止,则会看到以下输出:

    C:\PortQryV2>portqry -n dc2 -e 135
    Querying target system called:
    Dc2
    Attempting to resolve name to IP address…
    Name resolved to 192.168.1.2
    querying...
    TCP port 135 <epmap service>: FILTERED
    

    如果 DC 上的 TCP 389 端口连接成功,则会看到以下输出:

    C:\PortQryV2>portqry -n dc2 -e 389
    Querying target system called:
    Dc2
    Attempting to resolve name to IP address…
    Name resolved to 192.168.1.2
    querying...
    TCP port 389 <ldap service>: LISTENING
    

若要确定是否存在进一步的网络连接问题,请在重现问题时根据需要收集网络跟踪。 可用于 netsh trace 生成 ETL 文件,并将 ETL 文件转换为 PCAP 文件,Wireshark 可以读取该文件。