Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

Powershell get computers list and ping

Posted on 2012-03-19
7
2,282 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:sedgwick
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:sedgwick
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
Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

 
LVL 42

Accepted Solution

by:
sedgwick earned 500 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:sedgwick
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:sedgwick
ID: 37741995
u welcome.

cheers
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Powershell Restart Service 12 35
Combine two scripts into same report 2 15
Customizing XML with Powershell 2 22
Need output in powershell ( Vertical format) 2 20
"Migrate" an SMTP relay receive connector to a new server using info from an old server.
Create and license users in Office 365 in bulk based on a CSV file. A step-by-step guide with PowerShell script examples.
Established in 1997, Technology Architects has become one of the most reputable technology solutions companies in the country. TA have been providing businesses with cost effective state-of-the-art solutions and unparalleled service that is designed…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

839 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