The Test-Connection cmdlet implements a simple ping to check whether a system responds to an ICMP request. Unfortunately, you cannot specify a timeout. Test-Connection defaults to a static timeout of 4 seconds:

 
PS C:\> Test-Connection -ComputerName powershellmagazine.com -Count 1 | Select-Object Address, ResponseTime, Timeout


Address                ResponseTime Timeout
-------                ------------ -------
powershellmagazine.com          118    4000 
 

To use a timeout, simply use the underlying WMI query like this:

$ComputerName = 'powershellmagazine.com'
$Count = 1
$Timeout = 1000
$Filter = 'Address="{0}" and Timeout={1}' -f $ComputerName, $Timeout
Get-WmiObject -Class Win32_PingStatus -Filter $Filter |
  Select-Object Address, ResponseTime, Timeout

Here is the result:

 
Address                ResponseTime Timeout
-------                ------------ -------
powershellmagazine.com          118    1000 
 

To ping multiple times, simply use a loop.

Throughout this month, we'd like to point you to two awesome community-driven global PowerShell events taking place this year:

Europe: April 20-22: 3-day PowerShell Conference EU in Hannover, Germany, with more than 30+ speakers including Jeffrey Snover and Bruce Payette, and 60+ sessions (www.psconf.eu).

Asia: October 21-22: 2-day PowerShell Conference Asia in Singapore. Watch latest annoncements at www.psconf.asia

Both events have limited seats available so you may want to register early.

Twitter This Tip! ReTweet this Tip!

Anonymous