Principales respuestas
Camputrar error de ping en txt

Pregunta
-
Buenas,
Necesito hacer un monitoreo de una conexión, para lo que estoy usando la siguiente sentencia: "while($true) {test-connection -count 999999 10.122.5.210 -delay 1 -Verbose | format-table @{n='TimeStamp';e={Get-Date}}, Address, ResponseTime}". Hasta aquí todo bien, lo que no me esta haciendo el script es guardar en el txt cuando hay un error de conexión, es decir, si hay perdidas de paquetes que esto me quede guardado en el txt.
Si alguien tiene alguna idea agradecería su ayuda.
Jose Miguel Salas C
Respuestas
-
No sé si entiendo del todo bien lo que quieres hacer... pero bueno, espero que sea esto lo que buscas:
- Ping (supongo que contínuo) a un servidor.
- Si el ping no responde lo registras.
En ese caso, creo que te podría valer esto:
$Computer = "ToServer" while (1 -eq 1) #para que haga ping contínuo. Defínelo como necesites. { try { $Ping = Test-Connection -ComputerName $Computer -Count 1 -ErrorAction SilentlyContinue | Select Address,IPV4Address,ResponseTime,StatusCode $IP = $Ping.IPV4Address $Time = $Ping.ResponseTime $Status = $Ping.StatusCode if ($Status -eq 0) { $Result = $Computer + ";" + $IP + ";" + $Time + ";" + $Status | Out-File c:\Temp\pingOK.log -append } else { $Date = Get-Date $Result = $Computer + ";No response;" + $Date | Out-File c:\Temp\pingKO.log -append } } catch { throw $Error[0].Exception.Message } }
Tal y como está te guardaría en el fichero c:\temp\pingOK.log las salidas correctas y en c:\temp\pingKO.log los que no responden.
Lógicamente, si sólo quieres guardar el fallo con eliminar la exportación del Ok lo tendrías.
Espero que te sirva.
Un saludo.
Diego.
- Propuesto como respuesta Diego Fernández Fernández martes, 19 de mayo de 2015 15:23
- Marcado como respuesta JoseSalas lunes, 7 de septiembre de 2015 21:54
Todas las respuestas
-
No sé si entiendo del todo bien lo que quieres hacer... pero bueno, espero que sea esto lo que buscas:
- Ping (supongo que contínuo) a un servidor.
- Si el ping no responde lo registras.
En ese caso, creo que te podría valer esto:
$Computer = "ToServer" while (1 -eq 1) #para que haga ping contínuo. Defínelo como necesites. { try { $Ping = Test-Connection -ComputerName $Computer -Count 1 -ErrorAction SilentlyContinue | Select Address,IPV4Address,ResponseTime,StatusCode $IP = $Ping.IPV4Address $Time = $Ping.ResponseTime $Status = $Ping.StatusCode if ($Status -eq 0) { $Result = $Computer + ";" + $IP + ";" + $Time + ";" + $Status | Out-File c:\Temp\pingOK.log -append } else { $Date = Get-Date $Result = $Computer + ";No response;" + $Date | Out-File c:\Temp\pingKO.log -append } } catch { throw $Error[0].Exception.Message } }
Tal y como está te guardaría en el fichero c:\temp\pingOK.log las salidas correctas y en c:\temp\pingKO.log los que no responden.
Lógicamente, si sólo quieres guardar el fallo con eliminar la exportación del Ok lo tendrías.
Espero que te sirva.
Un saludo.
Diego.
- Propuesto como respuesta Diego Fernández Fernández martes, 19 de mayo de 2015 15:23
- Marcado como respuesta JoseSalas lunes, 7 de septiembre de 2015 21:54
-
No sé si entiendo del todo bien lo que quieres hacer... pero bueno, espero que sea esto lo que buscas:
- Ping (supongo que contínuo) a un servidor.
- Si el ping no responde lo registras.
En ese caso, creo que te podría valer esto:
$Computer = "ToServer" while (1 -eq 1) #para que haga ping contínuo. Defínelo como necesites. { try { $Ping = Test-Connection -ComputerName $Computer -Count 1 -ErrorAction SilentlyContinue | Select Address,IPV4Address,ResponseTime,StatusCode $IP = $Ping.IPV4Address $Time = $Ping.ResponseTime $Status = $Ping.StatusCode if ($Status -eq 0) { $Result = $Computer + ";" + $IP + ";" + $Time + ";" + $Status | Out-File c:\Temp\pingOK.log -append } else { $Date = Get-Date $Result = $Computer + ";No response;" + $Date | Out-File c:\Temp\pingKO.log -append } } catch { throw $Error[0].Exception.Message } }
Tal y como está te guardaría en el fichero c:\temp\pingOK.log las salidas correctas y en c:\temp\pingKO.log los que no responden.
Lógicamente, si sólo quieres guardar el fallo con eliminar la exportación del Ok lo tendrías.
Espero que te sirva.
Un saludo.
Diego.
Hola, muy buen tu script. Me podria ayudar con algo así?
Estoy queriendo armar un Test-Connection, anidados si es que aplica esta definición
Por ejemplo. Tengo que verificar si responde la coneccion un servidor en red.
Bien este servidor podría ser que no responda porque switch, esta apagado. O bien el switch, está encendido pero no responde el router.
Entonces lo que no estoy pudiendo hacer es Test-Connection al server, y si no responde Test-Connection al switch, si no responde hacer Test-Connection al router.
Saludos Jorge Argentina