$scopes=("192.168.1.","192.168.2.","192.168.3.")
Run this:
Function EvalTargetIP{
[CmdletBinding()]
param($target,$syscount)
$target | % {
$targethostname=$null
$targethostname=([System.Net.Dns]::GetHostbyAddress("$target")).hostname
Trap {Continue}
if ($targethostname -eq $null) {$targethostname="unknown"}
if (Test-Connection $target -BufferSize 16 -Quiet -Count 1 -ErrorAction SilentlyContinue)
{ $targetstate="UP"
write-host "$targethostname|$target|$targetstate" -ForegroundColor GREEN }
else
{ $targetstate="DOWN"
write-host "$targethostname|$target|$targetstate" -ForegroundColor RED }
Return New-Object Psobject -property @{IP=$target;SystemName=$targethostname;SystemState=$targetstate;SystemCount=$syscount}
}
}
$ElapsedTime = [System.Diagnostics.Stopwatch]::StartNew()
$startime = $(get-date)
$allresult = @()
$syscount = 1
foreach ($scope in $scopes)
{ 1..255 | % { $allresult += EvalTargetIP ($scope + $_) ($syscount++) }
}
$allresult | select-object -property SystemName,IP,SystemState,SystemCount | sort-object -property SystemCount | Out-GridView -Title "AmIUp?"
write-host "Script Started at $startime"
write-host "Script Ended at $(get-date)"
write-host "Total Elapsed Time: $($ElapsedTime.Elapsed.ToString())"
View this:

No comments:
Post a Comment