Get-AdDomainController active directory cmdlet gets one or more active directory domain controllers based on specified domain controller identifier or search criteria, discoverable services criteria.
You can get domain controller information using Identity, filter, or discover parameters in PowerShell Get-AdDomainController
cmdlet.

In this article, I will explain how to use PowerShell Get-AdDomainController
in Active Directory to get available domain controller in current domain using discovery, get domain controller in a given domain, get a global catalog in the current forest using discovery.
Get-AdDomainController Syntax and Parameters
Get-AdDomainController
gets one or more domain controller information using filter
, discover or identity
parameter.
Syntax:
Get-ADDomainController [[-Identity] ADDomainController] [-Credential PSCredential] [-Server string] [-AuthType {Negotiate | Basic}] [CommonParameters] Get-ADDomainController -Discover [-AvoidSelf] [-DomainName string] [-ForceDiscover] [-MinimumDirectoryServiceVersion {Windows2000 | Windows2008}] [-NextClosestSite string] [-Service ADDiscoverableService[]] [-SiteName string] [-Writable ][-AuthType {Negotiate | Basic}] [CommonParameters] Get-ADDomainController -Filter string [-Credential PSCredential] [-Server string] [-AuthType {Negotiate | Basic}] [CommonParameters]
Parameters:
–AuthType – It specifies the authentication method to use. AuthType parameter accepts either Basic (or 1) or Negotiate (or 0). It has Negotiate default authentication method.
SSL (Secure Socket Layer) connection is required to use the Basic Authentication method.
–Credential PSCredential – It specifies user credentials required to perform Get-AdDomainController. It default accepts the credentials of logged-on users.
To use the Credential parameter, use username as User1 or domain\User1 or you can create and use PSCredential
object by using Get-Credential
cmdlet.
-Identity – It specifies Active Directory domain controller object using the distinguished name, GUID , security identifier or SAMAccountName
–Filter – It specifies a query string (PowerShell Expression Language Syntax) to retrieves Active Directory objects. PowerShell wildcards other * are not supported by filter
syntax.
-AvoidSelf – It specifies not to return a self computer or current computer as a domain controller. If the current computer is not a domain controller, this parameter will be ignored.
-Discover – Gets domain controller that meets the conditions specified by parameter.
-DomainName – Specified domain to search. Get-AdDomainController cmdlet locates a discoverable domain controller in the specified domain name.
Let’s understand PowerShell Get-AdDomainController cmdlet with examples to get domain controller using filter, identity, or discover search criteria.
Get Domain Controller in Current User Session
You can get available domain controller information in the current user session using Get-AdDomainController
cmdlet as below
Get-AdDomainController
The output of above PowerShell script, returns available domain controller in current user session, output as below
PS C:\Windows\system32> Get-ADDomainController
ComputerObjectDN : CN=ENGG-PRO,OU=Domain Controllers,DC=SHELLPRO,DC=LOCAL
DefaultPartition : DC=SHELLPRO,DC=LOCAL
Domain : SHELLPRO.LOCAL
Enabled : True
Forest : SHELLPRO.LOCAL
HostName : ENGG-PRO.SHELLPRO.LOCAL
InvocationId : c955b45a-090a-42b7-aef9-4490b0d2b5d1
IPv4Address : 1.1.1.1
IPv6Address :
IsGlobalCatalog : True
IsReadOnly : False
LdapPort : 389
Name : ENGG-PRO
NTDSSettingsObjectDN : CN=NTDS Settings,CN=ENGG-PRO,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=SHELLPRO,DC=LOCAL
OperatingSystem : Windows Server 2019 Datacenter
OperatingSystemHotfix :
OperatingSystemServicePack :
OperatingSystemVersion : 10.0 (17763)
OperationMasterRoles : {SchemaMaster, DomainNamingMaster, PDCEmulator, RIDMaster...}
Partitions : {DC=ForestDnsZones,DC=SHELLPRO,DC=LOCAL, DC=DomainDnsZones,DC=SHELLPRO,DC=LOCAL, CN=Schema,CN=Configuration,DC=SHELLPRO,DC=LOCAL,
CN=Configuration,DC=SHELLPRO,DC=LOCAL...}
ServerObjectDN : CN=ENGG-PRO,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=SHELLPRO,DC=LOCAL
ServerObjectGuid : e6071fc7-2c78-4fcc-ac81-022db678615a
Site : Default-First-Site-Name
SslPort : 636
Cool Tip: How to get aduser employeeid in PowerShell!
Get Available Domain Controller in Given Domain
You can get available domain controller in given domain name using discovery as below
Get-ADDomainController -Discover -Domain "SHELLPRO.LOCAL"
Above command uses Get-AdDomainController
to get available domain name specified by Domain parameter and using Discover parameter.
Get Available Domain Controller in Current Domain
You can get available domain controller information in current domain using Discovery criteria as below
Get-AdDomainController -Discover
Get Domain Controller using NetBIOS name
If you want to get available domain controller using its NetBIOS name, use Get-AdDomainController with Identity parameter as below
Get-ADDomainController -Identity "ENGG-PRO"
In the above command, NetBIOS name is ENGG-PRO, using Identity
parameter, Get-AdDomainController returns available domain controller information.
Get Domain Controller using IP Address
If you want to get domain controller using IP address, specify IP address using Identity
parameter in Get-AdDomainController
to return available domain controller information as below
Get-ADDomainController -Identity "10.1.0.5"
Cool Tip: How to get list of ad groups for user in PowerShell!
Get a Domain Controller in Site
You can get domain controller information available in the specified site using Site parameter in Get-AdDomainController
active directory cmdlet as below
Get-AdDomainController -Discover -Site "Default-First-Site-Name"
In the above PowerShell script, it returns available domain controller information in the site specified by Site parameter, output as below
PS C:\Windows\system32> Get-ADDomainController -Discover -Site "Default-First-Site-name"
Domain : SHELLPRO.LOCAL
Forest : SHELLPRO.LOCAL
HostName : {ENGG-PRO.SHELLPRO.LOCAL}
IPv4Address : 1.1.1.1
IPv6Address :
Name : ENGG-PRO
Site : Default-First-Site-Name
If you have a requirement to get an available domain controller in the given site using Force discovery, run the below command with the ForceDiscover parameter
Get-ADDomainController -Discover -Site "Default-First-Site-name" -ForceDiscover
Get Global Catalog in the Current Forest
You can get global catalog in the current forest using discovery as below
Get-ADDomainController -Discover GlobalCatalog
Cool Tip: How to get aduser in multi domain forest in PowerShell!
Get Domain Controller using DNS HostName
If you want to get available get domain controller using its DNS Host Name, run below command
Get-ADDomainController -Identity "ENGG-PRO.SHELLPRO.LOCAL"
In the above command, DNS Host Name is specified by Identity
parameter and it returns domain controller information.
Cool Tip: How to get adcomputer operating system in PowerShell!
Get List of Read Only Domain Controllers (RODC)
To display list of read only domain controllers , use the below command
Get-ADDomainController -Filter {IsReadOnly -eq $true} | Select Name, Domain,IsReadOnly
In the above PowerShell command, Get-AdDomainCon
troller active directory cmdlet use Filter parameter to get list of read only domain controller where IsReadOnly
the attribute is equal to $true
It displays list of read-only domain controllers name, domain, IsReadOnly on the console.
Get Domain Controller in Site where name starts with
If you want to get list of domain controllers on the site where Site
name starts with SHELL*, run below command to display a list of DC
Get-ADDomainController -Filter {Site -like 'Default*'} | Select Name, Domain,Site
In the above PowerShell script, Get-AdDomainController
active directory cmdlet filter DC where site name begins with Default *
It displays list of domain controller on the site as below
PS C:\Windows\system32> Get-ADDomainController -Filter {Site -like 'Default*'} | Select Name, Domain,Site
Name Domain Site
---- ------ ----
ENGG-PRO SHELLPRO.LOCAL Default-First-Site-Name
Cool Tip: How to get computer name and domain name in PowerShell!
Conclusion
I hope the above details article on using PowerShell Get-AdDomainController
with different examples helpful to you.
You can use Get-AdDomainController to find domain controllers by certain criteria or to find the availability of domain controllers.
You can find more topics about PowerShell Active Directory commands and PowerShell basics on the ShellGeek home page.