Windows Server 2022: solución al error al unir al dominio (1332 y 1003) con guía de DNS, Kerberos y AD

Windows Server 2022 no logra unirse al dominio xxx.LOCAL y el Visor de eventos muestra los errores 1332 y 1003. En casi todos los casos se trata de DNS, hora/Kerberos o del objeto de equipo en Active Directory. Esta guía te ayuda a diagnosticar y corregir con rapidez.

Índice

Síntomas

  • Error al intentar unir el servidor a xxx.LOCAL desde el asistente de Sistema o PowerShell.
  • En el Visor de eventos (Registro del sistema) aparecen eventos con texto similar a:
    • 1332: “The machine … attempted to join the domain … but failed.”
    • 1003: “The machine … attempted to join the domain … but failed.”
  • Mensajes genéricos en el asistente: “No se pudo contactar al controlador de dominio” o “Las credenciales son incorrectas”.

Qué significan realmente los códigos

1332 (ERRORNONEMAPPED): en la práctica suele indicar que algo no puede resolverse o mapearse en Active Directory: nombre a SID, objeto de equipo inexistente o en una OU inesperada, credenciales que no corresponden, etc.

1003 (ERRORCANNOT_COMPLETE): código paraguas: la operación no pudo completarse por una dependencia previa rota. Piensa en DNS, hora (Kerberos), puertos, permisos o SRV faltantes.

Causas probables

  1. DNS del servidor apunta a DNS públicos (p. ej., 8.8.8.8) en lugar de los DNS de Active Directory.
  2. Desfase de hora superior a unos minutos entre el servidor y un controlador de dominio.
  3. Objeto de equipo duplicado, deshabilitado o ubicado en una OU no esperada.
  4. Puertos críticos bloqueados entre el servidor y los controladores de dominio.
  5. Credenciales sin privilegios para unir equipos al dominio o políticas que lo restringen.
  6. Registros SRV de AD ausentes o mal resueltos en DNS (ldap.tcp, kerberos.tcp).

Diagnóstico rápido y verificable

  1. Comprobar DNS del servidor
    • El DNS preferido del adaptador debe ser solo la IP del DNS de AD (normalmente el/los DC).
    • Ejecuta:
    ipconfig /all Verifica el sufijo DNS primario, que no haya DNS públicos y que la puerta de enlace no se liste como DNS. Prueba resolución básica y SRV: nslookup xxx.local nslookup -type=SRV ldap.tcp.dc._msdcs.xxx.local nslookup -type=SRV kerberos.tcp.xxx.local Debes ver uno o más DCs con sus FQDN e IP correctos.
  2. Verificar conectividad y puertos Si ICMP está permitido: ping <FQDN-del-DC> Prueba puertos clave con PowerShell: Test-NetConnection <FQDN-del-DC> -Port 135 Test-NetConnection <FQDN-del-DC> -Port 53 Test-NetConnection <FQDN-del-DC> -Port 88 Test-NetConnection <FQDN-del-DC> -Port 389 Test-NetConnection <FQDN-del-DC> -Port 445 Test-NetConnection <FQDN-del-DC> -Port 3268 Si alguno falla, revisa firewall local, perimetral o rutas.
  3. Sincronizar hora para Kerberos Comprueba y sincroniza: w32tm /query /status w32tm /resync /nowait Asegura un desfase < 5 minutos y zona horaria correcta en el sistema.
  4. Validar credenciales y permisos Inicia la unión con un formato reconocido por AD: DOMINIO\usuario usuario@xxx.local Valida que la cuenta tenga derecho a agregar equipos al dominio. En muchas organizaciones se delega por OU y el límite por defecto de 10 equipos puede estar restringido.
  5. Revisar el objeto de equipo en AD En Active Directory Users and Computers, busca el nombre del servidor (p. ej., AZxxx):
    • Si existe pero está deshabilitado, haz Reset o elimínalo y deja que se cree al unir.
    • Confirma la OU esperada. Si especificas una OU al unir, asegúrate de que el DN sea exacto.
  6. Reintentar la unión por línea de comandos Más verboso y controlado: netdom join AZxxx /domain:xxx.local /userd:DOMINIO\usuario /passwordd:* Para forzar OU: netdom join AZxxx /domain:xxx.local /ou:"OU=Servers,OU=Corp,DC=xxx,DC=local" /userd:DOMINIO\usuario /passwordd:*
  7. Probar descubrimiento de controladores de dominio nltest /dsgetdc:xxx.local nltest /dclist:xxx.local Si falla, hay un problema de DNS o de conectividad con AD.
  8. Revisar eventos útiles
    • En el cliente: registros System (Netlogon, LSA, Kerberos).
    • En el DC: Directory Service, DNS Server y System (Netlogon).
    • Log detallado temporal: nltest /dbflag:0x2080ffff type %systemroot%\debug\netlogon.log nltest /dbflag:0x0

Correcciones típicas

  • DNS: Cambia el DNS del servidor a los DNS de AD (quita públicos). Vacía y registra: ipconfig /flushdns ipconfig /registerdns
  • Hora: Sincroniza con el DC o con el NTP corporativo y corrige la zona horaria.
  • Objeto de equipo: Restablece o elimina y recrea. Luego, vuelve a unir con netdom o Add-Computer.
  • Puertos/firewall: Abre los puertos requeridos (ver tabla). Habilita RPC dinámico según la política de tu organización.
  • Permisos: Usa una cuenta con privilegios adecuados o delega “Join a computer to the domain” en la OU objetivo.
  • SRV: Si faltan SRV, revisa DNS en el DC: dcdiag /test:DNS /v

Tabla de puertos y servicios implicados

ServicioProtocolo/PUERTOUso
DNSUDP/TCP 53Resolución de nombres y SRV
NTPUDP 123Sincronización de hora
RPC Endpoint MapperTCP 135Asignación de extremos RPC
KerberosTCP/UDP 88Autenticación
LDAPTCP/UDP 389Consultas a AD
LDAPSTCP 636LDAP sobre TLS
SMBTCP 445Compartidos, Netlogon, SYSVOL
GCTCP 3268 / 3269Catálogo global
RPC dinámicoTCP 49152–65535Servicios AD/replicación

Pruebas de DNS y SRV recomendadas

Confirma que el dominio y los SRV críticos resuelven a DCs válidos:

nslookup xxx.local
nslookup -type=SRV ldap.tcp.xxx.local
nslookup -type=SRV kerberos.tcp.xxx.local
nslookup -type=SRV ldap.tcp.dc._msdcs.xxx.local

Si ves tiempos de espera o registros que apuntan a IPs viejas, corrige la zona xxx.local y la delegación _msdcs.xxx.local. Tras el arreglo, reinicia el servicio DNS del DC o fuerza el registro:

ipconfig /registerdns
net stop netlogon &amp;&amp; net start netlogon

Guía de decisión para acelerar el diagnóstico

¿nslookup y SRV resuelven? 
 ├─ No → Corrige DNS (53), zonas AD y reintenta
 └─ Sí → ¿Test-NetConnection a 135/389/445/88 OK?
       ├─ No → Revisa firewall/rutas/ACLs
       └─ Sí → ¿Hora ±5 min?
             ├─ No → Corrige NTP/TZ
             └─ Sí → ¿Objeto de equipo correcto?
                   ├─ No → Reset/elimina y reintenta
                   └─ Sí → ¿Permisos suficientes?
                         ├─ No → Delegación/credenciales
                         └─ Sí → Usa netdom/nltest y revisa eventos detallados

Errores frecuentes que disparan 1332 y 1003

  • El servidor tiene múltiples NIC con priorización errónea y usa un DNS externo “de rebote”.
  • VPN activa con split-tunneling mal configurado: el tráfico a DC no toma la ruta correcta.
  • Clock skew por host físico/hypervisor con hora incorrecta.
  • Nombre de equipo cambiado sin reiniciar antes de unir.
  • OU especificada con DN mal escrito (comas, mayúsculas o componentes de dominio incorrectos).
  • Antivirus o EDR bloquea RPC dinámico o SMB temporalmente.

Buenas prácticas para prevenir fallos

  • Establece el DNS de todos los miembros del dominio exclusivamente a los DNS de AD; usa reenviadores en el DNS de AD para Internet.
  • Fija NTP corporativo: PDC Emulator como fuente interna y este, a su vez, contra un NTP autorizado.
  • Documenta y automatiza el proceso de unión (scripts) para evitar errores manuales.
  • Monitorea la salud de AD: dcdiag, repadmin, latencias y eventos Netlogon.
  • Controla el ciclo de vida de objetos de equipo; elimina los obsoletos y aplica limpieza periódica.

Automatización con PowerShell

Script de verificación previa y unión segura:

# Ejecutar en el servidor a unir (elevar a admin)
$Domain = "xxx.local"
$DC = (nltest /dsgetdc:$Domain) -match "Address" | ForEach-Object { ($_ -split ":")[1].Trim() }
$Ports = 53,88,135,389,445,3268
"Probando SRV y conectividad..."
nslookup -type=SRV ldap.tcp.$Domain
foreach ($p in $Ports) { Test-NetConnection $DC -Port $p | Select-Object ComputerName,RemotePort,TcpTestSucceeded }
"Hora actual y estado de W32Time:"
w32tm /query /status

Unión (reinicia automáticamente)

Add-Computer -DomainName \$Domain -Credential (Get-Credential) -OUPath "OU=Servers,OU=Corp,DC=xxx,DC=local" -Restart

Alternativa con netdom, si prefieres:

netdom join \$env\:COMPUTERNAME /domain:\$Domain /userd\:DOMINIO\usuario /passwordd:\*

Procedimiento de limpieza y reintento

  1. Cambia temporalmente a grupo de trabajo: sysdm.cpl
  2. Reinicia.
  3. En AD, elimina o resetea la cuenta de equipo afectada.
  4. Verifica DNS y hora; reintenta la unión con netdom o Add-Computer.

Comandos de referencia rápida

ObjetivoComando
Estado de red y DNS localipconfig /all
Resolver dominio y SRVnslookup -type=SRV ldap.tcp.xxx.local
Probar puertos a DCTest-NetConnection <dc> -Port 135 (y otros)
Hora/NT5DS/NTPw32tm /query /status / w32tm /resync
Descubrir DCnltest /dsgetdc:xxx.local / nltest /dclist:xxx.local
Unir al dominionetdom join <equipo> /domain:xxx.local /userd:DOMINIO\usuario /passwordd:*
Diagnóstico DNS en DCdcdiag /test:DNS /v
Replicación ADrepadmin /replsummary
Registro Netlogon detalladonltest /dbflag:0x2080ffff y revisar %systemroot%\debug\netlogon.log

Plantilla de verificación rápida

[ ] DNS preferido apunta a DC(s) de AD (sin DNS públicos)
[ ] nslookup xxx.local y SRV devuelven DCs correctos
[ ] Puertos 53/88/135/389/445/3268 accesibles
[ ] Desfase de hora &lt; 5 minutos y TZ correcta
[ ] Credenciales con permiso para unir equipos
[ ] Objeto de equipo no duplicado/inhabilitado
[ ] Eventos en cliente y DC revisados (Netlogon/Kerberos/DNS)

Preguntas frecuentes

¿Puedo usar DNS públicos como secundario?
No. En miembros del dominio, usa únicamente los DNS de AD. Configura reenviadores en el DNS de AD para salir a Internet.

¿Cómo fijo la zona horaria correcta por script?
Con PowerShell: Set-TimeZone -Name "Pacific Standard Time" (ajusta el identificador a tu región).

¿Qué pasa si hay varios controladores de dominio?
Verifica replicación y consistencia: repadmin /replsummary. Si un DC está desactualizado, la unión puede fallar al dirigir al DC equivocado.

¿Cómo limito los puertos RPC dinámicos?
Puedes definir un rango más estrecho en el registro para planificar firewall, pero requiere coordinación y pruebas en tu entorno.

Resumen

Regla de oro: en el 90% de los fallos de unión a dominio en Windows Server 2022, la causa es DNS, hora/Kerberos o el objeto de equipo en AD. Empieza por ahí, valida con nslookup/Test-NetConnection/w32tm, y usa netdom/nltest para obtener pistas precisas.


Ejemplo de sesión completa

# 1) Ver DNS local
ipconfig /all

2) Resolver dominio y SRV

nslookup xxx.local
nslookup -type=SRV \ldap.\tcp.dc.\_msdcs.xxx.local

3) Probar puertos críticos al DC

\$dc = "dc01.xxx.local"
Test-NetConnection \$dc -Port 53
Test-NetConnection \$dc -Port 88
Test-NetConnection \$dc -Port 135
Test-NetConnection \$dc -Port 389
Test-NetConnection \$dc -Port 445
Test-NetConnection \$dc -Port 3268

4) Hora y sincronización

w32tm /query /status
w32tm /resync /nowait

5) Descubrimiento de DC

nltest /dsgetdc\:xxx.local
nltest /dclist\:xxx.local

6) Unir al dominio con mayor control

netdom join AZxxx /domain\:xxx.local /userd\:DOMINIO\usuario /passwordd:\*

7) Si falla, revisar eventos y netlogon.log

eventvwr.msc
nltest /dbflag:0x2080ffff
type %systemroot%\debug\netlogon.log
nltest /dbflag:0x0 

Con estos pasos y correcciones, deberías poder resolver los eventos 1332 y 1003 al unir Windows Server 2022 a xxx.LOCAL de forma confiable y reproducible.

Índice