Bueno, tras probar y leer el famoso powershell, creo que voy a opinar un poco respecto a si es realmente útil aprender powershell y si en la vida real del día a día es necesario correr para aprender powershell.
Bien, realmente powershell será la shell/leguaje de scripting del futuro, basta con ver la integración de powershell con Exchange, pero desde mi forma de ver las cosas ha día de hoy tiene algunos inconvenientes:
Compatibilidad hacia atrás:
Es una lástima que microsoft no haya pensado un poco hacia atrás, el que no tenga un windows 2000 (excelente producto) Server o Profesional rondando por su red que tire la primera piedra. Puede parecer mentira pero PowerShell sólo funciona en XP, 2003 y vista. Y llegados a este punto me pregunto yo, ¿Que pasa con windows 2000? o con ¿Windows NT (ya se que está descatalogado pero si vieseis la cantidad de sitios donde todavia trabajan con NT os asustaríais). Pués la respuesta es obvia agua y ajo.
Necesidad de instalar el .net framework
En una red, según la economía y habilidades de las que disponga el administrador, te puedes encontrar que distribuir el .net framework es relativamente sencillo, pero esto es una cosa que no me hace personalmente mucha gracia, precisamente porque tienes que estar instalando más cosas de lo que realmente viene por defecto en el sistema operativo para poder disfrutar de powershell, en ese caso porqué no hemos instalado o probado otros lenguajes de scripting ya sea PERL, PHYTON u otros maravillos lenguajes, por no tener que instalar más que lo imprescindible y no tener que estar actualizando paquetes, parches y demás en TODOS los equipos.
Es evidente que poco a poco el PowerShell será indiscutiblemente LA HERRAMIENTA que estará integrada con los SO y que habrá CMDLETS de todas los desarrollos que realice MS, pero ha día de hoy PowerShell es sólo una HERRAMIENTA más.
Realmente hay herramientas fantásticas y poco conocidas o estudiadas por los administradores, ya sean comandos desde una ventana negra y oscura, ha añadidos o paquetes del tipo support tools, resource kits, herramientas de terceros como las de sysinternals (aunque ya ha sido fichado por Ms), o como las de FoundStone, e incluso herramientas desarrolladas por nosotros mismos realizadas con Vbscript o por nuestros amados bat o cmd, que en muchos casos nos han facilitado el trabajo diario y automatizado gran cantidad de tareas.
Mi consejo, hay que aprender powershell ya que a medio-largo plazo será de gran ayuda al administrador, pero no hay que olvidar que no solo de powershell vive o vivirá el triste administrador.
Fleky's Blog
lunes, 14 de enero de 2008
jueves, 30 de agosto de 2007
como compartir una carpeta desde línea de comandos.
jeje bueno esto a algunos les parecerá incómodo pero para la gente que tiene o estandariza instalaciones a lo mejor le es útil tener un bat con las carpetas típicas o simplemente quiere hacerlo por cojones desde la línea de comandos (PORQUE NO? yo lo hago :) ) BUENO AQUI VIENE NUESTRO AMIGO NET SHARE.
bueno para empezar probaremos de crear una carpeta que se llame PRUEBA (que original e? )
c:\>md prueba
y a continuación seguiremos con el gran NET SHARE.
c:\>net share prueba=c:\prueba /GRANT:usuario,FULL
AU ya tenemos la carpeta prueba compartida para el usuario "usuario" con acceso total, hay 2 opciones más que son READ, CHANGE imagino que no hace falta que lo traduzca no?
net share prueba /UNLIMITED
con este comando le decimos que pueden acceder infinitos usuarios, falso pero bueno nos lo creemos. YA TENEMOS LA UNIDAD COMPARTIDA PERO ADEMÁS LE VAMOS A PONER UN COMENTARIO AL RECURSO COMPARTIDO.
NET SHARE prueba /REMARK:"JATEMATE"
sI escribimos ahora solo net share nos aparecerán todos los recursos compartidos del equipo, y podemos comprobar que está todo ok.
Bueno hasta aquí hemos llegado hoy, hay mucho trabajo que hacer y poco tiempo para hacerlo todo al final me tendré que comprar una agenda para organizarme un poquito mejor :D
Saludos a todos,
bueno para empezar probaremos de crear una carpeta que se llame PRUEBA (que original e? )
c:\>md prueba
y a continuación seguiremos con el gran NET SHARE.
c:\>net share prueba=c:\prueba /GRANT:usuario,FULL
AU ya tenemos la carpeta prueba compartida para el usuario "usuario" con acceso total, hay 2 opciones más que son READ, CHANGE imagino que no hace falta que lo traduzca no?
net share prueba /UNLIMITED
con este comando le decimos que pueden acceder infinitos usuarios, falso pero bueno nos lo creemos. YA TENEMOS LA UNIDAD COMPARTIDA PERO ADEMÁS LE VAMOS A PONER UN COMENTARIO AL RECURSO COMPARTIDO.
NET SHARE prueba /REMARK:"JATEMATE"
sI escribimos ahora solo net share nos aparecerán todos los recursos compartidos del equipo, y podemos comprobar que está todo ok.
Bueno hasta aquí hemos llegado hoy, hay mucho trabajo que hacer y poco tiempo para hacerlo todo al final me tendré que comprar una agenda para organizarme un poquito mejor :D
Saludos a todos,
martes, 28 de agosto de 2007
Script en vbs para cambiar la ip (funciona en windows vista y en windows xp)
Bueno como todos sabéis a parte de mi querida línea de comandos también hay otras formas de hacer las cosas, entre otras con vbs.
He recopilado en el siguiente script 2 scripts de technet 1 para cambiar la conf ip y otro para las dns. Espero que os sea de ayuda.
Abrid vuestro editor de texto favorito. copiais el contenido del script y lo guardais con extensión .vbs
------------ INICIO-----------------< strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
strIPAddress = Array("192.168.102.133")
strSubnetMask = Array("255.255.255.0")
strGateway = Array("192.168.102.254")
strGatewayMetric = Array(1)
For Each objNetAdapter in colNetAdapters
errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
If errEnable = 0 Then
WScript.Echo "La IP a sido cambiada correctamente."
Else
WScript.Echo "La IP no se ha podido cambiar."
End If
Next
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNetCards = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objNetCard in colNetCards
arrDNSServers = Array("192.168.102.2", "194.179.1.100")
objNetCard.SetDNSServerSearchOrder(arrDNSServers)
Next
-------------------- FIN --------->>> corta antes de esta línea.
Luego solo falta ejecutarlo con doble click o con cscript nombrefichero.vbs
y eso es todo amigos. Hasta la próxima
He recopilado en el siguiente script 2 scripts de technet 1 para cambiar la conf ip y otro para las dns. Espero que os sea de ayuda.
Abrid vuestro editor de texto favorito. copiais el contenido del script y lo guardais con extensión .vbs
------------ INICIO-----------------<
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
strIPAddress = Array("192.168.102.133")
strSubnetMask = Array("255.255.255.0")
strGateway = Array("192.168.102.254")
strGatewayMetric = Array(1)
For Each objNetAdapter in colNetAdapters
errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
If errEnable = 0 Then
WScript.Echo "La IP a sido cambiada correctamente."
Else
WScript.Echo "La IP no se ha podido cambiar."
End If
Next
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNetCards = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objNetCard in colNetCards
arrDNSServers = Array("192.168.102.2", "194.179.1.100")
objNetCard.SetDNSServerSearchOrder(arrDNSServers)
Next
-------------------- FIN --------->>> corta antes de esta línea.
Luego solo falta ejecutarlo con doble click o con cscript nombrefichero.vbs
y eso es todo amigos. Hasta la próxima
martes, 17 de julio de 2007
Vista y problemas con el correo _NO DESCARGA CORREOS EL WINDOWS MAIL ??????
Bueno, estoy disfrutando de mi nuevo portátil vaio sz5mn/b con mi vista businesssssss flamante de fashion colorines y demás, pero que sorpresa cuando me configuro la cuenta de correo del trabajo y tachan!!!!!!!!!!! empieza a descargar mensajes y empieza a darme errores del tipo -ERR IN USE UNABLE TO LOCK MAIL...... ETC ETC.
Tras mucho buscar mira por donde resulta que es una carácteristica que viene habilitada en windows vista llamada autotuninglevel bueno investigando un poco por internet encuentro varios links que hacen referencia a este problema y como resolverlo e increíblemente nuestro amigo NETSH puede ayudarnos.
Como desactivar la opción autotuninglevel:
1.- Buscar cmd-->botón derecho --> Ejecutar como administrador.
2.- Se nos abrirá nuestra querida consola.
3.- Ejecutamos: netsh int tcp set global autotuninglevel=disabled
4.- Aparece el mensaje "Aceptar".
En principio no hace falta reiniciar, o al menos a mi no me hizo falta pero bueno en caso necesario reiniciamos y probamos si tanto internet como la descarga de los mails es satisfactoria (en mi caso me funcionó perfectamente) en caso contrario dejaremos las cosas como estaban.
Realizaremos los pasos 1,2 y en el tercero ejecutaremos netsh int tcp set global autotuninglevel=normal
Bueno espero que os sirva de ayuda.
Os dejo otros enlaces que también hablan de distintos problemas relacionados con este autotuninglevel. ;)
http://es.ghacks.net/2007/04/27/copiar-archivos-grandes-en-vista-mas-rapido/
http://www.grupogeek.com/2007/04/27/autotuning-copiar-archivos-mas-rapido-en-vista/
http://www.howtogeek.com/howto/windows-vista/fix-problems-with-copying-large-files-in-windows-vista/
http://support.microsoft.com/kb/935400/es
Un saludo a todos,
Tras mucho buscar mira por donde resulta que es una carácteristica que viene habilitada en windows vista llamada autotuninglevel bueno investigando un poco por internet encuentro varios links que hacen referencia a este problema y como resolverlo e increíblemente nuestro amigo NETSH puede ayudarnos.
Como desactivar la opción autotuninglevel:
1.- Buscar cmd-->botón derecho --> Ejecutar como administrador.
2.- Se nos abrirá nuestra querida consola.
3.- Ejecutamos: netsh int tcp set global autotuninglevel=disabled
4.- Aparece el mensaje "Aceptar".
En principio no hace falta reiniciar, o al menos a mi no me hizo falta pero bueno en caso necesario reiniciamos y probamos si tanto internet como la descarga de los mails es satisfactoria (en mi caso me funcionó perfectamente) en caso contrario dejaremos las cosas como estaban.
Realizaremos los pasos 1,2 y en el tercero ejecutaremos netsh int tcp set global autotuninglevel=normal
Bueno espero que os sirva de ayuda.
Os dejo otros enlaces que también hablan de distintos problemas relacionados con este autotuninglevel. ;)
http://es.ghacks.net/2007/04/27/copiar-archivos-grandes-en-vista-mas-rapido/
http://www.grupogeek.com/2007/04/27/autotuning-copiar-archivos-mas-rapido-en-vista/
http://www.howtogeek.com/howto/windows-vista/fix-problems-with-copying-large-files-in-windows-vista/
http://support.microsoft.com/kb/935400/es
Un saludo a todos,
viernes, 25 de mayo de 2007
Script con barra de progreso y en un cmd.....
Buenos os adjunto un script que ha mi particularmente me ha sido util y lo posteo aquí porque a parte de postearlo en el foro de elhacker creo que es lo bastante interesante como para postearlo también aquí.
---------- INICIO DEL SCRIPT -- CORTA A PARTIR DE ESTA LÍNEA ---------
:: Creado por Francisco Palenzuela Luque
:: Descripción
:: Hace un ping a todas las direcciones ip en el fichero lista.txt y crea un log
:: con la fecha y hora en que se realizó el ping incluyendo unicamente si el
:: ping fué erroneo.
@echo off
color 17
mode con lines=10 cols=59
FOR /F "tokens=1 delims=/ " %%a IN ('DATE /T') DO set diasemana=%%a
FOR /F "tokens=2 delims=/ " %%b IN ('DATE /T') DO set dia=%%b
FOR /F "tokens=3 delims=/ " %%c IN ('DATE /T') DO set mes=%%c
FOR /F "tokens=4 delims=/ " %%d IN ('DATE /T') DO set any=%%d
set fichero=%dia%%mes%%any%
if exist %fichero% (
goto pings
) else (
echo --[Hora]-- [Direccion IP] [Host] --[Mensaje]-->> %fichero%
echo ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ>> %fichero% )
:pings
cls
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³ Procesando Pings de servidores ³
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo 1234567890123456789
echo ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ
for /f "tokens=1,2 delims=|" %%p in (lista.txt) do (echo/|set/p ^=^Û&@ping %%p -n 2 | find "TTL">nul || @echo %time% -[ %%p ] - [ %%q ] - [ no responde ] >> %fichero% )
:fin
exit
---------- FIN DEL SCRIPT -- CORTA ANTES DE ESTA LÍNEA ---------
El kit de la cuestión esta en lo que he puesto en negrita. Lo encontre en un ejemplo en las news de microsoft y en ocasiones es útil.
Bueno ante la duda ya sabéis donde encontrarme.
PD: Utilizad el edit del DOS para editar y veréis el porqué de los los símbolos raros del script.
Salu2 a todos.
---------- INICIO DEL SCRIPT -- CORTA A PARTIR DE ESTA LÍNEA ---------
:: Creado por Francisco Palenzuela Luque
:: Descripción
:: Hace un ping a todas las direcciones ip en el fichero lista.txt y crea un log
:: con la fecha y hora en que se realizó el ping incluyendo unicamente si el
:: ping fué erroneo.
@echo off
color 17
mode con lines=10 cols=59
FOR /F "tokens=1 delims=/ " %%a IN ('DATE /T') DO set diasemana=%%a
FOR /F "tokens=2 delims=/ " %%b IN ('DATE /T') DO set dia=%%b
FOR /F "tokens=3 delims=/ " %%c IN ('DATE /T') DO set mes=%%c
FOR /F "tokens=4 delims=/ " %%d IN ('DATE /T') DO set any=%%d
set fichero=%dia%%mes%%any%
if exist %fichero% (
goto pings
) else (
echo --[Hora]-- [Direccion IP] [Host] --[Mensaje]-->> %fichero%
echo ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ>> %fichero% )
:pings
cls
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³ Procesando Pings de servidores ³
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo 1234567890123456789
echo ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ
for /f "tokens=1,2 delims=|" %%p in (lista.txt) do (echo/|set/p ^=^Û&@ping %%p -n 2 | find "TTL">nul || @echo %time% -[ %%p ] - [ %%q ] - [ no responde ] >> %fichero% )
:fin
exit
---------- FIN DEL SCRIPT -- CORTA ANTES DE ESTA LÍNEA ---------
El kit de la cuestión esta en lo que he puesto en negrita. Lo encontre en un ejemplo en las news de microsoft y en ocasiones es útil.
Bueno ante la duda ya sabéis donde encontrarme.
PD: Utilizad el edit del DOS para editar y veréis el porqué de los los símbolos raros del script.
Salu2 a todos.
miércoles, 11 de abril de 2007
Procesos...
Bueno, mi intención es ir recopilando y mostrando la utilidad de la línea de comandos y del scripting en general. He preferido empezar explicando comandos y utilizades antes de entrar con otras cosas pero bueno seguimos con los comandos a ver que tal.
PROCESOS.
Bueno, el tema de los procesos es realmente interesante y útil. Siempre es bueno conocer como poder ver procesos activos, como eliminar los que deseemos, etc. Para empezar voy enumerar algunas herramientas que existen hoy en día para la línea de comandos, algunas son propias del sistema operativo y otras pertenecen a support tools, resource kits, o herramientas de terceros como son las archiconocidas pstools.
Empezamos:
Visualizar/mostrar procesos.
1.- tlist-> support tools
2.- pulist --> Resource kit tools de windows 2000.
3.- pslist --> Pertenece a las pstools.
4.- tasklist -> Nativa en windowsxp.
Eliminar y/o MATAR procesos
1.- Taskkill -> Nativa en windowsxp
2.- pskill --> Pertenece a las pstools.
3.- kill -> support tools
Como podéis ver no son pocas, aunque algunas tienen ventajas sobre otras, al menos en la cantidad de información que nos facilitan. Como es habitual podéis utilizar redirecciones para volcar la información a un fichero y revisarlo o compararlo con otro resultado. El funcionamiento de estas herramientas es muy sencillo, aunque como siempre aconsejo el /? para ver la ayuda que ofrecen.
Bueno de momento eso es todo por hoy, en la próxima entrada entraré un poco en detalle con cada una de las herramientas que os he comentado.
Hasta entonces SALU2.
PROCESOS.
Bueno, el tema de los procesos es realmente interesante y útil. Siempre es bueno conocer como poder ver procesos activos, como eliminar los que deseemos, etc. Para empezar voy enumerar algunas herramientas que existen hoy en día para la línea de comandos, algunas son propias del sistema operativo y otras pertenecen a support tools, resource kits, o herramientas de terceros como son las archiconocidas pstools.
Empezamos:
Visualizar/mostrar procesos.
1.- tlist-> support tools
2.- pulist --> Resource kit tools de windows 2000.
3.- pslist --> Pertenece a las pstools.
4.- tasklist -> Nativa en windowsxp.
Eliminar y/o MATAR procesos
1.- Taskkill -> Nativa en windowsxp
2.- pskill --> Pertenece a las pstools.
3.- kill -> support tools
Como podéis ver no son pocas, aunque algunas tienen ventajas sobre otras, al menos en la cantidad de información que nos facilitan. Como es habitual podéis utilizar redirecciones para volcar la información a un fichero y revisarlo o compararlo con otro resultado. El funcionamiento de estas herramientas es muy sencillo, aunque como siempre aconsejo el /? para ver la ayuda que ofrecen.
Bueno de momento eso es todo por hoy, en la próxima entrada entraré un poco en detalle con cada una de las herramientas que os he comentado.
Hasta entonces SALU2.
martes, 10 de abril de 2007
Lectura de un fichero y algo más....
Bueno, hasta ahora hemos realizado cosas sencillitas ahora vamos a hacer algo un poquito más complejo.
Lo que os propongo es lo siguiente. ¿qué haríais si os encontráseis con que quereis controlar cada X minutos si Y servidores o Routers o Pc's o lo que queráis están activos, o sea con conexión?
Bueno yo os propongo hacerlo con un simple cmd que lea el contenido de un fichero y ejecute o realize algo con dicho contenido.
Bueno, empezaremos con el contenido del fichero.
Inicio -- lista.txt <--- No copiar esta línea copiar a partir de aquí.
192.168.0.1|pc1
192.168.0.2|pc2
192.168.0.254|routeradsl
192.168.0.10|serverweb
192.168.0.3|pc_luisa
Fin lista.txt <--- No copiar esta línea.
Bien en el fichero tenemos las ips y las descripciones de los equipos a los que queremos controlar si están conectados, apagados, o sin red.
Bien en este ejemplo usaré un comando que utilizaré bastante que se llama FOR, como siempre para obtener la ayuda detallada de dicho comando escribiremos FOR /?.
También utilizaremos el comando IF muy útil y poco aprovechado pero bueno poco a poco lo irémos viendo.
Bueno pasemos a la chicha.
DoPing.cmd
---------- Copia a partir de esta línea -----------
if exist resultado.txt del resultado.txt
for /f "tokens=1,2 delims=|" %%p in (lista.txt) do (@ping %%p -n 2 | @find "TTL">nul || @echo %time% -[ %%p ] - [ %%q ] - [ no responde ] >>resultado.txt )
start notepad resultado.txt
--------- FIN DE DoPing.cmd -----------------------
1.- Como podemos ver, lo primero que hacemos es comprobar si existe el fichero resultado.txt y si existe lo eliminamos con el comando DEL.
2.- El comando For es algo más complejo, no quiero entrar demasiado en detalles, en principio lo que hace es definir que hay 2 valores por línea y que están separados por el símbolo "|", %%p es el valor 1 o sea token 1 y le decimos que lo tiene que coger del fichero lista.txt especificado arriba.
3.- Lo siguiente que hace es para cada 1 valor realiza un ping y busca en el resultado del ping el valor TTL.
4.- eL || significa que si el comando previo a fallado osea que el find no ha sido correcto ejecutará el echo y añadirá el parámetro hora (time) %%p = ip(token1) %%q(descripción - token2) y añadirá el resultado al fichero resultado.txt
Y por último lo que hace es que nos muestra el contenido del fichero en el notepad.
Bueno, esté miniscript es útil si deseamos por ejemplo crear una tarea programada cada X minutos y que nos guarde un registro. Para que esto funcione deberíamos quitar la primera y última línea y cada vez que se ejecute el script se irá añadiendo al fichero y luego nosotros con tranquilidad podemos examinarlo.
Bueno hay queda eso, si hay alguna duda u error........
Lo que os propongo es lo siguiente. ¿qué haríais si os encontráseis con que quereis controlar cada X minutos si Y servidores o Routers o Pc's o lo que queráis están activos, o sea con conexión?
Bueno yo os propongo hacerlo con un simple cmd que lea el contenido de un fichero y ejecute o realize algo con dicho contenido.
Bueno, empezaremos con el contenido del fichero.
Inicio -- lista.txt <--- No copiar esta línea copiar a partir de aquí.
192.168.0.1|pc1
192.168.0.2|pc2
192.168.0.254|routeradsl
192.168.0.10|serverweb
192.168.0.3|pc_luisa
Fin lista.txt <--- No copiar esta línea.
Bien en el fichero tenemos las ips y las descripciones de los equipos a los que queremos controlar si están conectados, apagados, o sin red.
Bien en este ejemplo usaré un comando que utilizaré bastante que se llama FOR, como siempre para obtener la ayuda detallada de dicho comando escribiremos FOR /?.
También utilizaremos el comando IF muy útil y poco aprovechado pero bueno poco a poco lo irémos viendo.
Bueno pasemos a la chicha.
DoPing.cmd
---------- Copia a partir de esta línea -----------
if exist resultado.txt del resultado.txt
for /f "tokens=1,2 delims=|" %%p in (lista.txt) do (@ping %%p -n 2 | @find "TTL">nul || @echo %time% -[ %%p ] - [ %%q ] - [ no responde ] >>resultado.txt )
start notepad resultado.txt
--------- FIN DE DoPing.cmd -----------------------
1.- Como podemos ver, lo primero que hacemos es comprobar si existe el fichero resultado.txt y si existe lo eliminamos con el comando DEL.
2.- El comando For es algo más complejo, no quiero entrar demasiado en detalles, en principio lo que hace es definir que hay 2 valores por línea y que están separados por el símbolo "|", %%p es el valor 1 o sea token 1 y le decimos que lo tiene que coger del fichero lista.txt especificado arriba.
3.- Lo siguiente que hace es para cada 1 valor realiza un ping y busca en el resultado del ping el valor TTL.
4.- eL || significa que si el comando previo a fallado osea que el find no ha sido correcto ejecutará el echo y añadirá el parámetro hora (time) %%p = ip(token1) %%q(descripción - token2) y añadirá el resultado al fichero resultado.txt
Y por último lo que hace es que nos muestra el contenido del fichero en el notepad.
Bueno, esté miniscript es útil si deseamos por ejemplo crear una tarea programada cada X minutos y que nos guarde un registro. Para que esto funcione deberíamos quitar la primera y última línea y cada vez que se ejecute el script se irá añadiendo al fichero y luego nosotros con tranquilidad podemos examinarlo.
Bueno hay queda eso, si hay alguna duda u error........
Suscribirse a:
Entradas (Atom)