Private/Get-ADDomainControllersBySite.ps1

Function Get-ADDomainControllersBySite() {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)][string]$sADSiteName
    )

    # This code has been placed into a separate function to enable pester testing. It is called by the function Get-ADLocalDC
    # The purpose of the function is to return Domain Controller names for a specified AD site using a .net function.

    [System.DirectoryServices.ActiveDirectory.DirectoryContextType]$objContextType = 0
    $objADContext = New-Object System.DirectoryServices.ActiveDirectory.DirectoryContext -ArgumentList $objContextType
    $arrDomainControllers = [System.DirectoryServices.ActiveDirectory.DomainController]::FindAll($objADContext,$sADSiteName)

    return $arrDomainControllers
}