Get-ADDomainController Uzyskaj kontrolery domeny AD za pomocą PowerShell

Cmdlet Get-ADDomainController można użyć do uzyskania informacji o kontrolerach domeny w usłudze Active Directory. To polecenie cmdlet jest częścią modułu Active Directory dla programu PowerShell i wymaga instalacji osobnego komponentu RSAT (w systemie Windows 10 1809 i nowszym RSAT jest instalowany w nowy sposób).

Treść

  • Polecenie cmdlet Get-ADDomainController
  • Używamy Get-ADDomainController do wybierania kontrolerów domeny zgodnie z warunkami
  • Skrypt PowerShell, aby sprawdzić dostępność wszystkich kontrolerów domeny

Polecenie cmdlet Get-ADDomainController

Przy starcie Get-ADDomainController bez parametrów cmdlet wyświetla informacje o bieżącym kontrolerze domeny (LogonServer), który jest używany przez ten komputer do uwierzytelniania (DC jest wybierany podczas rozruchu zgodnie z topologią witryn AD).

Polecenie cmdlet zwróciło wszystkie pola z informacjami kontrolera domeny dostępnymi w AD.

ComputerObjectDN: CN = mskDC01, OU = Kontrolery domeny, DC = corp, DC = winitpro, DC = ru Domyślna partycja: DC = corp, DC = winitpro, DC = ru Domena: corp.winitpro.ru Włączone: True Forest: winitpro.ru HostName: mskDC01.corp.winitpro.ru InvocationId: 96234a-7fc6-4a32-9e62-3b32343ab4ad IPv4Address: 10.1.10.6 IPv6Address: IsGlobalCatalog: True IsReadOnly: False LdapPort: 389 Nazwa: Ustawienia mskDC NT NT CN = Serwery, CN = MskCenter, CN = Witryny, CN = Konfiguracja, DC = winitpro, DC = pl OperatingSystem: Windows Server 2008 R2 Standard OperatingSystemHotfix: OperatingSystemServicePack: Service Pack 1 OperatingSystemVersion: 6.1 (7601) OperationMasterRoles:  Partycje:  Partycje:  DC = ForestDnsZones, DC = winitpro, DC = ru, DC = DomainDnsZones, DC = corp, DC = winitpro, DC = ru, CN = Schemat, CN = Konfiguracja, DC = winitpro, DC = ru ... ServerObjectDN: CN = mskDC01 , CN = Serwery, CN = MskCenter, CN = Witryny, CN = Konfiguracja, DC = winitpro, DC = ru ServerObjectGuid: 8052323-e294-4430-a326-9553234431d6 Witryna: MskCenter SslPo rt: 636

Możesz również znaleźć kontroler domeny, do którego powinien należeć twój komputer, poprzez mechanizm DCLocator:

Get-ADDomainController -Discover

Możesz znaleźć najbliższy dostępny kontroler domeny z aktywną rolą usług AD w sieci Web:

Get-ADDomainController -ForceDiscover -Discover -Service ADWS

Za pomocą parametru Service można znaleźć kod PDC w domenie:

Get-ADDomainController -Discover -Service PrimaryDC

Jeśli nie znaleziono kontrolera domeny lub nie odpowiada, możesz go znaleźć w najbliższej witrynie AD (na podstawie wagi komunikacji między lokacjami):

Get-ADDomainController -Discover -ForceDiscover -NextClosestSite

Aby wyświetlić listę wszystkich kontrolerów domeny w bieżącej domenie:

Get-ADDomainController -Filter * | ft

Możesz obliczyć liczbę kontrolerów domeny w AD za pomocą polecenia:

Get-ADDomainController -Filter * | Zmierz obiekt

Wyświetlimy wygodniejszą tabelę, w której wymienione są wszystkie kontrolery domeny z ich nazwą, adresem IP, wersją systemu operacyjnego i nazwą witryny AD:

Get-ADDomainController -Filter * | Wybierz Nazwa, ipv4Address, OperatingSystem, site | Nazwa obiektu sortowania

Jeśli chcesz uzyskać informacje o kontrolerze domeny z innej domeny, musisz podać nazwę dowolnego dostępnego kontrolera domeny w domenie innej firmy za pomocą parametru -Serwer (możliwe przy zaufaniu między domenami).

Get-ADDomainController -Filter * -server dc01.contoso.cpm | Wybierz Nazwa, ipv4Address, IsGlobalCatalog, Site

Używamy Get-ADDomainController do wybierania kontrolerów domeny zgodnie z warunkami

Spójrzmy na kilka przydatnych poleceń cmdlet, których możesz użyć, aby uzyskać listę kontrolerów domeny w AD według określonych kryteriów.

Znajdź kontroler domeny według jego adresu IP:

Get-ADDomainController -Identity „10.1.1.120”

Znajdź wszystkie kontrolery domeny ze znakami DC04 w ich nazwach:

Get-ADDomainController -Filter jak nazwa „* dc04 *” | Wybierz Nazwa, ipv4Address, OperatingSystem, site

Wyszukaj wszystkie dostępne kontrolery domeny w określonej witrynie:

Get-ADDomainController -Discover -ForceDiscover -Site „Site-Name”

Wyświetl listę DC w witrynach, których nazwy zaczynają się od Mos *:

Get-ADDomainController -Filter podobny do strony „Mos *” | Wybierz Nazwa, ipv4Address, OperatingSystem, site

Wyświetl wszystkie kontrolery domeny tylko do odczytu:

Get-ADDomainController -Filter IsReadOnly -eq $ true | Wybierz Nazwa, ipv4Address, OperatingSystem, site

Znajdź DC w witrynie „Nazwa witryny”, która obejmuje rolę katalogu globalnego:

Get-ADDomainController -Filter site -eq „Site Name” -i IsGlobalCatalog -eq $ true | Wybierz Nazwa, ipv4Address, OperatingSystem, site

Skrypt PowerShell, aby sprawdzić dostępność wszystkich kontrolerów domeny

Poniższy projekt umożliwia iterację na wszystkich kontrolerach domeny w usłudze Active Directory i wykonanie określonej akcji dla każdego z nich:

$ AllDCs = Get-ADDomainController -Filter *
ForEach ($ DC w $ AllDCs)

zrób coś

Poniżej znajduje się przykład prostego skryptu PowerShell, który sprawdza dostępność portu LDAPS (TCP 636) na każdym kontrolerze domeny w domenie za pomocą polecenia cmdlet Test-NetConnection. Jeśli port LDAPS w DC nie jest dostępny, pojawi się ostrzeżenie.

$ AllDCs = Get-ADDomainController -Filter * | Select-Object Hostname, Ipv4address, isGlobalCatalog, Site, Forest, OperatingSystem
ForEach ($ DC w $ AllDCs)

$ PortResult = Test-NetConnection -ComputerName $ DC.Hostname -Port 636 -InformationLevel Quiet
if ($ PortResult -ne „$ True”)
write-host $ DC.Hostname „niedostępny” -BackgroundColor Red -ForegroundColor White
else
write-host $ DC.Hostname „available”

W rezultacie powstał prosty skrypt monitorowania dostępności DC. Nadal istnieją różne scenariusze wyliczania wszystkich kontrolerów domeny w domenie. W poprzednich artykułach pokazaliśmy już, jak używać Get-ADDomainController do wyszukiwania określonego zdarzenia w dziennikach na wszystkich kontrolerach domeny. Na przykład, aby: wyszukać zdarzenia blokady konta użytkownika, wyszukać zdarzenia uwierzytelniania NTLMv1, wyszukać zdarzenia, gdy użytkownik zostanie dodany do grupy AD itp..