Tuesday, November 15, 2011

Ping Multiple Servers using “PowerShell”

 

Hi,

Today I was looking for  a little PowerShell script which can Ping multiple servers and give a consolidated view on PowerShell console that which one is Live and which one is Dead.

Then a decide to write my own and finally wrote  it: ) and it is a only a 9 line script :)

You can copy and paste the script from below or you can download it from here : http://dl.dropbox.com/u/17858935/Ping_Multiple_Servers.zip 

let me explain the script :

$Servername: is a variable which contain a list  of comma separated Server name

in foreach script block we are selecting all servers in $ServerName variable and run Test-Connection cmdlets against them

in If Test-Connection evaluates that servers in Pinging that it writes “S$server is alive” otherwise it write “Server is dead”,

In test-connection Cmdlet we define that it should send only 2 Pings to the server using –count 2 switch parameter and used –Quiet Switch parameter so that is show the output in Boolean (true or false)

 

   1:  #### Provide the computer name in $computername variable
   2:   
   3:  $ServerName = "Dc-2","LocalHost","Server-2","Not-Exists","Fake-computer"
   4:   
   5:  ##### Script Starts Here ###### 
   6:   
   7:  foreach ($Server in $ServerName) {
   8:   
   9:          if (test-Connection -ComputerName $Server -Count 2 -Quiet ) { 
  10:          
  11:              write-Host "$Server is alive and Pinging " -ForegroundColor Green
  12:          
  13:                      } else
  14:                      
  15:                      { Write-Warning "$Server seems dead not pinging"
  16:              
  17:                      }            
  18:  }
  19:   
  20:  ########## end of script #######################



The output of the script will be like below link.


Ping


 


Download Link : http://dl.dropbox.com/u/17858935/Ping_Multiple_Servers.zip 


 


Thanks


aman dhally

15 comments:

  1. I was looking at the code here: http://exchangeserverpro.com/powershell-send-html-email, and I'm able to email based on that code. My question is, how do I email the output from your script Ping Multiple Servers using “PowerShell”?

    ReplyDelete
    Replies
    1. Hi David
      Please check your email, i sent you the updated version of this script which include the email facility usind Send-MailMessage cmdlet.

      or you can download the script from here :
      http://dl.dropbox.com/u/17858935/Ping_Multiple_Server_With_Email.zip

      thanks
      aman

      Delete
  2. I got the updated version. It's simple and beautiful! Thank you.

    ReplyDelete
    Replies
    1. You are welcome David :).. I glad that it helps you ...

      Thanks
      aman

      Delete
    2. Aman,
      Thank you for the script. I need some help modifying the script. I want the script to check a list of servers, and send one simple email that says everything is ok, I do not want it to list every server because the email is really long..Any Suggestions?
      Thanks,
      Jarrett

      Delete
    3. HI jarrnett, you are welcome..and i glad that u like the script..

      humm..can u email me so that we can discuss this.. currently i am not sure how to do it, but i think this should be possible.

      thanks
      aman

      Delete
  3. Great Script: Simple, Fast, Elegant
    Thank You

    ReplyDelete
    Replies
    1. You are Welcome Marcio..

      thanks
      aman

      Delete
    2. hi aman,

      i got email report successfully,

      but i need with color like offline pc in red and online pc in green color

      Delete
  4. Hello Aman,

    For some reason every time i run this script, a ps window appears and disappears right away. I'm I missing something? I get no output at all.

    ReplyDelete
  5. why cant I copy and paste the GUI output?

    ReplyDelete
  6. I changed the write-host and write-warning to write-output ( I also removed the color selections) and am trying to format to write-output in the "else" statement to save all the failed pings in a text file at c:\errors. Can you advise me of the syntax to do this? I only get the first failed ping in my text file.

    Write-output "Server$ " > C:\error.txt

    ReplyDelete
  7. Hi Aman Dhally , can you please explain how can i do a script to ping test 20 servers and get the output via emails , also can i do a ping test to my default gateways which is around 10 of them , please can you help me out . thanks a lot

    ReplyDelete
  8. Hi,

    Please share me the script, which can send for the server down from the array list

    regards,
    Vijay

    ReplyDelete
  9. Would greatly appreciate it if someone could share the most updated version of this script that contains email notification capability.

    Thank you much,

    Rob

    ReplyDelete