1.4K
Un poderoso cmdlet Test-Connection PowerShell está disponible como reemplazo del comando ping en Windows.
El comando Test-Connection le permite enviar paquetes de solicitudes de eco ICMP a uno o más hosts remotos y recibir respuestas de respuesta de eco.
Para verificar la disponibilidad de un host remoto a través de ping ICMP, ejecute el comando:
Test-Connection theitbros.com
Puede usar la tubería con el cmdlet Select-Object para seleccionar solo las propiedades requeridas en los resultados del comando:
Test-Connection theitbros.com| Select-Object Address, IPV4Address, ResponseTime
Enumere todos los atributos posibles de un objeto System.Management.ManagementObject#rootcimv2Win32_PingStatus mediante el comando:
Test-Connection theitbros.com -Count 1|Get-Member|select name, MemberType
Nombre Tipo de miembro
—- ———-
PSComputerName AliasProperty
Propiedad de dirección
Propiedad BufferSize
Propiedad de no fragmentación
Propiedad PrimaryAddressResolutionStatus
Propiedad ProtocolAddress
Propiedad ProtocolAddressResolved
Propiedad RecordRoute
Propiedad de inconsistencia de respuesta
Propiedad de tamaño de respuesta
Propiedad ResolveAddressNames
Propiedad ResponseTime
Propiedad ResponseTimeToLive
Propiedad RouteRecord
Propiedad RouteRecordResolved
Propiedad SourceRoute
Propiedad SourceRouteType
Propiedad de código de estado
Propiedad de tiempo de espera
Propiedad TimeStampRecord
Propiedad TimeStampRecordAddress
Propiedad TimeStampRecordAddressResolved
Propiedad TimestampRoute
Propiedad TimeToLive
Propiedad TypeofService
Propiedad __CLASS
Propiedad __DERIVACIÓN
Propiedad __DYNASTY
Propiedad __GENUS
Propiedad __NAMESPACE
Propiedad __PATH
__PROPERTY_COUNT Propiedad
Propiedad __RELPATH
Propiedad __SERVER
Propiedad __SUPERCLASE
ConvertFromDateTime ScriptMethod
Método de secuencia de comandos ConvertToDateTime
Propiedad de script de dirección IPV4
Propiedad de script de dirección IPV6
Puede hacer ping a varios hosts a la vez:
Test-Connection theitbros.com,google.com
De forma predeterminada, el cmdlet envía 4 paquetes ICMP. Puede realizar una verificación de ping con un solo paquete:
Test-Connection theitbros.com -Count 2
Puede cambiar el retraso (en segundos) entre el envío de paquetes y el tamaño del búfer (en bytes):
Test-Connection theitbros.com -Delay 4 -BufferSize 128
Con la opción -Repetir, puede enviar solicitudes de ping de forma continua. Presione CTRL+C para interrumpir la prueba de ping:
Test-Connection 1.1.1.1 -Repeat
En PowerShell 7.x, puede usar el atributo -MtuSize para obtener el tamaño de MTU de la ruta:
Test-Connection -TargetName theitbros.com –MtuSize
Puede ejecutar Test-Connection como un trabajo en segundo plano de PowerShell. Por ejemplo, desea hacer ping a la lista de equipos en el archivo de texto CheckServers.txt en segundo plano:
$pingjob = Start-Job -ScriptBlock { Test-Connection -TargetName (Get-Content -Path "c:psCheckServers.txt") } $Results = Receive-Job $pingjob -Wait
Con la opción -Traceroute (disponible en PowerShell Core 6.x+), puede rastrear una ruta a un host remoto:
Test-Connection theitbros.com -Traceroute
Una de las características interesantes del cmdlet Test-Connection es que le permite hacer ping desde equipos remotos. Por ejemplo, desea verificar la disponibilidad del host desde tres servidores en diferentes ubicaciones:
Test-Connection -Source "lon-app1", "par-man01”, "tw-man02" -ComputerName theitbros.com
También puede usar otro cmdlet de PowerShell para verificar la disponibilidad del host mediante ICMP. Ejecute el comando:
Test-NetConnection -ComputerName theitbros.com
El cmdlet Test-NetConnection se usa principalmente para comprobar los puertos TCP abiertos. Pero también verifica la disponibilidad del host mediante el ping de ICMP. Si se recibe una respuesta ICMP de un host remoto, aparecerá la siguiente línea en los resultados del comando:
PingSucceeded: Verdadero
Detalles de respuesta de ping (RTT): 96 ms
Probar la disponibilidad de las computadoras remotas usando ICMP Ping es útil en los scripts de PowerShell si necesita realizar alguna acción. Por ejemplo, ejecuta el script de PowerShell en una computadora remota solo si uno de los pings enviados a la computadora tiene éxito:
$servername="tw-man02" If ((Test-NetConnection $servername -WarningAction SilentlyContinue).PingSucceeded -eq $true) { Invoke-Command -ComputerName $servername -ScriptBlock {Restart-Service spooler} }