Ping de PowerShell | ¿Cómo funciona PowerShell Ping con ejemplos?
Introducción al ping de PowerShell
El comando ping de PowerShell, también conocido como Test-Connection en el cmdlet de PowerShell, envía los paquetes de eco del mensaje del protocolo de control de Internet (ICMP) o el ping a uno o más nodos remotos y, a cambio, recibe los paquetes de eco para determinar el conectividad de los servidores remotos y también mediante el uso de diversos parámetros para ejecutar el comando como trabajo en segundo plano, establecer el número de veces para enviar la solicitud, establecer el tiempo de espera y configurar la conexión y autenticación, e incluso este comando puede rastrear la ruta del nodo de destino.
Sintaxis de PowerShell Ping
A continuación se muestra la sintaxis mencionada:
Usando la conexión de prueba:
Test-Connection
[-TargetName] <string[]>
[-Ping]
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Count <int>]
[-Delay <int>]
[-BufferSize <int>]
[-DontFragment]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]Test-Connection
[-TargetName] <string[]>
-Repeat
[-Ping]
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Delay <int>]
[-BufferSize <int>]
[-DontFragment]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]Test-Connection
[-TargetName] <string[]>
-MtuSize
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]Test-Connection
[-TargetName] <string[]>
-Traceroute
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]Test-Connection
[-TargetName] <string[]>
-TcpPort <int>
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]
En la sintaxis anterior, puede usar un conjunto a la vez, como si no pudiera usar el parámetro -TCPPort y -TraceRoute juntos.
Usando el comando Ping:
ping [/t] [/a] [/n <count>] [/l <size>] [/f] [/I <TTL>] [/v <TOS>] [/r <count>] [/s <count>] [{/j <hostlist> | /k <hostlist>}] [/w <timeout>] [/R] [/S <Srcaddr>] [/4] [/6] <targetname>¿Cómo funciona el ping de PowerShell?
El comando ping se introdujo en el símbolo del sistema y también se puede usar con PowerShell. El comando ping utiliza los paquetes ICMP (mensaje de protocolo de control de Internet) para enviar a través de los nodos remotos y verifica la conectividad a cambio recibiendo los paquetes de eco de los nodos remotos. El comando ping también determina el nombre del host en los sistemas de dominio si el registro DNS está configurado correctamente. PowerShell ha introducido un comando más potente que ping, llamado Test-Connection. Es una combinación de TestConnection + PingStatus.
Para hacer ping a la computadora remota, simplemente podemos usar:
Código:
ping google.comSalida:
Usando el comando de prueba de conexión.
Código:
Test-Connection Google.comSalida:
Ejemplos de ping de PowerShell
A continuación se muestran ejemplos de PowerShell Ping:
Ejemplo n.º 1: uso del comando ping para determinar el nombre de host.
Si desea recuperar el nombre de host del servidor remoto, puede usar el comando ping con el parámetro -a para determinarlo.
Código:
ping -a 192.168.0.200Salida:
El parámetro -a recupera el nombre de la computadora del registro de dirección IP (PTR).
Ejemplo #2: Recuperar ping continuamente.
A veces necesitamos verificar el estado del servidor remoto continuamente y, en ese caso, puede usar el parámetro -t, para que devuelva el resultado del eco hasta que se presione el botón Ctrl+C.
Código:
ping -a 192.168.0.206 -tSalida:
Ejemplo n.º 3: uso del modo silencioso con el comando Test-Connection.
-El parámetro Quiet suprime la salida que genera el comando Test-Connection y devuelve la salida en formato booleano. Si la conectividad remota se establece correctamente, devuelve verdadero; de lo contrario, falso.
Código:
Test-Connection -ComputerName 192.168.0.200 -QuietSalida:
Ejemplo de salida falsa,
Salida:
Ejemplo #4: Restringir el recuento con el parámetro -count.
De forma predeterminada, el comando Test-Connection genera los 4 recuentos. Sin embargo, puede restringir el número que desee.
Código:
Test-Connection -ComputerName 192.168.0.200 -Count 2Salida:
Esto es particularmente útil cuando escribimos un guión. Por ejemplo, podemos combinar los parámetros -Count y -Quiet para obtener el resultado rápidamente.
Código:
Test-Connection -ComputerName 192.168.0.200 -Count 1 -QuietSalida:
En el script, podemos usar la condición If else.
Código:
if(Test-Connection -ComputerName 192.168.0.200 -Count 1 -Quiet){
Write-Output "Server Connectivity Successful"
}
else{
Write-Output "Server Connectivity failed"
}Salida:
Ejemplo n.º 5: uso de Test-Connection para varios servidores.
El parámetro -ComputerName en el comando Test-Connection acepta varios nombres de computadora porque es una matriz de cadenas.
Código:
Test-Connection -ComputerName 192.168.0.200, 192.168.0.206, 192.168.0.230 -Count 1 | ft -AutoSizeSalida:
Podemos usarlo dentro del bloque try/catch para detectar el error.
Código:
Try {
Test-Connection -ComputerName 192.168.0.200, 192.168.0.206, 192.168.0.230 -Count 1 -EA Stop | ft -AutoSize
}
Catch {
$_.Exception.Message
}Salida:
Ejemplo n.º 6: uso de -TraceRoute para determinar las esperanzas del nodo de destino.
Podemos agregar el parámetro -TraceRoute para determinar la ruta al nodo de destino.
Código:
Test-Connection -TargetName www.google.com -TracerouteSalida:
Ejemplo n.º 7: configuración del tamaño del búfer personalizado y el recuento de retrasos.
Podemos agregar el tamaño del búfer personalizado y establecer el retraso en segundos entre solicitudes posteriores, como se muestra a continuación.
Código:
Test-Connection -ComputerName 192.168.0.200 -Delay 3 -BufferSize 256Salida:
Ejemplo n.º 8: Ejecución de Test-Connection como trabajo en segundo plano.
Podemos ejecutar el comando Test-Connection como trabajo en segundo plano usando el parámetro -AsJob.
Código:
Test-Connection -ComputerName 192.168.0.200, 192.168.0.206 -Count 2 -AsJobSalida:
Una vez que obtenga el nombre del trabajo, puede usar el comando Recibir-Trabajo para recuperar el estado del trabajo.
Código:
Receive-Job -Name Job5Salida:
Ejemplo n.° 9: uso de múltiples fuentes para enviar una solicitud a la computadora remota.
Puede utilizar varias fuentes para enviar una solicitud a la computadora remota.
Código:
Test-Connection -Source 192.168.0.202, 192.168.0.206 -ComputerName 192.168.0.200 -Count 2Salida:
Ejemplo n.º 10: uso de diferentes credenciales.
Puede utilizar credenciales diferentes si las computadoras de origen y remotas están en dominios diferentes.
Código:
Test-Connection -Source 192.168.0.206 -ComputerName 192.168.0.200 -Count 2 -Credential Automationlab\AdministratorSalida:
Conclusión
El comando ping de PowerShell es uno de los comandos útiles cuando escribimos un script. Es el primer paso para determinar si el servidor remoto está en línea o no. Muchas veces existen posibilidades de que el servidor haya bloqueado la solicitud ICMP en el firewall; en ese caso, puede usar comandos como Test-WSMan para verificar si la conectividad WINRM funciona o no.



















