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

Puedes usar el Get-ADDomainController Cmdlet de PowerShell para obtener información sobre los controladores de dominio en Active Directory. Este cmdlet es parte del módulo PowerShell Active Directory y requiere la instalación de RSAT (en Windows 10 1809 y más reciente, RSAT se instala de una manera 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 de AD y la topología de subredes IP).

Get-ADDomainController: obtenga información completa de DC a través de powershell

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=woshub,DC=com
DefaultPartition : DC=corp,DC= woshub,DC=com
Domain : corp.woshub.com
Enabled : True
Forest : woshub.com
HostName : MunDC01.corp.woshub.com
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=woshub,DC=com
OperatingSystem : Windows Server 2012 R2 Standard
OperatingSystemHotfix :
OperatingSystemServicePack :
OperatingSystemVersion : 6.3 (9600)
OperationMasterRoles : {}
Partitions : {DC=ForestDnsZones,DC=woshub,DC=com, DC=DomainDnsZones,DC=corp,DC=woshub,DC=com, CN=Schema,CN=Configuration,DC=woshub,DC=com...}
ServerObjectDN : CN=MunDC01,CN=Servers,CN=DE,CN=Sites,CN=Configuration,DC=woshub,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 servicios web de AD:

Get-ADDomainController –ForceDiscover -Discover -Service ADWS

Puedes usar el Servicio parámetro para encontrar el PDC (u otro rol 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

enumerar todos los DC en AD usando powershell

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

Get-ADDomainController -Filter * | Measure-Object

obtener el número de controlador de dominio en el anuncio

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

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

Get-ADDomainController enumera todos los controladores de dominio con información del sistema operativo

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

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

obtener información de DC de otro dominio

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 de acuerdo con ciertos criterios.

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

Get-ADDomainController -Identity "192.168.100.6"

Para encontrar todos los países en desarrollo que tienen DC02 en sus nombres:

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

Para encontrar todos los CD 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 encontrar DC 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 comprobar 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
}

A continuación, se muestra un ejemplo de una secuencia de comandos simple de PowerShell que verifica la disponibilidad del puerto LDAPS (TCP 636) en cada DC de su dominio mediante 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}
}

script de powershell para verificar la accesibilidad de todos los controladores de dominio

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

También hay diferentes escenarios para verificar todos los controladores de dominio 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 Interesantes