# 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"