Here is a clean and simple PowerShell script to ping all the computer accounts in an Active Directory OU, and return the Name, IP Address and any errors into a csv file.
# Enter CSV file location $csv = "C:\Script_Files\OUPing.csv" # Add the target OU in the SearchBase parameter $Computers = Get-ADComputer -Filter * -SearchBase "OU=Servers,DC=mydomain,DC=com" | Select Name | Sort-Object Name $Computers = $Computers.Name $Headers = "ComputerName,IP Address" $Headers | Out-File -FilePath $csv -Encoding UTF8 foreach ($computer in $Computers) { Write-host "Pinging $Computer" $Test = Test-Connection -ComputerName $computer -Count 1 -ErrorAction SilentlyContinue -ErrorVariable Err if ($test -ne $null) { $IP = $Test.IPV4Address.IPAddressToString $Output = "$Computer,$IP" $Output | Out-File -FilePath $csv -Encoding UTF8 -Append } Else { $Output = "$Computer,$Err" $output | Out-File -FilePath $csv -Encoding UTF8 -Append } cls }