There are multiple ways how you can ping computers. Here is a simple approach that uses the traditional ping.exe but can be easily integrated into your scripts:
function Test-Ping { param([Parameter(ValueFromPipeline=$true)]$Name) process { $null = ping.exe $Name -n 1 -w 1000 if($LASTEXITCODE -eq 0) { $Name } } }
Test-Ping accepts a computer name or IP address and will return it if the ping was successful. This way, you can feed in large lists of computer names or IP addresses, and get back only those that were online:
'??','127.0.0.1','localhost','notthere',$env:COMPUTERNAME | Test-Ping