Create get-ping.ps1
This commit is contained in:
committed by
GitHub
parent
5772d994f0
commit
070de5d0bd
53
get-ping.ps1
Normal file
53
get-ping.ps1
Normal 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 }
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user