Wie kann ich den Namen / die IP-Adresse des AD-Domänencontrollers in meinem Netzwerk ermitteln?
Wie kann ich den Namen / die IP-Adresse des AD-Domänencontrollers in meinem Netzwerk ermitteln?
Antworten:
Auf jedem Computer, auf dem DNS für die Verwendung des DNS-Servers von AD konfiguriert ist, gehen Sie wie folgt vor:
Start -> Ausführen -> nslookup
set type=all
_ldap._tcp.dc._msdcs.DOMAIN_NAME
Ersetzen Sie DOMAIN_NAME durch den tatsächlichen Domainnamen, z . B. example.com . Lesen Sie hier mehr .
_ldap._tcp.dc._msdcs.UnKnown
. Was bedeutet Unbekannt ?
Für einen Computer, der Mitglied einer Domäne ist, enthält die Umgebungsvariable LOGONSERVER den Namen des Domänencontrollers, der den aktuellen Benutzer authentifiziert hat. Dies sind natürlich nicht alle Domänencontroller in einer Umgebung mit mehreren Domänencontrollern. Wenn Sie jedoch nur schnell den Namen eines Domänencontrollers ermitteln möchten, verwenden Sie eine Befehlsshell:
set l <enter>
Gibt alle Umgebungsvariablen zurück, die mit "L" beginnen, einschließlich des Namens eines DC.
Eine nicht erwähnte, supereinfache und schnelle Option besteht darin, dies an einer Eingabeaufforderung auszuführen:
nltest /dclist:domainname
Ersetzen Sie einfach "Domainname" durch Ihre Domain
Sie können auch einige andere Optionen ausführen, um mehr zu erfahren:
/dcname:domainname
Ruft den PDC-Namen für die Domäne ab.
/dsgetdc:domainname
Hat Flags für andere Informationen
Versuchen Sie nltest /?
in Ihrer Aufforderung, weitere Optionen zu erhalten! :)
C:\> nltest /dclist:domainname Cannot find DC to get DC list from.Status = 1355 0x54b ERROR_NO_SUCH_DOMAIN The command completed successfully
Was bedeutet das?
Dies gibt den nächstgelegenen Domänencontroller in Powershell zurück:
Import-Module ActiveDirectory
(Get-ADDomainController -DomainName <Domain FQDN> -Discover -NextClosestSite).HostName
Führen Sie an einer Eingabeaufforderung Folgendes aus gpresult
. Sie erhalten:
Hier ist ein Beispiel für die Ausgabe von runninggpresult
. Sie können auch angeben gpresult /z
, um detailliertere Informationen zu erhalten.
gpresult /Z
gibt eine Menge Daten aus. Vielen Dank.
DNS und DHCP sind die beste Methode zur Überprüfung, da im Netzwerk Unix / Linux-Computer vorhanden sein können, die vom AD-Domänencontroller verwaltet werden oder als Domänencontroller fungieren.
Darüber hinaus ist Active Directory nichts anderes als die Microsoft-Version von Kerberos, LDAP, DHCP und DNS. Es wäre besser, Dinge in niedrigeren Schichten als in Schicht 7+ zu verstehen und zu debuggen. Dies liegt daran, dass das Betriebssystem dieselben Anforderungen ausführt und der unterstreichende RFC für jedes Protokoll tatsächlich auf einer OSI-Ebene ausgeführt wird, nicht auf der Ebene "Favoritentool hier einfügen".
Sie können einen Schritt weiter gehen und den DHCP-Server nach den Optionen 6, 15 und 44 abfragen, um den Domänennamen , den Domänennamenserver und den Wins / NetBIOS-Namenserver abzurufen .
Verwenden Sie dann DNS, um nach den SRV-Einträgen _kerberos._tcp, _kpasswd._tcp, _LDAP._TCP.dc._msdcs und _ldap._tcp zu suchen:
nslookup -type=srv _kerberos._tcp.EXMAPLE.COM
nslookup -type=srv _kpasswd._tcp.EXAMPLE.COM
nslookup -type=srv _ldap._tcp.EXAMPLE.COM
nslookup -type=srv _ldap._tcp.dc._msdcs.EXAMPLE.COM
.EXAMPLE.COM ::= value returned from dhcp option-1
Dies gliedert sich in drei Bereiche, von denen zwei protokollgestützte DNS-SD-Einträge sind:
_kerberos._tcp
und _kpasswd._tcp
(auch unter UNIX / Linux / OSX + haben einige Windows-Netzwerke _kadmin._tcp
) sind für Kerberos_ldap._tcp
ist für ldap (openldap, opendc, sun / oracle verzeichnis, ms ad)
_LDAP._TCP.dc._msdcs
die einzige Erweiterung von Microsoft für ldap, um den Domänencontroller zuzuordnen.Speichern als GetDcNames.cmd
:
nslookup -type=any %userdnsdomain%.
Führen Sie so: GetDcNames.cmd
.
(Hinweis: Der abschließende Punkt in "% userdnsdomain%." Ist absichtlich. Er hindert Ihr lokales nslookup daran, DNS-Suchpfadzeichenfolgen zu verwenden.)
Ich habe eine schnelle und schmutzige Batch-Datei erstellt, damit ich mich nicht an die DNS-Domänennamen erinnern und / oder sie alle eingeben muss. (Die Liste ist möglicherweise nicht vollständig.)
Funktioniert von Maschinen mit Domänenbeitritt. Wenn Ihr Computer nicht der Domäne angehört, müssen Sie USERDNSDOMAIN manuell auf den gewünschten Wert einstellen.
Speichern als TestAdDnsRecords.cmd
:
@setlocal
@REM Test AD DNS domains for presence.
@REM For details see: http://serverfault.com/a/811622/253701
nslookup -type=srv _kerberos._tcp.%userdnsdomain%.
nslookup -type=srv _kerberos._udp.%userdnsdomain%.
@echo .
nslookup -type=srv _kpasswd._tcp.%userdnsdomain%.
nslookup -type=srv _kpasswd._udp.%userdnsdomain%.
@echo .
nslookup -type=srv _ldap._tcp.%userdnsdomain%.
@echo .
nslookup -type=srv _ldap._tcp.dc._msdcs.%userdnsdomain%.
@echo .
nslookup -type=srv _ldap._tcp.pdc._msdcs.%userdnsdomain%.
@echo .
@REM Those next few lines here are forest specific:
@REM Change the next line your current domain is not also the forest root.
@SET "DNSFORESTNAME=%USERDNSDOMAIN%"
nslookup -type=srv _ldap._tcp.gc._msdcs.%DNSFORESTNAME%.
@echo .
nslookup -type=srv _gc._tcp.%DNSFORESTNAME%.
Führen Sie so TestAdDnsRecords.cmd | more
. Es wird viel Text ausgegeben.