Comment puis-je connaître le nom / l'adresse IP du contrôleur de domaine AD sur mon réseau?
Comment puis-je connaître le nom / l'adresse IP du contrôleur de domaine AD sur mon réseau?
Réponses:
Sur tout ordinateur sur lequel DNS est configuré pour utiliser le serveur DNS d'AD, procédez comme suit:
Démarrer -> Exécuter -> nslookup
set type=all
_ldap._tcp.dc._msdcs.DOMAIN_NAME
Remplacez DOMAIN_NAME par le nom de domaine actuel, par exemple exemple.com . Lire la suite ici .
_ldap._tcp.dc._msdcs.UnKnown
. Que signifie UnKnown ?
Pour un ordinateur membre d'un domaine, la variable d'environnement LOGONSERVER contient le nom du contrôleur de domaine qui a authentifié l'utilisateur actuel. Cela ne va évidemment pas concerner tous les contrôleurs de domaine dans un environnement multi-contrôleurs, mais si tout ce que vous voulez est un moyen rapide de trouver le nom d'un contrôleur de domaine, utilisez un interpréteur de commande:
set l <enter>
Renverra toutes les variables d'environnement commençant par "L", y compris le nom d'un contrôleur de domaine.
Une option peu mentionnée, très facile et rapide consiste à exécuter cette opération à partir d'une invite de commande:
nltest /dclist:domainname
Il suffit de remplacer 'domainname' par votre domaine
Vous pouvez également exécuter d'autres options pour en savoir plus:
/dcname:domainname
obtient le nom du PDC pour le domaine
/dsgetdc:domainname
a des drapeaux pour d'autres informations
Essayez nltest /?
dans votre invite pour obtenir plus d'options! :)
C:\> nltest /dclist:domainname Cannot find DC to get DC list from.Status = 1355 0x54b ERROR_NO_SUCH_DOMAIN The command completed successfully
Qu'est-ce que ça veut dire?
Cela retournera votre contrôleur de domaine le plus proche dans Powershell:
Import-Module ActiveDirectory
(Get-ADDomainController -DomainName <Domain FQDN> -Discover -NextClosestSite).HostName
À partir d'une invite de commande, exécutez gpresult
. Tu auras:
Voici un exemple de sortie de runninggpresult
. Vous pouvez également spécifier gpresult /z
pour obtenir des informations plus détaillées.
gpresult /Z
sort beaucoup de données. Merci.
DNS et DHCP sont le meilleur moyen de vérifier car il peut y avoir des machines Unix / Linux sur le réseau gérées par le contrôleur de domaine AD ou agissant en tant que contrôleur de domaine.
De plus, considérer Active Directory n’est rien d’autre que la version de Kerberos, LDAP, DHCP et DNS de Microsoft. Il serait préférable de comprendre et de déboguer les choses des couches inférieures que de la couche 7+. Cela est dû au fait que le système d’exploitation répondrait à ces mêmes demandes et que le RFC souligné de chaque protocole fonctionne en fait au niveau OSI et non au niveau "insérer l’outil favori ici".
On peut aller plus loin et interroger les dhcp pour les options 6, 15 et 44 pour obtenir le nom de domaine , serveur de noms de domaine , et Wins / NetBIOS serveur de noms .
Puis, utilisez dns pour vérifier les enregistrements SR_kerberos._tcp, _kpasswd._tcp, _LDAP._TCP.dc._msdcs et _ldap._tcp:
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
Cela se décompose en trois zones, dont deux sont des enregistrements DNS-SD supportés par protocole:
_kerberos._tcp
et _kpasswd._tcp
(également sous UNIX / Linux / OSX + certains réseaux Windows a _kadmin._tcp
) sont pour Kerberos_ldap._tcp
est pour ldap (openldap, opendc, répertoire sun / oracle, ms ad)
_LDAP._TCP.dc._msdcs
est la seule extension Microsoft à ldap pour mapper le contrôleur de domaine.Enregistrer sous GetDcNames.cmd
:
nslookup -type=any %userdnsdomain%.
Exécuter en tant que: GetDcNames.cmd
.
(Remarque: le point de fin dans "% userdnsdomain%." Est volontaire. Il empêche votre nslookup local d'utiliser des chaînes de chemin de recherche DNS.)
J'ai préparé un fichier de commandes rapide et sale, de sorte que je n'ai pas à me souvenir des noms de domaine DNS et / ou à tous les taper. (La liste peut ne pas être complète.)
Fonctionne depuis des machines jointes à un domaine. Si votre ordinateur n'est pas associé à un domaine, vous devez définir manuellement USERDNSDOMAIN sur votre choix.
Enregistrer sous 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%.
Courir en tant que TestAdDnsRecords.cmd | more
. Il y a beaucoup de sortie de texte.