Búsqueda de sitios web

Get-ADDomainController: Obtener información de controladores de dominio a través de PowerShell


Puede usar el cmdlet de PowerShell Get-ADDomainController para obtener información sobre los controladores de dominio en Active Directory. Este cmdlet forma parte del módulo PowerShell Active Directory y requiere la instalación de RSAT (en Windows 10 1809 y versiones posteriores, RSAT se instala de forma diferente).

Cmdlet Get-ADDomainController

Cuando se ejecuta Get-ADDomainController sin ningún parámetro, el cmdlet muestra la información sobre el controlador de dominio actual (LogonServer) que usa esta computadora para autenticarse (el DC se selecciona de acuerdo con el sitio AD y la topología de subredes IP).

El cmdlet devolvió todos los campos con la información sobre el controlador de dominio disponible en la base de datos de Active Directory.

ComputerObjectDN : CN=MunDC01,OU=Domain Controllers,DC=corp,DC=a-d,DC=com
DefaultPartition : DC=corp,DC= a-d,DC=com
Domain : corp.a-d.site
Enabled : True
Forest : a-d.site
HostName : MunDC01.corp.a-d.site
InvocationId : 921234a-2a32-4312-9e12-3b32343ab4ad
IPv4Address : 192.168.1.6
IPv6Address :
IsGlobalCatalog : True
IsReadOnly : False
LdapPort : 389
Name : MunDC01
NTDSSettingsObjectDN : CN=NTDS Settings,CN=MunDC01,CN=Servers,CN=DE,CN=Sites,CN=Configuration,DC=a-d,DC=com
OperatingSystem : Windows Server 2012 R2 Standard
OperatingSystemHotfix :
OperatingSystemServicePack :
OperatingSystemVersion : 6.3 (9600)
OperationMasterRoles : {}
Partitions : {DC=ForestDnsZones,DC=a-d,DC=com, DC=DomainDnsZones,DC=corp,DC=a-d,DC=com, CN=Schema,CN=Configuration,DC=a-d,DC=com...}
ServerObjectDN : CN=MunDC01,CN=Servers,CN=DE,CN=Sites,CN=Configuration,DC=a-d,DC=com
ServerObjectGuid : 8123453-e294-1234-a987-1234535432d6
Site : DE
SslPort : 636

Además, puede encontrar el controlador de dominio al que debe pertenecer su computadora a través del servicio DCLocator:

Get-ADDomainController -Discover

Puede encontrar el DC disponible más cercano con el rol activo de AD Web Services:

Get-ADDomainController -ForceDiscover -Discover -Service ADWS

Puede usar el parámetro Servicio para encontrar el PDC (u otra función de FSMO) en su dominio:

Get-ADDomainController -Discover -Service PrimaryDC

Si su controlador de dominio no se encuentra o no responde, puede encontrar el controlador de dominio en el sitio de AD más cercano (determinado por el peso de los enlaces entre sitios):

Get-ADDomainController -Discover -ForceDiscover -NextClosestSite

Para mostrar la lista de todos los controladores de dominio en el dominio actual, ejecute este comando:

Get-ADDomainController -Filter * | ft

Con este comando, puede contar la cantidad de controladores de dominio en AD:

Get-ADDomainController -Filter * | Measure-Object

Puede mostrar una tabla más conveniente que muestre todos los controladores de dominio, sus nombres de host, direcciones IP, versiones del sistema operativo y nombres de sitios de AD:

Get-ADDomainController -Filter *| Select Name, ipv4Address, OperatingSystem, site | Sort-Object name

Si desea obtener información sobre un DC de otro dominio, especifique el nombre de cualquier DC disponible en otro dominio utilizando el parámetro -Server (es posible en caso de habilitar relaciones de confianza entre los dominios) .

Get-ADDomainController -Filter * -server dc01.test.com | Select Name, ipv4Address, IsGlobalCatalog, Site

Uso de Get-ADDomainController para encontrar controladores de dominio según ciertos criterios

Consideremos algunos comandos útiles que puede usar para obtener la lista de controladores de dominio en AD según ciertos criterios.

Para encontrar un controlador de dominio por su dirección IP:

Get-ADDomainController -Identity "192.168.100.6"

Para encontrar todos los DC que tienen DC02 en sus nombres:

Get-ADDomainController -Filter {name -like "*dc02*"} | Select Name, ipv4Address, OperatingSystem, site

Para encontrar todos los DC disponibles en el sitio específico:

Get-ADDomainController -Discover -ForceDiscover -Site "Site-Name"

Para mostrar la lista de DC en los sitios, cuyos nombres comienzan con Mun*:

Get-ADDomainController -Filter {site -like "Mun*"} | Select Name, ipv4Address, OperatingSystem, site

Para mostrar la lista de todos los controladores de dominio de solo lectura (RODC):

Get-ADDomainController -Filter {IsReadOnly -eq $true} | Select Name, ipv4Address, OperatingSystem, site

Para buscar centros de distribución en el sitio "Roma" con la función de catálogo global habilitada:

Get-ADDomainController -Filter {site -eq "Rome" -and IsGlobalCatalog -eq $true} | Select Name, ipv4Address, OperatingSystem, site

Script de PowerShell para verificar la disponibilidad de todos los controladores de dominio

El siguiente script de PowerShell permite verificar sus controladores de dominio uno por uno y realizar la acción específica para cada uno de ellos:

$DCs = Get-ADDomainController -Filter *
ForEach($DC in $DCs)
{
do something
}

Este es un ejemplo de un script de PowerShell simple que verifica la disponibilidad del puerto LDAPS (TCP 636) en cada DC en su dominio usando el cmdlet Test-NetConnection. Si el puerto LDAPS no está disponible, aparecerá una advertencia.

$DCs = Get-ADDomainController -Filter * | Select-Object Hostname,Ipv4address,isGlobalCatalog,Site,Forest,OperatingSystem
ForEach($DC in $DCs)
{
$PortResult=Test-NetConnection -ComputerName $DC.Hostname -Port 636 -InformationLevel Quiet
if ($PortResult -ne "$True"){
write-host $DC.Hostname " not available" -BackgroundColor Red -ForegroundColor White
}else {
write-host $DC.Hostname " available" -BackgroundColor Green -ForegroundColor White}
}

Tenemos un script simple para monitorear la disponibilidad de todos los DC en su dominio.

También hay diferentes escenarios para verificar todos los DC en el dominio uno por uno. En artículos anteriores, mostramos cómo usar el cmdlet Get-ADDomainController para encontrar el evento específico en los registros de todos los controladores de dominio. Por ejemplo, para encontrar eventos de bloqueo de cuenta de usuario, eventos de autenticación NTLMv1, eventos de agregar un usuario a un grupo de seguridad de AD, etc.

Artículos relacionados