Below powershell command helps to get the list of all the Sites in Active directory and domain controller in each domain. We can filter this to find the dc on specific domain controller
[system.directoryservices.activedirectory.domain]::GetCurrentDomain().domainControllers | select sitename,name
If you wanted to perform specific operation and it has to run on all the domain controllers in every site then we can filter this out. Below powershell will get one DC on each site. Its simple logic but worth it..
[system.directoryservices.activedirectory.domain]::GetCurrentDomain().domainControllers | foreach {
$Sitename = $_.sitename
$dcname = $_.name
$repSite = “”
if($Sitename -ne $repSite)
{
Write-host $Sitename $dcname
}
}