1,5K
Un potente 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 mediante ping ICMP, ejecute el comando:
Test-Connection theitbros.com
Puede usar pipe 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#root\cimv2\Win32_PingStatus usando 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 sin fragmentación
Propiedad PrimaryAddressResolutionStatus
Propiedad ProtocolAddress
ProtocolAddressResolved Propiedad
RecordRoute Propiedad
Propiedad ReplyInconsistency
Propiedad Tamaño de respuesta
Propiedad ResolveAddressNames
Propiedad de tiempo de respuesta
ResponseTimeToLive Propiedad
Propiedad de registro de ruta
RouteRecordResolved Propiedad
Propiedad SourceRoute
Propiedad SourceRouteType
Propiedad Código de estado
Propiedad de tiempo de espera
TimeStampRecord Propiedad
TimeStampRecordAddress Propiedad
TimeStampRecordAddressResolved Propiedad
Propiedad TimestampRoute
Propiedad TimeToLive
Propiedad tipo de servicio
__CLASS Propiedad
__DERIVACIÓN Propiedad
__DYNASTY Propiedad
__GÉNERO Propiedad
__NAMESPACE Propiedad
__PATH Propiedad
__PROPERTY_COUNT Propiedad
__RELPATH Propiedad
__SERVIDOR Propiedad
__Propiedad SUPERCLASE
Método de script ConvertFromDateTime
Método de script ConvertToDateTime
Propiedad de script de dirección IPV4
Propiedad de secuencia de comandos 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 continuamente. 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 computadoras en el archivo de texto CheckServers.txt en segundo plano:
$pingjob = Start-Job -ScriptBlock { Test-Connection -TargetName (Get-Content -Path "c:\ps\CheckServers.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 computadoras remotas. 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 utilizar otro cmdlet de PowerShell para comprobar la disponibilidad del host mediante ICMP. Ejecute el comando:
Test-NetConnection -ComputerName theitbros.com
El cmdlet Test-NetConnection se utiliza principalmente para comprobar los puertos TCP abiertos. Pero también verifica la disponibilidad del host mediante ping ICMP. Si se recibe una respuesta ICMP de un host remoto, aparecerá la siguiente línea en los resultados del comando:
Ping exitoso: verdadero
Detalles de respuesta de ping (RTT): 96 ms
Probar la disponibilidad de 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} }