Associar computadores a um domínio Active Directory é uma tarefa rotineira que se torna tediosa quando feita manualmente em dezenas ou centenas de máquinas. Automatizar o processo de associação ao domínio via scripting economiza tempo significativo e garante consistência. Este guia cobre múltiplas abordagens, desde o clássico comando netdom até os cmdlets modernos do PowerShell e a associação offline ao domínio para ambientes sem conectividade direta de rede.
Pré-requisitos
Antes de criar scripts para associação ao domínio, verifique estes requisitos:
- Resolução DNS — O computador deve ser capaz de resolver o nome do domínio. Certifique-se de que as configurações DNS apontem para um controlador de domínio ou servidor DNS que hospede a zona DNS do AD.
- Conectividade de rede — O computador deve alcançar um controlador de domínio nas portas necessárias (LDAP 389, Kerberos 88, SMB 445, DNS 53, RPC 135 + dinâmicas).
- Credenciais de domínio — Você precisa de uma conta com permissão para associar computadores ao domínio. Por padrão, qualquer usuário autenticado do domínio pode associar até 10 computadores (controlado pelo atributo
ms-DS-MachineAccountQuota). - Nome do computador — O computador deve ter seu nome de host pretendido definido antes de ser associado ao domínio.
Método 1: Usando netdom (Clássico)
A ferramenta de linha de comando netdom está disponível desde as ferramentas de suporte do Windows 2000 e está incluída no Windows Server e RSAT.
Associação básica ao domínio
netdom join %COMPUTERNAME% /domain:corp.example.com /userd:CORP\admin /passwordd:P@ssw0rd /reboot:5
Parâmetros:
%COMPUTERNAME%— O computador a ser associado (use o nome real ou%COMPUTERNAME%para a máquina local)/domain— O FQDN do domínio de destino/userd— Credenciais de domínio com permissão de associação/passwordd— Senha (use*para ser solicitado com segurança)/reboot— Segundos de espera antes da reinicialização automática
Associar e colocar em uma 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 em lote para múltiplos computadores
Crie um arquivo de texto (computers.txt) com um nome de computador por linha, depois:
@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)
O cmdlet Add-Computer é o método moderno e preferido para associação ao domínio.
Associar o computador local
# Join the local computer to the domain and restart
Add-Computer -DomainName "corp.example.com" -Credential (Get-Credential) -Restart
Associar e colocar em uma OU específica
Add-Computer -DomainName "corp.example.com" `
-OUPath "OU=Workstations,OU=IT,DC=corp,DC=example,DC=com" `
-Credential (Get-Credential) `
-Restart
Associar um computador 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
Renomear e associar em uma única etapa
Add-Computer -DomainName "corp.example.com" `
-NewName "WS-FINANCE-01" `
-Credential (Get-Credential) `
-Restart
Associação em massa ao domínio a partir de CSV
Para implantações em grande escala, use um arquivo CSV com os detalhes do computador:
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: Associação offline ao domínio (djoin.exe)
A associação offline ao domínio permite associar um computador ao domínio sem conectividade direta de rede com um controlador de domínio no momento da associação. Isto é útil para:
- Provisionar máquinas em uma fábrica ou área de preparação sem acesso à rede do domínio
- Implantar VMs a partir de modelos
- Associar computadores através de links WAN com conectividade pouco confiável
Etapa 1: Provisionar a conta do computador
Execute isto em qualquer computador associado ao domínio com as permissões apropriadas:
djoin /provision /domain corp.example.com /machine NEWPC01 /savefile C:\odjblob.txt
Opções:
/provision— Criar a conta do computador no AD/domain— Nome do domínio de destino/machine— Nome do computador a ser associado/savefile— Caminho para salvar o blob de provisionamento/machineou— (Opcional) Caminho da OU para a conta do computador
Com localização em OU:
djoin /provision /domain corp.example.com /machine NEWPC01 /machineou "OU=Workstations,DC=corp,DC=example,DC=com" /savefile C:\odjblob.txt
Etapa 2: Aplicar o blob no computador de destino
Transfira o arquivo blob para o computador de destino (via unidade USB, compartilhamento de rede, etc.) e execute:
djoin /requestODJ /loadfile C:\odjblob.txt /windowspath %SystemRoot% /localos
Etapa 3: Reiniciar
Reinicie o computador. Quando ele iniciar, estará associado ao domínio e poderá se autenticar com sua conta de máquina assim que tiver conectividade de rede com um DC.
Automatizando a associação offline ao domínio na implantação
Você pode integrar o djoin em uma sequência de tarefas de implantação do 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
Pré-criação de contas de computador
Para melhor organização e segurança, pré-crie as contas de computador no Active Directory antes da associação ao domínio:
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"
}
Solução de problemas em falhas de associação ao domínio
Erros comuns e soluções
“The specified domain either does not exist or could not be contacted”
- Verifique as configurações DNS:
nslookup corp.example.com - Certifique-se de que o servidor DNS preferido seja um controlador de domínio ou encaminhe para um
- Teste a conectividade:
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”
- Verifique se os registros SRV do DNS existem:
nslookup -type=srv _ldap._tcp.dc._msdcs.corp.example.com - Verifique o sufixo DNS principal do computador
“Access is denied” ou “The user does not have permission”
- Verifique se a conta tem permissões de associação ao domínio
- Verifique o atributo
ms-DS-MachineAccountQuota(padrão: 10) - Verifique se a conta de computador foi pré-criada e se o usuário que realiza a associação tem permissões de escrita nela
“The machine account already exists”
- O nome do computador já está em uso no AD. Exclua a conta obsoleta ou use um nome diferente:
# Reset the existing computer account Reset-ComputerMachinePassword -Server "dc01.corp.example.com" -Credential (Get-Credential)
Verificação após a associação ao domínio
# 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
Resumo
Automatizar a associação ao domínio via scripting elimina o processo manual e repetitivo de associar cada computador individualmente. Use Add-Computer no PowerShell para ambientes modernos — ele gerencia associações locais e remotas, localização em OU e renomeação em um único cmdlet. Para cenários sem conectividade de rede, djoin.exe fornece a capacidade de associação offline ao domínio. Para ambientes legados, netdom continua sendo uma opção confiável. Sempre verifique a resolução DNS e a conectividade com o domínio antes de tentar as associações, e pré-crie as contas de computador nas OUs corretas para consistência organizacional.