Powershell script to ping multiple servers at the same time.
Warning: This script is resource intensive as it starts a powershell instance for each of the jobs. If you have multiple servers then it will take all up all the memory until it finishes all the jobs.
$scriptDir = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
$serverlist = GC "$scriptdir\list.txt"
$outputpath = "$scriptdir\pingcheck.txt"
foreach($server in $serverlist)
{
Start-job -scriptblock {
param([string]$computer,$outputpath)
$out = Test-NetConnection -ComputerName $computer
if($out.pingsucceeded -eq "True")
{
$output = "$computer" + "`t" + $out.remoteaddress + "`t" + " is pinging"
}
Else
{
$output = "$computer" + "`t" + $out.remoteaddress + "`t" + " is not pinging"
Out-File -InputObject $output -FilePath $outputpath -Append
}
Sleep -Seconds 10
return $output
} -ArgumentList @($server,$outputpath)
}
$A = Get-Job | Wait-Job | Receive-Job
Write-host "Writing A" -ForegroundColor Yellow
$A
Out-File -InputObject $A -FilePath $outputpath -Append
Get-job | Remove-Job
Warning: This script is resource intensive as it starts a powershell instance for each of the jobs. If you have multiple servers then it will take all up all the memory until it finishes all the jobs.
$scriptDir = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
$serverlist = GC "$scriptdir\list.txt"
$outputpath = "$scriptdir\pingcheck.txt"
foreach($server in $serverlist)
{
Start-job -scriptblock {
param([string]$computer,$outputpath)
$out = Test-NetConnection -ComputerName $computer
if($out.pingsucceeded -eq "True")
{
$output = "$computer" + "`t" + $out.remoteaddress + "`t" + " is pinging"
}
Else
{
$output = "$computer" + "`t" + $out.remoteaddress + "`t" + " is not pinging"
Out-File -InputObject $output -FilePath $outputpath -Append
}
Sleep -Seconds 10
return $output
} -ArgumentList @($server,$outputpath)
}
$A = Get-Job | Wait-Job | Receive-Job
Write-host "Writing A" -ForegroundColor Yellow
$A
Out-File -InputObject $A -FilePath $outputpath -Append
Get-job | Remove-Job