¿Cómo puedo encontrar el nombre / dirección IP del controlador de dominio AD en mi red?
¿Cómo puedo encontrar el nombre / dirección IP del controlador de dominio AD en mi red?
Respuestas:
En cualquier computadora que tenga DNS configurado para usar el servidor DNS de AD, haga lo siguiente:
Inicio -> Ejecutar -> nslookup
set type=all
_ldap._tcp.dc._msdcs.DOMAIN_NAME
Reemplace DOMAIN_NAME con el nombre de dominio real, por ejemplo, ejemplo.com . Lee más aquí .
_ldap._tcp.dc._msdcs.UnKnown
. ¿Qué significa UnKnown ?
Para una computadora que es miembro de un dominio, el LOGONSERVER variable de entorno contiene el nombre del DC que autenticó al usuario actual. Obviamente, esto no será todo DC en un entorno de DC múltiple, pero si todo lo que desea es una forma rápida de encontrar el nombre de un controlador de dominio, entonces desde un shell de comandos:
set l <enter>
Devolverá todas las variables de entorno que comienzan con "L", incluido el nombre de un DC.
Una opción no mencionada, súper fácil y rápida es ejecutar esto desde un símbolo del sistema:
nltest /dclist:domainname
Simplemente reemplace 'domainname' con su dominio
También puede ejecutar algunas otras opciones para obtener más información:
/dcname:domainname
obtiene el nombre PDC para el dominio
/dsgetdc:domainname
tiene banderas para otra información
¡Pruebe nltest /?
en su solicitud para obtener más opciones! :)
C:\> nltest /dclist:domainname Cannot find DC to get DC list from.Status = 1355 0x54b ERROR_NO_SUCH_DOMAIN The command completed successfully
Qué significa eso?
Esto devolverá su controlador de dominio más cercano en Powershell:
Import-Module ActiveDirectory
(Get-ADDomainController -DomainName <Domain FQDN> -Discover -NextClosestSite).HostName
Desde un símbolo del sistema, ejecute gpresult
. Conseguirás:
Aquí hay un ejemplo de salida de ejecucióngpresult
. También puede especificar gpresult /z
para obtener información más detallada.
gpresult /Z
genera MUCHOS datos. Gracias.
DNS y DHCP son la mejor manera de verificar, ya que puede haber máquinas Unix / Linux en la red administradas por el controlador de dominio AD o actuando como controlador de dominio.
Además, considerar el directorio activo no es más que la versión de Kerberos, LDAP, dhcp y dns de Microsoft. Sería mejor entender y depurar las cosas en capas inferiores que la capa 7+. Esto se debe a que el sistema operativo realizaría estas mismas solicitudes y el RFC subyacente para cada protocolo en realidad opera en un nivel OSI, no en el nivel "insertar herramienta favorita aquí".
Uno puede ir un paso más allá y consultar el DHCP para opciones 6, 15, y 44 para obtener el nombre de dominio , servidor de nombres de dominio y servidor de nombres WINS / NetBIOS .
Luego, use dns para verificar los registros _kerberos._tcp, _kpasswd._tcp, _LDAP._TCP.dc._msdcs y _ldap._tcp SRV:
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
Esto se divide en tres áreas, dos son registros DNS-SD compatibles con el protocolo:
_kerberos._tcp
y _kpasswd._tcp
(también bajo UNIX / Linux / OSX + algunas redes Windows tiene _kadmin._tcp
) son para kerberos_ldap._tcp
es para ldap (openldap, opendc, directorio sun / oracle, ms ad)
_LDAP._TCP.dc._msdcs
es la única extensión de Microsoft para ldap para asignar el controlador de dominio.Guardar como GetDcNames.cmd
:
nslookup -type=any %userdnsdomain%.
Ejecutar como: GetDcNames.cmd
.
(Nota: El punto final en "% userdnsdomain%." Es a propósito. Impide que su nslookup local use cualquier cadena de ruta de búsqueda DNS).
Creé un archivo por lotes rápido y sucio, para no tener que recordar los nombres de dominio DNS y / o tener que escribirlos todos. (La lista puede no estar completa).
Funciona desde máquinas unidas al dominio. Si su máquina no está unida al dominio, debe configurar manualmente USERDNSDOMAIN a lo que desea.
Guardar como 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%.
Corre como TestAdDnsRecords.cmd | more
. Hay mucha salida de texto.