Buenas tardes,
A ver si podéis echarme un cable, mis conocimientos de programación son tirando a nulos, me gustaría ir aprendiendo con los tutoriales que estoy viendo por aquí y tal.
Os comento, en mi empresa estamos desplegando un software remotamente. En caso de fallo nos piden comprobar lo siguiente:
- Que hagan ping, obviamente.
- Que sean accesibles por telnet en los puertos 135 y 445.
- Que puedan acceder al recurso administrativo con el usuario que usamos para desplegar.
Hasta que me he incorporado yo hacían esto manualmente por cada IP, que me parece un trabajo de chinos. Me he copiado chapuceramente unos scripts que he pillado por ahí.
Lo que me gustaría conseguir con ellos es que me saque unos logs fácilmente exportables a Excel por cada prueba.
//////Este es el script que hace el bucle y las llamadas. Por cierto, ni siquiera sé si todo esto puede estar cómodamente en un solo script o es mejor en varios.
ECHO ON
IF EXIST PINGLOG.LOG del PINGLOG.LOG
FOR /F "eol=; tokens=1 delims=" " %%i in (ips.txt) do call PONGOELSCRIPTMANUALMENTE %%i
TYPE PINGLOG.LOG
////Script para el ping. Aquí en principio no tengo problemas, sólo quiero un OK o un “no llega”.
ECHO OFF
ping %1 -n 1 > nul
IF ERRORLEVEL 1 GOTO dead
IF ERRORLEVEL 0 GOTO alive
:dead
ECHO %1 NO RESPONDE >>PINGLOG.LOG
GOTO end
:alive
ECHO %1 OK >>PINGLOG.LOG
GOTO end
:end
/////En el caso del acceso al recurso, uso net use sin asignar unidad y me devuelve “completed succesfully” o distintos mensajes de error. El tema es que me gustaría guardar los códigos de error en el log, de forma que queden en una misma línea con la ip y separados por algún símbolo para Excel reconozca las columnas. Lo único que se me ocurre es conseguir guardar el mensaje de error o por lo menos la primera línea con el código de error, en una variable string a la que pueda eliminarle los saltos de línea y luego le pueda hacer un echo junto a la IP. Lo he intentado pero no acabo de conseguirlo. Ahora mismo lo máximo que consigo es que el error me salga debajo de la ip y en varias líneas.
ECHO ON
ECHO %1 >> errorrecurso.txt
NET USE \\%1\C$ anonimo.hie /user:anonimo.hie 1>> errorrecurso.txt 2>>&1
:end
En el caso del telnet sólo tengo la línea que conecta. La mayoría fallan pero cuando conecta uno, se para el script. De momento separo las ips que conectan manualmente. Me gustaría saber cómo salir de telnet y volver al script obteniendo simplemente “OK” o “NO ACCEDE” en un fichero.
El resultado ideal sería un único log que mostrara, separado por tabulaciones algo así:
10.161.90.12 PING SI/NO TELNET 135 SI/NO TELNET 445 SI/NO ACCESO A RECURSO SI/Mensaje de error sin salto de línea
Supongo que esto debe ser pan comido, pero hace años que no toco programación y se me atraganta, espero que alguno me podáis echar un cable.
Saludos.