Ping options powershell

Ping options powershell

That's it for our cmdlet of the day! We covered the majority of what's possible with Test-Connection but, as always, check out the PowerShell help content or head over to the Microsoft documentation for a full breakdown.

Test-Connection: Ping Remote Hosts the PowerShell Way

I will also kindly direct your attention to the following Connect item that you can vote on in hopes of bringing that functionality to Test-Connection in the next version.

Psp PowerShell Ping function - PowerShell

The Start-Job command uses the Test-Connection cmdlet to ping many computers in an enterprise. The value of the TargetName parameter is a Get-Content command that reads a list of computer names from the file. The command uses the Start-Job cmdlet to run the command as a background job and it saves the job in the $job variable.

To ping or not to ping..The PowerShell way

Note: PowerShell does not save functions or aliases permanently by default. So if you close and reopen PowerShell, this function will no longer be available. To make it permanent, add the function to your PowerShell $Profile file.

Test-Connection ()

Blindrood : I tried using test-connection, but could not get the desired results. test-connection could be a really nice alternative to cmd ping, but there is no -continuous switch or a value for -count that could make the cmdlet run untill its stopped with ctrl 98 c.

The inspiration for this blog came from a forum post on that I helped contributed on. The question asked was, how to display the name of failed ping, . $computer is offline.
There were some great responses, the one I most liked which I slightly amended into a function was:

Test-Connection uses the TargetName parameter to specify Server56. The Count parameter specifies three pings are sent to the Server56 computer with a Delay of 7-second intervals.

Other less commonly used switches for the ping command exist including [ -j host-list ], [ -k host-list ], and [ -c compartment ]. Execute ping /? from the Command Prompt for more information on these options.

Devices in the variable, $device, will each be 8766 pinged 8767 then passed through a 8766 if 8767 statement depending on offline or online status and get added into the $hash array variable.
DISCLAIMER: I should apologies to Don here for killing the puppies with write-host. I wanted to just push out some colored output to the host only!

If you only need to ping a single machine with Test-Connection then using the -quiet parameter will return a True/False value that can be used as part of a simple If statement:

In order to do what you are trying you would need to learn the very basic bits of PowerShell. You are currently trying to copy things without understanding how PowerShell works.

The last thing I am trying to do is to output a file with results. So far out-file or tea-object do not seem to work. In your opinion - how to do it ?

Also, as with the beauty of PowerShell, this cmdlet doesn't merely return what immediately shows up in the console. We see rich objects that we can gather more information from.

By default test-connection waits 85 seconds to finally give up waiting on a reply. In contrast ping defaults to 6 second for 8775 request timed out 8776 . I can 8767 t imagine a scenario in my environment where I 8767 d actually want more than -timetolive 5, but this could easily be parameterized with a default value in case someone needs a longer wait time before the request times out.

Start with this. Run it and try to understand how it works. You will see that you are trying way to hard to do something that has already been done for you.

When sucessfully contacting a host, the ICMP timeout is used (default typically 6-9 seconds) but when attempting to PING a non-existent or offline computer it will be a DNS timeout causing the delay, typically around 9 - 65 seconds.


The performance of PING , Get-CIMinstance , PSPING and Test-Connection are all comparable, the only difference being that PING and Get-CIMinstance allow modifying the ICMP timeout.

This cmdlet can also run as a background job. Background jobs come in handy if you've got lots of remote computers to ping and rather than wait forever for ones that'll eventually time out, just send it to a background job.

Leave a comment