Forzare la replica tra due controller di dominio in Active Directory
Immaginate di avere una sola porta di casa vostra. Nessuna finestra, nessuna porta finestra, solo una porta. Cosa succede se non puoi aprire quella porta? La casa, e tutto ciò che contiene, è inutile per voi.
Un controller di dominio è come una porta, in un certo senso. Una porta con un buttafuori. È la porta per entrare nelle cose che vuoi. Active Directory (AD) è il buttafuori della porta. Controlla le vostre credenziali, determina se siete autorizzati ad attraversare la porta e a quali risorse potete accedere una volta dentro.
Se state gestendo una rete di qualsiasi tipo e avete solo un controller di dominio, state vivendo in una casa con una sola porta. Se succede qualcosa a quel controller di dominio, tutto il tuo sistema di server va in pezzi. Abbiate sempre più di un controller di dominio (DC).
Ma come vi assicurate che entrambi i controller di dominio abbiano le stesse informazioni? Diciamo che hai fatto una modifica relativa alla sicurezza su un DC. Volete assicurarvi che quel cambiamento sia replicato immediatamente sugli altri DC. Perché aspettare 15 minuti o più per farlo accadere secondo il programma? Avete bisogno di forzare la replica dei controller di dominio in Active Directory.
Ci sono 3 modi per avvicinarsi a questo; attraverso l’interfaccia grafica utente (GUI), attraverso l’interfaccia a riga di comando (CLI), o attraverso PowerShell.
Forzare la replica dei controller di dominio attraverso la GUI
I server Windows fanno molto uso di GUI, il che è buono per gli amministratori di sistema principianti. È più facile da imparare e a volte aiuta a visualizzare ciò che sta realmente accadendo.
- Entra in uno dei tuoi DC e apri Active Directory Sites and Services.
- Naviga verso il sito per il quale vuoi replicare i controller di dominio. Espandilo facendo clic sulla punta della freccia accanto al nome del sito. Espandi i server. Espandi il DC che vorresti replicare. Clicca su Impostazioni NTDS.
- Nel pannello di destra, clicca col tasto destro sul server e seleziona Replica ora.
- A seconda di quanti DC ci sono, questo potrebbe richiedere da meno di un secondo a qualche minuto. Quando è completo, vedrai la notifica, “Active Directory Domain Services ha replicato le connessioni”. Clicca OK per finire.
Forzare la replica dei controller di dominio attraverso il comando CLI
Se hai familiarità con il buon vecchio CMD di Windows, allora il comando repadmin fa per te. Questo è il modo più veloce per forzare la duplicazione dei DC. Se non avete familiarità, questo è un buon momento per imparare il CMD di Windows.
- Entra in uno dei tuoi DC e apri il Prompt dei Comandi.
- Entra il seguente comando, e poi premi il tasto Invio.
repadmin /syncall /AdeP
- Una litania di informazioni scorrerà sullo schermo. Se vedete che l’ultima riga recita: “SyncAll terminated with no errors.”, e poi il prompt dei comandi sotto di essa, i vostri DC sono replicati con successo.
Forzare la replica dei controller di dominio con PowerShell
Se non stai usando PowerShell nella tua vita quotidiana, ti stai perdendo qualcosa. Lo devi davvero a te stesso di imparare PowerShell. Ti renderà la vita più facile, e se sei un amministratore di sistemi junior ti aiuterà enormemente a portare la tua carriera al passo successivo.
Questi passi possono essere fatti nella normale PowerShell CLI, ma noi li abbiamo fatti in PowerShell ISE per mostrare meglio i comandi e i loro risultati. Costruiremo uno script che puoi salvare o anche trasformare in un cmdlet che puoi chiamare dalla linea di comando PowerShell.
- Log in uno dei tuoi DC e apri PowerShell o PowerShell ISE.
- Prima di scrivere qualsiasi script, salvatelo con un nome descrittivo come force-DCReplication.ps1 così potrete riutilizzarlo più facilmente. Inserisci il seguente codice ed eseguilo per vedere come otterrà i nomi di tutti i tuoi DC.
(Get-ADDomainController -Filter *).Name
Vedi come restituisce i nomi dei DC? Ora è possibile pipezzare questo risultato nel prossimo cmdlet. Una pipe è il carattere di linea verticale ( | ), che di solito si trova sulla tastiera appena sopra il tasto Invio.
- Alla fine del comando precedente, inserite il seguente codice:
| Foreach-Object { repadmin /syncall $_ (Get-ADDomain).DistinguishedName /AdeP }
Il comando dovrebbe apparire come nell’immagine sottostante. Eseguitelo. Dovrebbe restituire un messaggio proprio come quello riportato nella sezione Forzare la replica del controller di dominio attraverso la GUI. Se finisce con “SyncAll terminated with no errors.” allora ha funzionato.
Hai visto che usa anche il comando repadmin?
- Aggiungiamo un’altra linea per essere sicuri che la replica sia stata davvero completata. Il seguente codice restituirà la data e l’ora di quando ogni tuo DC è stato replicato per l’ultima volta. Questo comando può essere usato da solo in un altro momento, se sei solo curioso di sapere quando i tuoi DC hanno replicato l’ultima volta. Inserisci il codice ed eseguilo.
Get-ADReplicationPartnerMetadata -Target "$env:userdnsdomain" -Scope Domain | Select-Object Server, LastReplicationSuccess
Il risultato dovrebbe essere simile all’immagine qui sotto. Vedrete in basso la data e l’ora esatta dell’ultima replica.
- Per dare un po’ di smalto a questo script, rendiamo il suo output un po’ meno verboso. Verso la fine della prima linea, inserite | Out-Null tra /AdeP e la parentesi finale. Questo gli dice di non mettere fuori i risultati di quella cmdlet. Il risultato finale sarà come la seguente immagine.
Keep’em Replicated
Ora conosci 3 modi per forzare la replica dei controller di dominio in AD. Avete anche messo insieme uno script PowerShell riutilizzabile che potete chiamare dalla linea di comando PowerShell ogni volta che volete. Non ci sono scuse per le tue ultime modifiche ai DC per aspettare la prossima replica programmata, ogni volta che sarà.