W tym wpisie pokażę, w jaki sposób użyć narzędzia wiersza poleceń Dcdiag do sprawdzania stanu kontrolera domeny. Dcdiag wykorzystam do testowania DNS.
Czym jest Dcdiag?
Dcdiag to narzędzie wiersza poleceń systemu Microsoft Windows, które może analizować stan kontrolerów domeny w lesie lub przedsiębiorstwie. Możesz wybrać analizę pojedynczego kontrolera domeny lub wszystkich kontrolerów domeny w lesie.
Dcdiag dysponuje co najmniej 30 różnymi testów, które można wykorzystać do sprawdzenia stanu kontrolera domeny.
Co właściwie robi Dcdiag? Jakiego rodzaju testy wykonuje?
Możesz wyświetlić listę testów w menu pomocy poleceń, uruchom dcdiag /? aby wyświetlić menu pomocy. Muszę przyznać, że opisy z polecenia help nie są zbyt pomocne. Natknąłem się na dobry wpis na blogu autorstwa Neda Pyle’a zatytułowany What does DCDIAG actually… do?, który wyjaśnia każdy test bardziej szczegółowo. Jeśli chcesz dowiedzieć się dokładnie, co robi polecenie Dcdiag, polecam przeczytanie tego postu.
Jak zainstalować Dcdiag?
Istnieje naprawdę duża szansa, że masz już zainstalowane narzędzie Dcdiag. Jeśli masz zainstalowaną rolę AD DS, program Dcdiag jest już zainstalowany. Narzędzia administracji zdalnej serwera (RSAT), oznacza również posiada Dcdiag.
Jak korzystać z Dcdiag (przykłady)?
DCDiag jest bardzo łatwy w użyciu. Istnieje kilka różnych przełączników wiersza poleceń, których można użyć z Dcdiag, aby wyświetlić je wszystkie, wystarczy użyć tego polecenia dcdiag /?.
Przegląd przełączników Dcdiag, które przydadzą się w przykładach.
/s: przełącznik dcname służy do uruchamiania programu Dcdiag na serwerze zdalnym
/v: przełącznik wyświetla bardziej szczegółowe informacje o każdym teście
/c: przełącznik oznacza kompleksowy, spowoduje to uruchomienie wszystkich testów, w tym testu dns.
/q: przełącznik wypisze tylko błędy. Jest to przydatne, ponieważ dcdiag może wyświetlać wiele informacji, jeśli chcesz zobaczyć tylko błędy, użyj tego przełącznika.
/f: przełącznik służy do przekierowania wyników do pliku.
Podczas uruchamiania dcdiag prawdopodobnie zgłosi błędy, ale niekoniecznie oznacza to, że masz problemy z kontrolerami domeny. Na przykład polecenie wyśle zapytanie do dzienników systemowych na kontrolerze domeny i wyświetli dzienniki błędów, ale mogą to być błędy z komputera lub innego serwera. Ponownie może to nie być problem z DC. Będziesz musiał tylko przejrzeć i ustalić, czy jest to powiązane, czy nie.
Przykłady użycia Dcdiag
Przykład 1: Użyj /s, aby uruchomić dsdiag na zdalnym serwerze DC01.
1 |
dcdiag /s:DC01 |
Aby uruchomić to na serwerze lokalnym, po prostu pomiń /s: nazwa_serwera.
Przykład 2: użycie przełącznika /v w celu wyświetlenia większej ilości szczegółów.
1 |
dcdiag /s:DC01 /v |
Przełącznik „verbose” wyświetli dodatkowe szczegóły. Wykonuje te same testy, co pierwszy przykład, po prostu wyświetla więcej szczegółów na temat każdego testu.
Przykład 3: użycie przełącznika /f do zapisania w pliku dziennika
Używając /f możesz zapisać wyniki do pliku tekstowego. Jest to doskonałe do rejestrowania wyników i przeglądania ich w późniejszym czasie.
1 |
dcdiag /s:DC01 /f:c:\temp\dcdiag.txt |
Przykład 4: Użycie przełącznika /a do uruchomienia na wszystkich kontrolerach domeny.
Jeśli masz wiele kontrolerów domeny i chcesz przetestować je wszystkie jednocześnie, użyj tego polecenia. Jeśli masz wiele kontrolerów domeny, wyświetli się wiele informacji, w tym miejscu przydałoby się użycie opcji /f.
1 |
dcdiag /s:DC01 /a |
Przykład 5: Użyj przełącznika /q, aby wyświetlić tylko błędy
Dcdiag może wyświetlać wiele informacji, aby usunąć pozostałe informacje i wyświetlić tylko błędy, użyj tego polecenia.
1 |
dcdiag /s:DC01 /q |
Przykład 6: Użyj wielu przełączników.
Uruchomi wszystkie testy, wyświetli wszystkie szczegóły i wyprowadzi je do pliku.
1 |
dcdiag /s:DC01 /c /v /f:c:\temp\dcdiag.txt |
Teraz, gdy wiesz, jak przetestować kontrolery domeny, przejdę do testowania DNS. Nawiasem mówiąc, jeśli użyjesz ostatniego przykładu, który zawiera przełącznik /c, ten przełącznik uruchomi wszystkie testy, w tym DNS.
Jak przetestować DNS za pomocą Dcdiag?
Diagnostyka DNS obejmuje również kilka testów.
Oto testy, które są wykonywane, domyślnie uruchamiane są wszystkie testy z wyjątkiem rozpoznawania nazw zewnętrznych.
/DnsBasic (podstawowe testy, nie można pominąć)
/DnsForwarders (testy forwarderów i podpowiedzi root)
/DnsDelegation (testy delegacji)
/DnsDynamicUpdate (testy dynamicznej aktualizacji)
/DnsRecordRegistration (testy rejestracji rekordów)
/DnsResolveExtName (test rozpoznawania nazw zewnętrznych)
/DnsAll (zawiera wszystkie powyższe testy)
/DnsInternetName: (dla testu /DnsResolveExtName)
Użyj następującego polecenia, aby uruchomić test DNS:
1 |
dcdiag /s:DC01 /test:dns |
Przykład: wyniki Dcdiag z normalnego kontrolera domeny
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
Directory Server Diagnosis Performing initial setup: * Identified AD Forest. Done gathering initial info. Doing initial required tests Testing server: Default-First-Site-Name\DC01 Starting test: Connectivity ......................... DC01 passed test Connectivity Doing primary tests Testing server: Default-First-Site-Name\DC01 Starting test: Advertising ......................... DC01 passed test Advertising Starting test: FrsEvent ......................... DC01 passed test FrsEvent Starting test: DFSREvent ......................... DC01 passed test DFSREvent Starting test: SysVolCheck ......................... DC1 passed test SysVolCheck Starting test: KccEvent ......................... DC01 passed test KccEvent Starting test: KnowsOfRoleHolders ......................... DC01 passed test KnowsOfRoleHolders Starting test: MachineAccount ......................... DC01 passed test MachineAccount Starting test: NCSecDesc ......................... DC01 passed test NCSecDesc Starting test: NetLogons ......................... DC01 passed test NetLogons Starting test: ObjectsReplicated ......................... DC01 passed test ObjectsReplicated Starting test: Replications ......................... DC01 passed test Replications Starting test: RidManager ......................... DC01 passed test RidManager Starting test: Services ......................... DC01 passed test Services Starting test: SystemLog ......................... DC01 passed test SystemLog Starting test: VerifyReferences ......................... DC01 passed test VerifyReferences Running partition tests on : ForestDnsZones Starting test: CheckSDRefDom ......................... ForestDnsZones passed test CheckSDRefDom Starting test: CrossRefValidation ......................... ForestDnsZones passed test CrossRefValidation Running partition tests on : DomainDnsZones Starting test: CheckSDRefDom ......................... DomainDnsZones passed test CheckSDRefDom Starting test: CrossRefValidation ......................... DomainDnsZones passed test CrossRefValidation Running partition tests on : Schema Starting test: CheckSDRefDom ......................... Schema passed test CheckSDRefDom Starting test: CrossRefValidation ......................... Schema passed test CrossRefValidation Running partition tests on : Configuration Starting test: CheckSDRefDom ......................... Configuration passed test CheckSDRefDom Starting test: CrossRefValidation ......................... Configuration passed test CrossRefValidation Running partition tests on : ad Starting test: CheckSDRefDom ......................... ad passed test CheckSDRefDom Starting test: CrossRefValidation ......................... ad passed test CrossRefValidation Running enterprise tests on : beitadminpl.local Starting test: LocatorCheck ......................... beitadminpl.local passed test LocatorCheck Starting test: Intersite ......................... beitadminpl.local passed test Intersite |
Przykład: Nie powiodła się usługa kdc i usługa NETLOGON
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
C:\Users\beitadminpl>dcdiag /s:dc02 /q Fatal Error:DsGetDcName (DC02) call failed, error 1717 The Locator could not find the server. ......................... DC02 failed test Advertising kdc Service is stopped on [DC02] NETLOGON Service is stopped on [DC02] ......................... DC02 failed test Services Warning: DcGetDcName(GC_SERVER_REQUIRED) call failed, error 1717 A Global Catalog Server could not be located - All GC's are down. Warning: DcGetDcName(PDC_REQUIRED) call failed, error 1717 A Primary Domain Controller could not be located. The server holding the PDC role is down. Warning: DcGetDcName(TIME_SERVER) call failed, error 1717 A Time Server could not be located. The server holding the PDC role is down. Warning: DcGetDcName(GOOD_TIME_SERVER_PREFERRED) call failed, error 1717 A Good Time Server could not be located. Warning: DcGetDcName(KDC_REQUIRED) call failed, error 1717 A KDC could not be located - All the KDCs are down. ......................... beitadminpl.local failed test LocatorCheck |
Podsumowanie
DCDiag to proste, ale bardzo wydajne narzędzie do sprawdzania i diagnozowania kontrolerów domeny. Gorąco polecam zapoznanie się z tym narzędziem i od czasu do czasu uruchamianie go w swoim środowisku.
Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.
Link do formularza tutaj: https://beitadmin.pl/pomysly
Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).