Si alguna vez ha trabajado con computadoras en red y necesito probar la conectividad de un sistema a través del comando de ping, es probable que se haya encontrado con los mismos desafíos que. Hay muchos productos de utilidad de ping, como solarwinds, pingplotter , Pingassist, Freeping, o simplemente el símbolo del comandante simple. Algunos son gratuitos o integrados en Windows, pero necesitaba algo simple para las operaciones diarias.
Aquí está el escenario que encuentro a menudo como administrador del sistema: un usuario llama o pone en una orden de trabajo que cuenta Yo que su computadora conectada LAN/WAN parece estar funcionando lentamente para mencionar su correo electrónico, Internet o unidades mapeadas. Mi siguiente paso generalmente es mencionar un símbolo del sistema de Windows (en Windows 7, haría clic, iniciar y escribir en cmd.exe “y luego escribir: Ping ComputerName -T Esto hace que la computadora envíe una solicitud de ping a través de la red a la computadora de destino. La opción “-t” al final le dice al ping que continúe y continúe, llenando la pantalla y Luego desplazándose. Al observar las respuestas de ping, puedo ver si el sistema monitoreado pierde conectividad y, por lo tanto, comience mi resolución de problemas de por qué es “soltar pings”.
Pero, ¿qué pasa si pierde una caída? Si te distraes?
no suele ser una cuestión de “si” estoy distraído, es “cuando”. Una ventana de comando solo puede contener tantos pings antes de desplazarse más allá de la capacidad del búfer de memoria del programa. Tampoco hay un tipo de vista “histórico”, ya que una vez más los datos se desplazan de la pantalla en el cubo de bits de datos en el cielo.
Necesitaba una solución visual simple para hacer ping a Computadora o dirección IP que podría iniciarse desde un símbolo del sistema o directamente mediante un script PowerShell. Al aprovechar el poder de PowerShell, se me ocurrió una solución que utilizo casi todos los días en la solución de problemas de mi red. Podría haberlo llamado “ping PowerShell” o “ping PowerShell”, pero, oye, ¿por qué no darle un nombre elegante, verdad? ¡Y así, “Powerping” nació!
Características de alimentación:
Muestra la dirección IP (si está disponible) después de que se haya alcanzado pings máximos
ajustable Relajas de primer plano y de fondo
Retraso ajustable entre pings
Número máximo ajustable de pings (he probado con 99,999,999, pero ciertamente, nunca ha alcanzado el final!)
Ancho de columna configurable (65 funciona mejor en la mayoría de los casos )
Sello de tiempo de ejecución que se muestra a lo largo de la columna de la mano derecha
Banner superior que muestra el nombre de host, el retraso de ping y los intentos de ping configurados
Plataformas probadas/requisitos
<
Esto se ha probado con éxito en Windows XP y Windows 7 de 32 bits utilizando PowerShell versión 2.0. Para que esto se inicie y se ejecute, la ejecución de PowerShell deberá configurarse. Tengo el mío configurado como “remota”. (Puede ver y cambiar la política de seguridad desde dentro de PowerShell con Get-ExecutionPolicy y set-eCecutionPolicy .)
Obtener todo en funcionamiento
Generalmente loto mis scripts PowerShell desde un símbolo del sistema de Windows usando el siguiente formato: “PP HostName”. Para lograr esto, necesitará dos archivos, ambos ubicados dentro de la ruta de Windows. (Mantengo mis scripts en una carpeta específica y luego agrego esta carpeta a la variable ambiental del sistema ‘Path =’, pero también puede colocar los dos archivos en los directorios de Windows o WindowsSystem.)
Creación del archivo pp.bat:
Copie el código entre los bloques de secuencia de comandos “Begin” y “End”, y guárdelo como “pp.bat” (sin las citas, por supuesto)
|| Comience pp.bat script
:: archivo de lotes Powerping – pp.bat
@echo off
echo powerping.ps1 %* | PowerShell -Command –
|| End pp.bat script
Creación del archivo powerping.ps1:
Copie el código entre los bloques de secuencia It como “powerping.ps1”
powerping.ps1
|| Comience powerping.ps1 script
# powerping por Ron Masters – http://contributor.yahoo.com/user/626225/ron_masters.html
# Los valores de color son “negros, Darkblue, Darkgreen, Darkyan, Darkred, Darkmagenta,
# Darkyellow, Grey, Darkgray, azul, verde, cian, rojo, magenta, amarillo, blanco “.
$ maxpings = 3000
$ pingdelayseconds = 1
$ columnwidth = 65
$ bannerBackground = “azul”
$ colorpackground = “negro”
$ ColorpingForeGround = “Darkgreen”
$ backgroundColornoping = “Black”
$ frontegroLEncolornoping = “rojo”
$ timestampackground = “negro”
$ timestampforeground = “gris”
$ extraSpace = “”
$ name = ($ args [0])
$ b = 1
$ g = 1
$ resetv = 1
$ dateTime = get -date -format g
$ timeNow = Get -Date -Format t
$ iPaddress = get -wmioBject win32_pingstatus -filter “dirección = ‘$ name'” | Select-object ipv4address | Format-List
Write-Host `R
Powerping de escritura”-“$ Nombre $ ExtraSpace $ extrapace $ extrapace $ extrapace” pingdelay = “$ pingdelayseconds” secs maxpings = ” $ Maxpings $ extrapace -background $ bannerbackground -foreground “white”
para ($ i = 1; $ i -le $ maxpings; $ i ++)
{$ vivo = get- wmiobject win32_ingstatus -filter “dirección = ‘$ name'” | Select-object statuscode
$ b ++
start-sleep $ pingdelayseconds
if ($ vive.statuscode -eq 0)
{
# —– ip/hostname pinging ——————–
$ timeNow = get-date -Format t
$ resetv ++
if ($ resetv -gt 1) {write -host “_” -nonewline -background $ ColorpingBackground -Foreground $ COLOPINGFORERGURAD}
p>}else
{
# —– IP/hostname no pinging ————- –
$ timeNow = get-date -Format t
#$ Downtime = get-date -Format t
#$ timenow = $ inactiva
$ g ++
$ resetv ++
if ($ g -lt 3) {write -host “+ -” -nonewline -background $ backgroundcolornoping -foreground “rojo” }
if ($ g -gt 3) {write -host ” -” -nonewline -background $ backgroundcolornoping -foreground “rojo”}
}
if ((($ b -gt $ columnwidth) -and ($ resetv -gt 2))) {write -host “” $ timeNow -background $ timestampbackground -foreground $ timestampforeground `r}
if ( $ b -gt $ columnwidth) {$ b = 1}
}
write -host `r
$ iPaddress
| | End script
Ejecutando encendido
Desde un símbolo del sistema, escriba PP y luego el nombre del sistema o dirección IP (por ejemplo: PP 192.168.1.1 ; o, pp www.yahoo.com ; o, pp hostname ) que desea hacer ping. El archivo pp.bat pasará la variable de nombre de host en el script powerping.ps1. Primero que se presenta debe ser el banner superior y luego, si el sistema de destino es pingable, una serie de guiones verdes comenzará a moverse horizontalmente a través de la pantalla. Cuando se alcanza el final de la línea, se muestra una marca de tiempo y la siguiente línea comienza a dibujar. Si un sistema se puede verse, primero se mostrará un “+” rojo (quería algo que me llame la atención), seguido de más guiones rojos. Si el sistema vuelve a alcanzar nuevamente, la línea de rastreo se volverá verde. Eche un vistazo a las fotos 1 a 5 acompañando este artículo para ver ejemplos de diferentes tipos de respuestas de ping. Una vez que el script ha ido a través del valor máximo configurado, se muestra la dirección IP del host y el script finaliza.
Los colores se pueden configurar para la mayoría de los elementos mostrados. He incluido una declaración de observación al comienzo del archivo powerping.ps1 que incluye las posibles opciones de color que se pueden usar. (Sabrá que son declaraciones de observación cuando la línea comienza con un “#”), pruebe algunas combinaciones de colores diferentes. Tal vez encuentre un combo de color que coincida con su estilo.
para ajustar el “retraso de ping”, “ancho de la columna” y “pings máximos” simplemente cambie el número junto a la variable apropiada, guardar y re -Rungue el script.
Pensamientos finales
¿Alguna vez ha oído hablar de la frase, es mejor trabajar más inteligente en lugar de más duro? He explorado eso antes en mis consejos y trucos de PowerShell e impresoras con artículos de PowerShell. Ahora con Powerping, he logrado utilizar el poder de PowerShell para darme una referencia visual rápida de cuán consistente o inconsistente es una conexión. Este script de bricolaje ahora es una utilidad de solución de problemas esencial que estará en el kit de herramientas de administración de mi sistema durante mucho tiempo.