|
| 1 | +--- |
| 2 | +title: Status Code 0x6ba and the RPC Server Is Unavailable |
| 3 | +description: Provides troubleshooting steps for resolving the remote procedure call (RPC) status code 0x6ba when you join a workgroup computer to a domain. |
| 4 | +ms.date: 04/24/2025 |
| 5 | +manager: dcscontentpm |
| 6 | +audience: itpro |
| 7 | +ms.topic: troubleshooting |
| 8 | +ms.reviewer: kaushika, raviks, herbertm, dennhu, eriw, v-lianna |
| 9 | +ms.custom: |
| 10 | +- sap:active directory\on-premises active directory domain join |
| 11 | +- pcy:WinComm Directory Services |
| 12 | +--- |
| 13 | +# Status code 0x6ba: The RPC server is unavailable |
| 14 | + |
| 15 | +This article provides troubleshooting steps for resolving the remote procedure call (RPC) status code 0x6ba when you join a workgroup computer to a domain. |
| 16 | + |
| 17 | +When you join a workgroup computer to a domain, you receive the following error message: |
| 18 | + |
| 19 | +> Changing the Primary Domain DNS name of this computer to "" failed. The name will remain "\<DomainName\>". |
| 20 | +> The error was: |
| 21 | +> |
| 22 | +> The RPC service is unavailable. |
| 23 | +
|
| 24 | +Here's more information about the error code: |
| 25 | + |
| 26 | +|Hexadecimal error |Decimal error |Symbolic error string |Error description | |
| 27 | +|---------|---------|---------|---------| |
| 28 | +|0x6ba |1722 |RPC_S_SERVER_UNAVAILABLE |The RPC server is unavailable. | |
| 29 | + |
| 30 | +When you check the **NetSetup.log** file, you see the following entries. For example: |
| 31 | + |
| 32 | +```output |
| 33 | +NetpGetComputerObjectDn: Unable to bind to DS on '\\DCNAME': 0x6ba |
| 34 | +NetpCreateComputerObjectInDs: NetpGetComputerObjectDn failed: 0x6ba |
| 35 | +NetpProvisionComputerAccount: LDAP creation failed: 0x6ba |
| 36 | +ldap_unbind status: 0x0 |
| 37 | +NetpJoinCreatePackagePart: status:0x6ba. |
| 38 | +NetpJoinDomainOnDs: Function exits with status of: 0x6ba |
| 39 | +NetpJoinDomainOnDs: status of disconnecting from '\\DCNAME': 0x0 |
| 40 | +NetpResetIDNEncoding: DnsDisableIdnEncoding(RESETALL) on 'DOMAINNAME' returned 0x0 |
| 41 | +NetpJoinDomainOnDs: NetpResetIDNEncoding on 'DOMAINNAME': 0x0 |
| 42 | +NetpDoDomainJoin: status: 0x6ba |
| 43 | +``` |
| 44 | + |
| 45 | +## Troubleshoot the connection issue |
| 46 | + |
| 47 | +To troubleshoot this issue, use the following steps: |
| 48 | + |
| 49 | +1. Check the **NetSetup.log** file (**C:\\Windows\\Debug\\NetSetup.log**) on the client machine, and confirm if the domain controller (DC) locator process has successfully located a DC. However, the client machine fails to bind to the DC with status code 0x6ba. For example: |
| 50 | + |
| 51 | + ```output |
| 52 | + NetpJoinDomainOnDs: status of connecting to dc '\\DCNAME': 0x0 |
| 53 | + NetpGetComputerObjectDn: Unable to bind to DS on '\\DCNAME': 0x6ba |
| 54 | + ``` |
| 55 | +
|
| 56 | +2. Make sure the network ports aren't blocked by a firewall or third-party application that is listening on the required ports of the DC (identified in step 1). |
| 57 | +
|
| 58 | + The endpoint mapper (listening on port 135) tells the client which randomly assigned port a service is listening on. Check the following ports: |
| 59 | +
|
| 60 | + |Server port |Service/Protocol | |
| 61 | + |---------|---------| |
| 62 | + |Transmission Control Protocol (TCP) 135 |RPC Endpoint Mapper | |
| 63 | + |TCP 49152 - 65535 |RPC (dynamic ports allocation) | |
| 64 | + |TCP 445 |Server Message Block (SMB) | |
| 65 | + |User Datagram Protocol (UDP)/TCP 389 |Lightweight Directory Access Protocol (LDAP) | |
| 66 | +
|
| 67 | + Refer to the list of required ports in [How to configure a firewall for Active Directory domains and trusts](config-firewall-for-ad-domains-and-trusts.md). |
| 68 | +
|
| 69 | +3. Identify if a port is blocked on a DC by using the [PortQry](https://www.microsoft.com/download/details.aspx?id=17148) command-line tool. For more information, see [Using the PortQry command-line tool](../networking/portqry-command-line-port-scanner-v2.md). |
| 70 | +
|
| 71 | + Here are some example syntaxes: |
| 72 | +
|
| 73 | + > [!NOTE] |
| 74 | + > Replace \<problem_server\> with the DC name identified in step 1. |
| 75 | +
|
| 76 | + - `portqry -n <problem_server> -e 135` |
| 77 | + - `portqry -n <problem_server> -e 445` |
| 78 | + - `portqry -n <problem_server> -e 389` |
| 79 | + - `portqry -n <problem_server> -p UDP -e 389` |
| 80 | + - `portqry -n <problem_server> -r 49152:65535` |
| 81 | +
|
| 82 | + Here are some example outputs: |
| 83 | +
|
| 84 | + If the connection to TCP 135 port on the DC is blocked, you see the following output: |
| 85 | +
|
| 86 | + ```output |
| 87 | + C:\PortQryV2>portqry -n dc2 -e 135 |
| 88 | + Querying target system called: |
| 89 | + Dc2 |
| 90 | + Attempting to resolve name to IP address… |
| 91 | + Name resolved to 192.168.1.2 |
| 92 | + querying... |
| 93 | + TCP port 135 <epmap service>: FILTERED |
| 94 | + ``` |
| 95 | +
|
| 96 | + If the connection to TCP 389 port on the DC is successful, you see the following output: |
| 97 | +
|
| 98 | + ```output |
| 99 | + C:\PortQryV2>portqry -n dc2 -e 389 |
| 100 | + Querying target system called: |
| 101 | + Dc2 |
| 102 | + Attempting to resolve name to IP address… |
| 103 | + Name resolved to 192.168.1.2 |
| 104 | + querying... |
| 105 | + TCP port 389 <ldap service>: LISTENING |
| 106 | + ``` |
| 107 | +
|
| 108 | +4. Collect a network trace when reproducing the issue to double check the network connectivity. You can use `netsh trace` to generate an ETL file, and [convert the ETL file to a PCAP file](https://techcommunity.microsoft.com/blog/coreinfrastructureandsecurityblog/converting-etl-files-to-pcap-files/1133297), which Wireshark can read. |
| 109 | +
|
| 110 | + For example, the following network trace collected by the PortQry command-line tool might indicate there's a network connectivity issue from the client machine to the DC's TCP 135 port (RPC). |
| 111 | +
|
| 112 | + ```output |
| 113 | + PortQry.exe CLIENT DC TCP TCP:Flags=CE....S., SrcPort=51542, DstPort=DCE endpoint resolution(135), PayloadLen=0, Seq=4232829278, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192 {TCP:16, IPv4:15} |
| 114 | + PortQry.exe CLIENT DC TCP TCP:[SynReTransmit #50]Flags=CE....S., SrcPort=51542, DstPort=DCE endpoint resolution(135), PayloadLen=0, Seq=4232829278, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192 {TCP:16, IPv4:15} |
| 115 | + PortQry.exe CLIENT DC TCP TCP:[SynReTransmit #50]Flags=......S., SrcPort=51542, DstPort=DCE endpoint resolution(135), PayloadLen=0, Seq=4232829278, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192 {TCP:16, IPv4:15} |
| 116 | + In the network trace collected on the client side, you see the retransmit package of TCP SYN to DC's TCP 135 port. And no response is received from DC. |
| 117 | + In the network trace collected on the DC side, you might not see the TCP SYN package from the client. It might be blocked by a firewall or middle device. |
| 118 | + ``` |
| 119 | +
|
| 120 | +5. Check the network device and firewall between the client and the DC to further investigate the network connectivity issue if necessary. |
| 121 | +
|
| 122 | +## More information |
| 123 | +
|
| 124 | +- [How to configure a firewall for Active Directory domains and trusts](config-firewall-for-ad-domains-and-trusts.md) |
| 125 | +- [Locating Active Directory domain controllers in Windows and Windows Server](/windows-server/identity/ad-ds/manage/dc-locator?tabs=dns-based-discovery) |
| 126 | +- [Troubleshoot domain controller location issues in Windows](../windows-security/troubleshoot-domain-controller-location-issues.md) |
0 commit comments