DCDiag: Come controllare lo stato del controller di dominio usando Powershell. DCDiag è un potente strumento a riga di comando utilizzato per diagnosticare problemi con i controller di dominio in un ambiente Microsoft Windows Active Directory. Lo utilizziamo per verificare lo stato di salute dei controller di dominio, identificare errori o incongruenze e risolvere problemi di replica. DCDiag aiuta anche gli amministratori a individuare e risolvere problemi di configurazione DNS, replica di SYSVOL e altri servizi critici necessari affinché Active Directory funzioni correttamente.
Esaminiamo DCDiag, un potente strumento Microsoft Windows. Lo utilizziamo per testare i servizi DNS, valutare lo stato di salute dei controller di dominio e persino correggere automaticamente gli errori. Anche se relativamente semplice, lo strumento è abbastanza potente da mantenere lo stato di salute di tutti i nostri controller di dominio.
Iniziamo con l’articolo DCDiag: Come controllare la salute del controller di dominio utilizzando Powershell
DCDiag: Come controllare la salute del controller di dominio utilizzando Powershell
Installazione dello strumento DCDiag
Se stiamo eseguendo Windows Server, dovremmo avere DCDiag installato. Microsoft ha integrato DCDiag nelle moderne versioni di Windows Server, a partire da 2012R2 e versioni successive.
Scopo dello strumento DCDiag
Il dominio dei controllori di Windows Server è diagnosticato e risolto con DCDiag, che è uno strumento da riga di comando che esegue un’ampia gamma di controlli di integrità su un controllore di dominio, compresi i test su DNS, replicazione, LDAP, analisi della sicurezza di uno o più DCs contemporaneamente all’interno del nostro dominio o azienda. Esaminiamo alcuni dei vari test che DCDiag esegue su un controllore di dominio:
- Test di connettività – DCDiag verifica se il controllore di dominio è connesso al network e può comunicare con altri controllori di dominio.
- Test DNS – verifica se il controller di dominio risolve e registra correttamente il DNS.
- Test di replicazione – verifica se il controller di dominio si replica in modo accurato con altri controller di dominio.
- Test di fiducia – DCDiag controlla se il controller di dominio fida altri domini e se altri domini fidano il controller di dominio.
- Test LDAP – verifica se le query LDAP funzionano correttamente sul controller di dominio.
- Test Kerberos – DCDiag controlla se l’autenticazione Kerberos funziona correttamente sul controller di dominio.
- SYSVOL test – DCDiag verifica se la replica SYSVOL funziona correttamente sul controller di dominio.
- Test del Catalogo Globale – DCDiag verifica se il DC funge da Catalogo Globale e se le query del Catalogo Globale funzionano correttamente.
Panoramica dello Strumento DCDiag
Bene, con l’articolo DCDiag: Come controllare la salute del controller di dominio utilizzando Powershell è un semplice strumento da riga di comando. Eseguiamo DCDiag su una finestra del prompt dei comandi o su una finestra di PowerShell. Ricorda di utilizzare i privilegi di amministratore.
La sintassi di base di DCDiag è la seguente:
dcdiag.exe /s:[:] [/u:\ /p:*||””]
Dove:
- /s – Il Controller di dominio
- /u:\ – L’Username
- \p:* – La Password
Questa semplice riga di comando restituisce i risultati dei test che mostrano il test principale (connettività) e qualsiasi test specificato sul controller di dominio.Per imparare come utilizzare il comando DCDiag command insieme a tutti i suoi interruttori, iniziamo con il comando di aiuto:
dcdiag /?
Parametri degli interruttori DCDiag
Per utilizzare uno qualsiasi dei seguenti switch, aggiungilo dopo il comando DCDiag. Un riepilogo dei popolari switch di comando:
- /s <ServerName> – Specifica il nome del server da testare. Se non viene specificato un nome di server, DCDiag esegue i test sul computer locale.
- /v – Fornisce output dettagliato e informazioni aggiuntive sui test eseguiti.
- /test:<TestName> – Specifica il nome del test da eseguire. Eseguiamo più test specificando più switch /test.
- /e – Esegue un insieme completo di test sul controller di dominio specificato.
- /fix – Tenta di risolvere eventuali problemi riscontrati durante i test.
- /f:<LogFileName> – Specifica il nome del file di log da creare.
- /c – Specifica che DCDiag dovrebbe eseguire solo i test necessari per la pubblicità dei servizi del controller di dominio.
- /skip:<NomeTest> – Salta il test specificato.
- /l:<NomeFileLog> – Specifica il file di log da aggiungere invece di sovrascriverlo.
- /q – Specifica la modalità silenziosa, che sopprime la visualizzazione di messaggi informativi.
- /test:DNS – Esegue i test DNS sul controller di dominio specificato.
- /test:KCC – Esegue i test KCC sul controller di dominio specificato.
- /test:Replications – Esegue i test di replicazione sul dc specificato.
- /test:Advertising – Esegue i test di annuncio sul dc specificato.
- /test:Services – Esegue i test sui servizi sul dc specificato.
Sopra sono alcuni dei comandi DCDiag più utilizzati, ma sono disponibili molte altre opzioni. Possiamo visualizzare un elenco completo di comandi e le loro definizioni eseguendo il comando help sopra.
Prova il nostro strumento di reporting sulla salute del DC di Active Directory
Provaci gratuitamente, accesso a tutte le funzionalità. – Oltre 200 modelli di report AD disponibili. Personalizza facilmente i tuoi report AD.
Esecuzione di DCDiag e casi d’uso
Per eseguire DCDiag, digita il comando DCDiag senza alcun comando per eseguire un test DCDiag di base sul nostro DC locale (o argomento).
dcdiag.exe
Poiché DCDiag identifica automaticamente il DC attuale (locale), non sono richiesti un controller di dominio né credenziali amministrative. Nella sezione seguente, discutiamo di diversi casi d’uso utilizzando i parametri dello switch DCDiag.
Verifica della salute del DC remoto
dcdiag.exe /s:dc01 /u:dc01\Administrator /p:password
Il DCPromo e il Register in DNS, che vengono eseguiti localmente e non per un controller di dominio, non saranno influenzati dallo switch /s.
Si noti che quando inseriamo le informazioni /u (username), dobbiamo specificare il nome dell’account con autorizzazioni di amministratore di dominio e utilizzare il formato corretto: dominio/username. Quindi, ad esempio, aggiungiamo il nome utente (Administrator) con il nome di dominio (dc01): /u:dc01\Administrator.
Controllo dello stato di salute per tutti i DC
Interconnettiamo ogni sito AD che può contenere una raccolta di DC tra loro. L’interruttore /a è vantaggioso se dividiamo l’AD in siti. Ci consente di eseguire l’utility DCDiag contemporaneamente per tutti i DC dei siti:
dcdiag.exe /s:dc01 /a
Utilizzo di DCDiag per Testare DNS
Indipendentemente da ciò che stiamo testando, lo strumento DCDiag controlla sempre la registrazione DNS di ogni controller di dominio durante il test di connettività primaria per impostazione predefinita. Inoltre, potremmo condurre test DNS specifici, come i forwarder, i record di registrazione e altri, tutti utili per indagare su problemi DNS. Per testare DNS, utilizzare il comando seguente:
dcdiag.exe /s:dc01 /test:dns
I seguenti test fondamentali vengono eseguiti per impostazione predefinita ad eccezione della risoluzione dei nomi esterni. Tutti i risultati DNS visualizzano il test DNSBasic. Se non è presente alcun valore, l’interruttore /test:dns passa automaticamente a /DNSall. Ecco alcuni test DNS specifici che chiamiamo quando utilizziamo lo strumento DCDiag:
- /DNSBasic – Verifica se il server DNS del controller di dominio è configurato correttamente e risolve i nomi.
- /DnsDelegation – Verifica se le delega DNS sono configurate correttamente per il controller di dominio.
- /DnsForwarders – Controlla se i forwarder DNS sono configurati correttamente per il controller di dominio.
- /DnsDynamicUpdate – Verifica se il controller di dominio esegue aggiornamenti dinamici a DNS.
- /DnsRecordRegistration – Verifica se la registrazione DNS del controller di dominio è aggiornata e accurata.
Queste verifiche garantiscono che la configurazione DNS di un controller di dominio sia corretta e funzionante. Se DCDiag rileva problemi durante queste verifiche, li affronta immediatamente per evitare potenziali problemi con Active Directory e altri servizi di rete. Un test DNS dovrebbe essere simile a questo:
Personalizzazione dei risultati di DCDiag
DCDiag ci consente di personalizzare i risultati mostrandoci meno o più informazioni. È inoltre possibile esportare i risultati per un’analisi successiva. Ecco alcuni esempi su come personalizzare la reportistica di DCDiag.
Esegui DCDiag in modalità silenziosa
La modalità silenziosa /q è molto utile, riducendo la dimensione dell’output visualizzando solo l’elenco dei messaggi di errore. Ecco un esempio di DCDiag in modalità silenziosa:
dcdiag.exe /s:dc01 /q
L’output con il /q è filtrato solo per gli errori, e si presenta così:
Esegui DCDiag con Output Dettagliato
Inserisci la bandiera dettagliata /v per eseguire DCDiag con output dettagliato. Ci fornisce più informazioni sui nostri compiti quotidiani, come errori, avvisi, messaggi informativi, ecc. Il comando /v è l’opposto del comando silenzioso /q.
Come accennato in precedenza, DCDiag (senza /v) fornisce informazioni sufficienti per identificare e risolvere qualsiasi problema con il nostro controller di dominio, il che può essere sufficiente nella maggior parte dei casi. Ecco un esempio di frammento con lo switch dettagliato:
dcdiag.exe /s:dc01 /v
L’output con lo switch /v dovrebbe apparire così:
Raccomandiamo l’output dettagliato solo se vediamo avvisi o errori nella tabella riassuntiva standard e vogliamo indagare più a fondo sul problema.
Esportazione dei Risultati di DCDiag
Il tool DCDiag ci permette di esportare i risultati del controllo di integrità. Ad esempio, possiamo salvare tutti i risultati dei test in un file di testo aggiungendo lo switch /f al comando DCDiag. Ad esempio:
dcdiag.exe /s:dc01 f:c:\dcdiag_dc01_test01.txt
Si noti che personalizziamo il nome del file di log e lo salviamo in una cartella specifica. Apriamo i risultati in notepad o in qualsiasi programma che supporti i file .txt.
Esportiamo anche i risultati in XLSX o XML. Tuttavia, questa funzione funziona solo per lo switch /test:dns:
dcdiag.exe /test:dns /x or, /test:dns/x:
DCDiag è esclusivamente uno strumento diagnostico. Pertanto, esegue diversi test e fornisce esclusivamente i suoi risultati. Lo switch /fix, tuttavia, è un ottimo switch che cerca di risolvere in sicurezza i problemi indicati.
dcdiag.exe /s:dc01 /fix
Non è necessario fornire ulteriori parametri o caratteristiche quando si utilizza lo switch /fix. Solo per il test MachineAccount, lo switch /f è funzionale. Ripara l’oggetto MachineAccount del DC’s Service Principal Names (SPNs).
Nota: Anche se DCDiag progetta lo switch (fix) per apportare riparazioni automatiche in sicurezza, modifica comunque il controller di dominio. Di conseguenza, esaminare i risultati dei test prima di utilizzare lo switch /f e sempre creare un backup del DC.
Utilizzo di DCDiag con PowerShell
Non esiste un corrispettivo di DCDiag in Windows PowerShell. Tuttavia, utilizziamo DCDiag in PowerShell eseguendo il comando dcdiag.exe con i parametri appropriati utilizzando i cmdlet Invoke-Expression o Invoke-Command. Ecco un esempio di come utilizzare DCDiag in PowerShell per eseguire i test DNS:
Invoke-Expression "dcdiag.exe /test:DNS /v"
In questo esempio, abbiamo utilizzato il cmdlet Invoke-Expression per eseguire il comando dcdiag.exe con il parametro /test:DNS per eseguire i test DNS e il parametro /v per fornire un output dettagliato. Naturalmente, possiamo sostituire /test:DNS con qualsiasi altro test DCDiag che vogliamo eseguire. In alternativa, utilizziamo il cmdlet Invoke-Command per eseguire DCDiag su un computer remoto.
Ecco un altro esempio:
Invoke-Command -ComputerName "ServerName" -ScriptBlock { dcdiag.exe /test:DNS /v }
Nell’esempio precedente, abbiamo utilizzato il parametro -ScriptBlock con Invoke-Command per specificare il codice che volevamo eseguire sul computer remoto. Il parametro -ScriptBlock accetta un blocco di script, essenzialmente un blocco di codice racchiuso tra parentesi graffe {}.
Quando usiamo Invoke-Command con il parametro -ScriptBlock, eseguiamo il blocco di script sul computer remoto specificato dal parametro -ComputerName, e il blocco di script restituisce l’output al computer locale. L’utilizzo del parametro -ScriptBlock con Invoke-Command è un modo potente per eseguire comandi o script su computer remoti. Aiuta a gestire un gran numero di computer in un ambiente di rete, proprio come abbiamo usato lo strumento DCDiag.
Grazie per aver letto DCDiag: Come controllare lo stato di salute del controller di dominio utilizzando Powershell. Concluderemo ora l’articolo.
In conclusione, DCDiag è uno strumento essenziale per gli amministratori che gestiscono ambienti Active Directory . Offrendo un’ampia suite di controlli di integrità per i controller di dominio aiuta gli amministratori a diagnosticare e risolvere i problemi facilmente. La capacità di eseguire test dettagliati relativi a DNS, replicazione, LDAP, sicurezza e altro ancora rende DCDiag uno strumento prezioso per garantire l’integrità e la stabilità dei controller di dominio e dell’ambiente Active Directory environment .
Integrando DCDiag nelle routine di manutenzione e monitoraggio regolari, gli amministratori aiutano a prevenire problemi più gravi e garantiscono che il loro ambiente Active Directory rimanga sicuro e affidabile.
Source:
https://infrasos.com/dcdiag-how-to-check-domain-controller-health-using-powershell/