Unir equipos a un dominio de Active Directory es una tarea rutinaria que se vuelve tediosa cuando se realiza manualmente en docenas o cientos de máquinas. Automatizar el proceso de unión al dominio mediante scripting ahorra tiempo significativo y garantiza consistencia. Esta guía cubre múltiples enfoques, desde el clásico comando netdom hasta los cmdlets modernos de PowerShell y la unión a dominio sin conexión para entornos sin conectividad directa de red.
Requisitos previos
Antes de crear scripts para la unión al dominio, verifique estos requisitos:
- Resolución DNS — El equipo debe poder resolver el nombre de dominio. Asegúrese de que la configuración DNS apunte a un controlador de dominio o servidor DNS que aloje la zona DNS de AD.
- Conectividad de red — El equipo debe poder alcanzar un controlador de dominio en los puertos requeridos (LDAP 389, Kerberos 88, SMB 445, DNS 53, RPC 135 + dinámicos).
- Credenciales de dominio — Necesita una cuenta con permisos para unir equipos al dominio. Por defecto, cualquier usuario autenticado del dominio puede unir hasta 10 equipos (controlado por el atributo
ms-DS-MachineAccountQuota). - Nombre del equipo — El equipo debe tener su nombre de host previsto configurado antes de unirse al dominio.
Método 1: Usando netdom (Clásico)
La herramienta de línea de comandos netdom ha estado disponible desde las herramientas de soporte de Windows 2000 y está incluida en Windows Server y RSAT.
Unión básica al dominio
netdom join %COMPUTERNAME% /domain:corp.example.com /userd:CORP\admin /passwordd:P@ssw0rd /reboot:5
Parámetros:
%COMPUTERNAME%— El equipo a unir (use el nombre real o%COMPUTERNAME%para la máquina local)/domain— El FQDN del dominio de destino/userd— Credenciales de dominio con permisos de unión/passwordd— Contraseña (use*para que se solicite de forma segura)/reboot— Segundos de espera antes del reinicio automático
Unir y colocar en una OU específica
netdom join WORKSTATION01 /domain:corp.example.com /userd:CORP\admin /passwordd:* /ou:"OU=Workstations,OU=IT,DC=corp,DC=example,DC=com" /reboot:5
Script por lotes para múltiples equipos
Cree un archivo de texto (computers.txt) con un nombre de equipo por línea, luego:
@echo off
for /f %%i in (computers.txt) do (
echo Joining %%i to domain...
netdom join %%i /domain:corp.example.com /userd:CORP\admin /passwordd:* /reboot:30
)
echo Done.
pause
Método 2: PowerShell Add-Computer (Recomendado)
El cmdlet Add-Computer es el método moderno y preferido para unir al dominio.
Unir el equipo local
# Join the local computer to the domain and restart
Add-Computer -DomainName "corp.example.com" -Credential (Get-Credential) -Restart
Unir y colocar en una OU específica
Add-Computer -DomainName "corp.example.com" `
-OUPath "OU=Workstations,OU=IT,DC=corp,DC=example,DC=com" `
-Credential (Get-Credential) `
-Restart
Unir un equipo remoto
# Join a single remote computer
Add-Computer -ComputerName "WORKSTATION01" `
-DomainName "corp.example.com" `
-Credential (Get-Credential) `
-Restart
# Join multiple remote computers
$computers = @("WS01", "WS02", "WS03", "WS04", "WS05")
Add-Computer -ComputerName $computers `
-DomainName "corp.example.com" `
-OUPath "OU=Workstations,DC=corp,DC=example,DC=com" `
-Credential (Get-Credential) `
-Restart -Force
Renombrar y unir en un solo paso
Add-Computer -DomainName "corp.example.com" `
-NewName "WS-FINANCE-01" `
-Credential (Get-Credential) `
-Restart
Unión masiva al dominio desde CSV
Para despliegues a gran escala, use un archivo CSV con los detalles del equipo:
ComputerName,OU
WS01,OU=Sales,DC=corp,DC=example,DC=com
WS02,OU=Engineering,DC=corp,DC=example,DC=com
WS03,OU=HR,DC=corp,DC=example,DC=com
$cred = Get-Credential -Message "Enter domain admin credentials"
$computers = Import-Csv -Path "C:\domain-join-list.csv"
foreach ($computer in $computers) {
try {
Add-Computer -ComputerName $computer.ComputerName `
-DomainName "corp.example.com" `
-OUPath $computer.OU `
-Credential $cred `
-Restart -Force `
-ErrorAction Stop
Write-Host "Successfully joined $($computer.ComputerName)" -ForegroundColor Green
}
catch {
Write-Host "Failed to join $($computer.ComputerName): $_" -ForegroundColor Red
}
}
Método 3: Unión a dominio sin conexión (djoin.exe)
La unión a dominio sin conexión le permite unir un equipo al dominio sin conectividad directa de red a un controlador de dominio en el momento de la unión. Esto es útil para:
- Aprovisionar máquinas en una fábrica o área de preparación sin acceso a la red del dominio
- Desplegar máquinas virtuales desde plantillas
- Unir equipos a través de enlaces WAN con conectividad poco confiable
Paso 1: Aprovisionar la cuenta del equipo
Ejecute esto en cualquier equipo unido al dominio con los permisos apropiados:
djoin /provision /domain corp.example.com /machine NEWPC01 /savefile C:\odjblob.txt
Opciones:
/provision— Crear la cuenta del equipo en AD/domain— Nombre del dominio de destino/machine— Nombre del equipo a unir/savefile— Ruta para guardar el blob de aprovisionamiento/machineou— (Opcional) Ruta de la OU para la cuenta del equipo
Con ubicación en OU:
djoin /provision /domain corp.example.com /machine NEWPC01 /machineou "OU=Workstations,DC=corp,DC=example,DC=com" /savefile C:\odjblob.txt
Paso 2: Aplicar el blob en el equipo de destino
Transfiera el archivo blob al equipo de destino (mediante unidad USB, recurso compartido de red, etc.) y ejecute:
djoin /requestODJ /loadfile C:\odjblob.txt /windowspath %SystemRoot% /localos
Paso 3: Reiniciar
Reinicie el equipo. Cuando arranque, estará unido al dominio y podrá autenticarse con su cuenta de máquina una vez que tenga conectividad de red a un DC.
Automatizar la unión a dominio sin conexión en el despliegue
Puede integrar djoin en una secuencia de tareas de despliegue del SO (MDT, SCCM/MECM):
# Generate blob during imaging task sequence
$computerName = $env:COMPUTERNAME
djoin /provision /domain corp.example.com /machine $computerName /reuse /savefile "C:\Windows\odjblob.txt"
# Apply during OOBE or first-boot script
djoin /requestODJ /loadfile "C:\Windows\odjblob.txt" /windowspath %SystemRoot% /localos
Pre-creación de cuentas de equipo
Para una mejor organización y seguridad, pre-cree las cuentas de equipo en Active Directory antes de la unión al dominio:
Usando PowerShell
# Pre-stage a single computer account
New-ADComputer -Name "WS01" `
-Path "OU=Workstations,DC=corp,DC=example,DC=com" `
-Enabled $true
# Pre-stage from a list
$computers = @("WS01", "WS02", "WS03", "WS04", "WS05")
foreach ($pc in $computers) {
New-ADComputer -Name $pc `
-Path "OU=Workstations,DC=corp,DC=example,DC=com" `
-Enabled $true
Write-Host "Pre-staged $pc"
}
Solución de problemas en fallos de unión al dominio
Errores comunes y soluciones
“The specified domain either does not exist or could not be contacted”
- Verifique la configuración DNS:
nslookup corp.example.com - Asegúrese de que el servidor DNS preferido sea un controlador de dominio o reenvíe a uno
- Pruebe la conectividad:
Test-NetConnection -ComputerName corp.example.com -Port 389
“An attempt to resolve the DNS name of a DC in the domain being joined has failed”
- Compruebe que existen registros SRV de DNS:
nslookup -type=srv _ldap._tcp.dc._msdcs.corp.example.com - Verifique el sufijo DNS principal del equipo
“Access is denied” o “The user does not have permission”
- Verifique que la cuenta tiene permisos de unión al dominio
- Compruebe el atributo
ms-DS-MachineAccountQuota(por defecto: 10) - Compruebe si la cuenta de equipo fue pre-creada y si el usuario que realiza la unión tiene permisos de escritura sobre ella
“The machine account already exists”
- El nombre del equipo ya está en uso en AD. Elimine la cuenta obsoleta o use un nombre diferente:
# Reset the existing computer account Reset-ComputerMachinePassword -Server "dc01.corp.example.com" -Credential (Get-Credential)
Verificación después de la unión al dominio
# Verify domain membership
(Get-WmiObject Win32_ComputerSystem).Domain
# Test secure channel to DC
Test-ComputerSecureChannel -Verbose
# Verify the computer account in AD
Get-ADComputer -Identity $env:COMPUTERNAME
Resumen
Automatizar la unión al dominio mediante scripting elimina el proceso manual y repetitivo de unir cada equipo individualmente. Use Add-Computer en PowerShell para entornos modernos — maneja uniones locales y remotas, ubicación en OU y cambio de nombre en un solo cmdlet. Para escenarios sin conectividad de red, djoin.exe proporciona la capacidad de unión a dominio sin conexión. Para entornos heredados, netdom sigue siendo una opción confiable. Siempre verifique la resolución DNS y la conectividad con el dominio antes de intentar las uniones, y pre-cree las cuentas de equipo en las OUs correctas para mantener la consistencia organizativa.