Defrag

23/01/2004 - 17:15 por erick | Informe spam
Como se puede programar el defrag en win 2000 para que se
ejecute un dia a una hora determinada
Un saludo
 

Leer las respuestas

#1 erick
23/01/2004 - 17:27 | Informe spam
Gracias lo intentare
El programa Defrag que incorpora Windows 2000 no tiene la


capacidad de ser programado ni tampoco de ser lanzado
desde línea de comandos, por lo cuál no se puede programar
una tarea que realice una defragmentación. Defrag es, en
realidad, la versión lite de Diskeeper, el cuál sí que se
puede programar y además es capaz de defragmentar más y
mejor que Defrag. Lo malo, obviamente, es que se trata de
un programa de pago.

Existe un script de vbs, desarrollado por Marcial Carlés,


que es capaz de lanzar una defragmentación y por tanto
puede ser programada. Se basa en abrir Defrag y enviar
comandos sendkey (es decir, desde código se "generan" las
pulsaciones de teclas necesarias para lanzar la
defragmentación). Tiene un inconveniente, y es que al
basarse en sendkey, es necesario que Defrag tenga el foco
cuando se está ejecutando el script; esto implica que el
equipo que lo ejecuta esté desbloqueado, cosa que es
totalmente indeseable en un servidor, que no debería tener
ni iniciada sesión y si nos vemos obligados a tener una
sesión iniciada (por temas de backup, por ejemplo) al
menos debe estar bloqueada la pantalla. Pego el código del
script, por si aún así te interesa; copias lo que hay
entre <pego> y </pego>, lo pegas en el block de notas,
guardandolo con extensión vbs y lo lanzas con cscript:

<pego>
'Progamado por Marcial Carlés

'Este script ejecuta el defrag y lanza unas llamadas
'al entorno gráfico para automatizar el proceso de defrag.
set WshShell = CreateObject("WScript.Shell")

'Lanza el Defrag desde la linea de comandos y espera un


segundo.
WshShell.Run "dfrg.msc"
WScript.Sleep 2000

'Envia un ALT-A para abrir el menú del degrag y espera un


poco.
WshShell.SendKeys "%A"
WScript.Sleep 2000

'Una vez abierto el menú envia una F para iniciar el


defrag.
WshShell.SendKeys "F"

'Espera hasta que el defrag halla terminado, chequeando


el
'programa cada 5 segundos.
While WshShell.AppActivate("Desfragmentación Completada")


= FALSE
wscript.sleep 5000
Wend

'Manda la aplicación al fondo de la pantalla y espera un


poco.
WshShell.AppActivate "Desfragmentación Completada"
WScript.Sleep 5000

'Envia una tabulación para mover el foco desde el botón


de
'ver el report hasta el botón de cerrar y espera un poco.
WshShell.Sendkeys "{TAB}"
Wscript.Sleep 2000

'Envia la clave para cerrar la ventana de defragmentación
'completada y espera un poco.
WshShell.Sendkeys "{ENTER}"
Wscript.Sleep 1000

'Envia la clave para cerrar la ventana del defrag y
'espera un poco.
WshShell.Sendkeys "%{F4}"
</pego>

Un saludo
Fernando Reyes [MS MVP]
MCSE Windows 2000
tururúú.mvps.org
(no toques la corneta para escribirme)


"erick" escribió en


el mensaje
news:2ac401c3e1cc$29ce9bd0$
Como se puede programar el defrag en win 2000 para que




se
ejecute un dia a una hora determinada
Un saludo

Preguntas similares