programar defragmentación

19/01/2004 - 11:06 por Jaume | Informe spam
Se puede programar la defragmentación de un disco duro a
una hora determinada bajo windows 2000 server sp3???
Supongo que en tareas programadas si, pero no se ejecutar
la sentencia que carga el defragmentador de disco. Alguien
me puede ayudar?
Muchas gracias.

Jaume.
Administrador de Sistemas Informáticos.
 

Leer las respuestas

#1 Jaume
19/01/2004 - 12:56 | Informe spam
Muchas gracias fernando por tu respuesta. Ya estoy
evaluando diskeeper que me he bajado de internet. En
referencia a lo de desbloquear el servidor, pues a ver,
tengo iniciada la sesión pero el servidor está bloqueado y
efectivamente no me parece buena idea lo de tenerlo
desbloqueado. De todas formas muchas gracias por tu
información.

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 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

(Comete dos mandarinas si quieres escribirme)


"Jaume" escribió en


el mensaje
news:04e901c3de73$dc0ab380$
Se puede programar la defragmentación de un disco duro a
una hora determinada bajo windows 2000 server sp3???
Supongo que en tareas programadas si, pero no se




ejecutar
la sentencia que carga el defragmentador de disco.




Alguien
me puede ayudar?
Muchas gracias.

Jaume.
Administrador de Sistemas Informáticos.

Preguntas similares