# MANUALLY DEFINE THE LIST OF DOMAIN CONTROLLERS

$DCs = @(

    "DC1.domain.com",

    "DC2.domain.com",

    "DC3.domain.com"

    # ADD ALL 50 DCS HERE

)


# DEFINE PORTS TO CHECK

$ports = @(3268, 389)


# INITIALIZE AN ARRAY TO STORE RESULTS

$results = @()


# LOOP THROUGH EACH DC AND CHECK PORTS

foreach ($dc in $DCs) {

    foreach ($port in $ports) {

        $connection = Test-NetConnection -ComputerName $dc -Port $port -InformationLevel Detailed

        $results += [PSCustomObject]@{

            DomainController = $dc

            Port            = $port

            Status          = if ($connection.TcpTestSucceeded) { "Open" } else { "Closed" }

            IPAddress       = $connection.RemoteAddress

        }

    }

}


# EXPORT THE RESULTS TO A CSV FILE

$results | Export-Csv -Path "C:\DC_Port_Status.csv" -NoTypeInformation


Write-Host "Port check completed. Results saved to C:\DC_Port_Status.csv"