Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Powershell get computers list and ping

Posted on 2012-03-19
7
Medium Priority
?
2,494 Views
Last Modified: 2012-03-20
Morning everyone,

Please can someone give a bit of instruction....

I want to get a list of servers from Active Directory (using Quest addins) and then for each server returned I want to ping it

So I have this:
================================================
$ProdServer=Get-QADComputer -Searchroot 'mydomain.com/servers' |Select-Object name

forEach ($Server in $ProdServer)

{
$Alive=Get-WMIObject win32_pingstatus -Filter "Address-'$Server'" |Select-Object statuscode if ($Alive.statuscode -eq 0)

{
Write-Host $Server is Reachable
}
Else
{
Write-Host $Server is NOT reachable
}
}
============================================

The problem is that the result I get is this:
@{Name=servername} is NOT reachable

How do I change what I'm inputting to the ping piece so that it doesn't contain the column heading (property name) of 'Name'?

Many thanks :)
0
Comment
Question by:Tommy_Cooper
  • 5
  • 2
7 Comments
 
LVL 42

Expert Comment

by:Meir Rivkin
ID: 37738065
why using wmi to ping when u can use testconnection?

Get-QADComputer -Searchroot 'mydomain.com/servers'  | foreach{
If (Test-Connection $_){ 

Write-Host $_.name is Reachable

}Else{

Write-Host $_.name is NOT reachable
}
}

Open in new window

0
 
LVL 42

Expert Comment

by:Meir Rivkin
ID: 37738187
also u have a mistake in your script:

instead of:
$Alive=Get-WMIObject win32_pingstatus -Filter "Address-'$Server'" |Select-Object

should be:
Alive=Get-WMIObject win32_pingstatus -Filter "Address='$Server'" |Select-Object

here's your script updated:
$ProdServer=Get-QADComputer -Searchroot 'mydomain.com/servers' |Select-Object name
forEach ($Server in $ProdServer)
{

	$Alive = Get-WMIObject win32_pingstatus -Filter "Address='$Server'" |Select-Object statuscode 

	if ($Alive.statuscode -eq 0)
	{
		Write-Host $Server.Name is Reachable
	}
	Else
	{
		Write-Host $Server.Name is NOT reachable
	}
}

Open in new window

0
 
LVL 3

Author Comment

by:Tommy_Cooper
ID: 37741598
Hi Sedgwick,

I'm learning Powershell and wasn't aware of test-connection.  This looks good.  Kind of the same really. But I'll investigate that more: )

Sadly, running your script with test-connection gives me this result:
=========================================
Test-Connection : Testing connection to computer 'DOMAINNAME\'ServerName$' failed: The requested name is valid, but no data of the requested type was found
At line:2 char:20
+ If (Test-Connection <<<<  $_){
    + CategoryInfo          : ResourceUnavailable: (DOMAINNAME\'ServerName$:String) [Test-Connection], PingException
    + FullyQualifiedErrorId : TestConnectionException,Microsoft.PowerShell.Commands.TestConnectionCommand
 
Test-Connection : Testing connection to computer 'DOMAINNAME\'ServerName$' failed: The requested name is valid, but no data of the requested type was found
At line:2 char:20
+ If (Test-Connection <<<<  $_){
    + CategoryInfo          : ResourceUnavailable: (DOMAINNAME\'ServerName$:String) [Test-Connection], PingException
    + FullyQualifiedErrorId : TestConnectionException,Microsoft.PowerShell.Commands.TestConnectionCommand
 
Test-Connection : Testing connection to computer 'DOMAINNAME\'ServerName$' failed: The requested name is valid, but no data of the requested type was found
At line:2 char:20
+ If (Test-Connection <<<<  $_){
    + CategoryInfo          : ResourceUnavailable: (DOMAINNAME\'ServerName$:String) [Test-Connection], PingException
    + FullyQualifiedErrorId : TestConnectionException,Microsoft.PowerShell.Commands.TestConnectionCommand
 
Test-Connection : Testing connection to computer 'DOMAINNAME\'ServerName$' failed: The requested name is valid, but no data of the requested type was found
At line:2 char:20
+ If (Test-Connection <<<<  $_){
    + CategoryInfo          : ResourceUnavailable: (DOMAINNAME\'ServerName$:String) [Test-Connection], PingException
    + FullyQualifiedErrorId : TestConnectionException,Microsoft.PowerShell.Commands.TestConnectionCommand
 
ServerName is NOT reachable
===========================================

ALL instances of 'ServerName' are referring to the same server. Notice the very last entry also. This is bizarre because 'servername' is reachable.

Can you explain what's going on and what causes these multiple entries?

Many tanks
0
Creating Active Directory Users from a Text File

If your organization has a need to mass-create AD user accounts, watch this video to see how its done without the need for scripting or other unnecessary complexities.

 
LVL 42

Accepted Solution

by:
Meir Rivkin earned 1500 total points
ID: 37741692
my mistake, here's an updated script:

Get-QADComputer -Searchroot 'mydomain.com/servers'  | foreach{
If (Test-Connection $_.name ){ 

Write-Host $_.name is Reachable

}Else{

Write-Host $_.name is NOT reachable
}
}
                                            

Open in new window

0
 
LVL 42

Expert Comment

by:Meir Rivkin
ID: 37741699
if u still get errors when using test-connection, use your script instead with the changes i've made.
0
 
LVL 3

Author Comment

by:Tommy_Cooper
ID: 37741902
Sedgwick,

This is brilliant many thanks.  Your script is working fine.  I see that it works because we're doing 'Test-Connection' against only the property named 'name'.

Thanks awfully for your help.

Tommy
0
 
LVL 42

Expert Comment

by:Meir Rivkin
ID: 37741995
u welcome.

cheers
0

Featured Post

New Tabletop Appliances Blow Competitors Away!

WatchGuard’s new T15, T35 and T55 tabletop UTMs provide the highest-performing security inspection in their class, allowing users at small offices, home offices and distributed enterprises to experience blazing-fast Internet speeds without sacrificing enterprise-grade security.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Recently we ran in to an issue while running some SQL jobs where we were trying to process the cubes.  We got an error saying failure stating 'NT SERVICE\SQLSERVERAGENT does not have access to Analysis Services. So this is a way to automate that wit…
Measuring Server's processing rate with a simple powershell command. The differences in processing rate also was recorded in different use-cases, when a server in free and busy states.
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an anti-spam), the admin…
Loops Section Overview

927 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question