Come posso trovare il nome / l'indirizzo IP del controller di dominio AD sulla mia rete?
Come posso trovare il nome / l'indirizzo IP del controller di dominio AD sulla mia rete?
Risposte:
Su qualsiasi computer che abbia il DNS configurato per utilizzare il server DNS di AD fare:
Avvia -> Esegui -> nslookup
set type=all
_ldap._tcp.dc._msdcs.DOMAIN_NAME
Sostituisci DOMAIN_NAME con il nome di dominio effettivo, ad esempio esempio.com . Leggi di più qui .
_ldap._tcp.dc._msdcs.UnKnown
. Che cosa significa sconosciuto ?
Per un computer membro di un dominio, la variabile di ambiente LOGONSERVER contiene il nome del controller di dominio che ha autenticato l'utente corrente. Questo ovviamente non sarà per tutti i controller di dominio in un ambiente multi-controller, ma se tutto ciò che desideri è un modo rapido per trovare il nome di un controller di dominio, quindi da una shell dei comandi:
set l <enter>
Restituirà tutte le variabili di ambiente che iniziano con "L" incluso il nome di un controller di dominio.
Un'opzione non menzionata, super facile e rapida è quella di eseguire questo da un prompt dei comandi:
nltest /dclist:domainname
Sostituisci semplicemente "domainname" con il tuo dominio
Puoi anche eseguire alcune altre opzioni per saperne di più:
/dcname:domainname
ottiene il nome PDC per il dominio
/dsgetdc:domainname
ha flag per altre informazioni
Prova nltest /?
nel tuo prompt per ottenere più opzioni! :)
C:\> nltest /dclist:domainname Cannot find DC to get DC list from.Status = 1355 0x54b ERROR_NO_SUCH_DOMAIN The command completed successfully
Cosa significa?
Ciò restituirà il controller di dominio più vicino in Powershell:
Import-Module ActiveDirectory
(Get-ADDomainController -DomainName <Domain FQDN> -Discover -NextClosestSite).HostName
Da un prompt dei comandi, eseguire gpresult
. Otterrete:
Ecco un esempio di output di corsagpresult
. È inoltre possibile specificare gpresult /z
per ottenere informazioni più dettagliate.
gpresult /Z
genera MOLTI dati. Grazie.
DNS e DHCP sono il modo migliore per verificare poiché nella rete possono essere presenti macchine Unix / Linux gestite dal controller di dominio AD o che fungono da controller di dominio.
Inoltre, considerando active directory non è altro che la versione Microsoft di Kerberos, LDAP, dhcp e dns. Sarebbe meglio comprendere ed eseguire il debug delle cose ai livelli inferiori rispetto al livello 7+. Questo perché il sistema operativo preformerebbe queste stesse richieste e la RFC sottolineata per ciascun protocollo funziona effettivamente a livello di OSI e non a livello di "inserire lo strumento preferito qui".
Si può fare un passo ulteriore e interrogare il DHCP per le opzioni di 6, 15, e 44 per ottenere il nome di dominio , server dei nomi di dominio e server dei nomi WINS / NetBIOS .
Quindi utilizzare dns per verificare i record SRV _kerberos._tcp, _kpasswd._tcp, _LDAP._TCP.dc._msdcs e _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
Questo si suddivide in tre aree, due sono record DNS-SD supportati dal protocollo:
_kerberos._tcp
e _kpasswd._tcp
(anche in UNIX / Linux / OSX + alcune reti Windows hanno _kadmin._tcp
) sono per Kerberos_ldap._tcp
è per ldap (openldap, opendc, directory sun / oracle, ms ad)
_LDAP._TCP.dc._msdcs
è l'unica estensione Microsoft a ldap per mappare il controller di dominio.Salva come GetDcNames.cmd
:
nslookup -type=any %userdnsdomain%.
Esegui come: GetDcNames.cmd
.
(Nota: il punto finale in "% userdnsdomain%." È apposta. Impedisce a nslookup locale di utilizzare qualsiasi stringa del percorso di ricerca DNS.)
Ho creato un file batch rapido e sporco, in modo da non dover ricordare i nomi di dominio DNS e / o digitarli tutti. (L'elenco potrebbe non essere completo.)
Funziona da macchine unite al dominio. Se il tuo computer non ha un dominio, devi impostare manualmente USERDNSDOMAIN su quello che desideri.
Salva come 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%.
Esegui come TestAdDnsRecords.cmd | more
. C'è molto output di testo.