Create get-ping.ps1

This commit is contained in:
Derek-Charlekston
2017-08-30 17:26:53 -05:00
committed by GitHub
parent 5772d994f0
commit 070de5d0bd

53
get-ping.ps1 Normal file
View File

@@ -0,0 +1,53 @@
Function Get-PingStatus
{
param(
[Parameter(ValueFromPipeline=$true)]
[string]$device,
[validateSet("Online","Offline","ObjectTable")]
[String]$getObject
)
begin{
$hash = @()
}
process{
$device| foreach {
if (Test-Connection $_ -Count 1 -Quiet) {
if(-not($GetObject)){write-host -ForegroundColor green "Online: $_ "}
$Hash = $Hash += @{Online="$_"}
}else{
if(-not($GetObject)){write-host -ForegroundColor Red "Offline: $_ "}
$Hash = $Hash += @{Offline="$_"}
}
}
}
end {
if($GetObject) {
$Global:Objects = $Hash | foreach { [PSCustomObject]@{
DeviceName = $_.Values| foreach { "$_" }
Online = $_.Keys| where {$_ -eq "Online"}
offline = $_.Keys| where {$_ -eq "Offline"}
}
}
Switch -Exact ($GetObject)
{
'Online' { $Global:Objects| where 'online'| select -ExpandProperty DeviceName }
'Offline' { $Global:Objects| where 'offline'| select -ExpandProperty DeviceName }
'ObjectTable' { return $Global:Objects }
}
}
}
}