Ver equipos activos / inactivos de una red desde bat que genere un archivo de salida .txt

El tema es así: tengo una red con muchos equipos, y por otro lado, una lista.txt con los DNS (nombres de los equipos) que deberían estar inactivos desde x días. La pregunta en sí sería, si puedo hacer un ping global de la lista incluida en lista.txt, y que refleje los nombres de los equipos activos (que respondan al ping ) en un archivo de salida, de manera de poder identificar globalmente estos equipos, antes de eliminar la cuenta de AD.

Respuesta
1

Tengo que averiguar por qué no me ha entrado esta consulta en mi buzón de correo. Eso hace que no la haya visto hasta que he entrado en la página.

Mira a ver si esto puede servirte:

@ECHO OFF
DEL malo.txt
DEL bueno.txt
FOR /F %%A IN ('type lista.txt') do call :probar %%A
GOTO :FIN
:Probar
ping %1 -n 1 > nul
IF ERRORLEVEL 1 GOTO mal
ECHO %1>>bueno.txt
GOTO :EOF
:mal
ECHO %1>>malo.txt
GOTO :EOF
:FIN
@ECHO ON
TYPE bueno.txt
TYPE malo.txt

La idea es lanzar un único ping a cada nombre relacionado en lista.txt (tanto en modo nombre como en modo IP) y si el resultado el ping es correcto incluir ese nombre en el archivo bueno.txt y si no es correcto incluirlo en malo.txt.

Al final se listan los contenidos a efectos de depuración, más que nada.

Ya me dirás si te sirve o si necesitas algún retoque.

Gracias por la respuesta, y pos el tiempo que dedica a esto. Acabo de probar las líneas dentro de un archivo bat; solamente llego a borrar los archivos detallados (bueno /malo), luego de esto, la ventana queda congelada, y no tengo ni una señal de que siga trabajando en segundo plano. La ventana cmd está ejecutada en modo administrador, y la lista de los nombres de los equipos en un archivo llamado lista.txt, dentro del mismo directorio donde está el bat.

Si lista.txt está en el mismo directorio que el BAT y no se ha cambiado ningún carácter al copiarlo (particularmente la comilla simple que precede y cierra el 'type lista.txt') no le encuentro explicación. Es evidente que el BAT se queda en el bucle FOR. Para ver si llega a tratar alguna de las direcciones/nombres incluidas en lista.txt incluye esta línea justo detrás de la etiqueta ":probar"

Echo Haciendo ping al equipo: %1

Tampoco estaría de más que ejecutes manualmente el "type lista.txt" desde la ventana CMD a ver si sale algo.

Dime cómo va el asunto.

¡Gracias! Ahora funcionó, está creando los archivos de salida perfectamente; agregué un "IF exists..." al principio, por las dudas que no estén los archivos de texto de salida, y listo. La ayuda fue excelente, desde todo punto de vista!

Nuevamente mil gracias

1 respuesta más de otro experto

Respuesta

No conozco la respuesta pero he visto que Googleando por "ping múltiple machines from txt files" se encuentran soluciones explicadas, quizás con un poco de suerte puedas sacar algo en claro

http://www.computing.net/answers/programming/ping-list-of-computers-from-a-txt-file/19843.html

https://social.technet.microsoft.com/Forums/scriptcenter/en-US/c0cafc24-c9be-4f67-ada0-4bb05fb26e78/explain-the-batch-script-to-ping-multiple-computers?forum=ITCG

http://www.lawebdelprogramador.com/foros/Ms-Dos/710551-Crear-TXT-con-resultado-de-Ping.html

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas