Desfragmentación Programada en Windows 2000:

Escrito el 28 Febrero, 2003 – 20:00 | por storm | 1.767 lecturas

El Windows 2000 no permite poner en tareas programadas el Desfragmentador de discos , y según el articulo
Knowledge Base article Q227463 publicado por Micro$oft , el desfragmentador no puede ser ejecutado como una tarea programada…

Esto es verdad… hasta ahora 😉

Aquí hay un VBS , para poder realizar la desfragmentación de los discos en forma programada.
Solamente hay que tener en cuenta algunas cositas:

  • Hay que estar logueado con un usuario con privilegios de administrador.
  • El archivo ShellIconCache esta siempre fragmentado, y el desfragmentador de discos no lo desfragmenta.
    La opción es desfragmentarlo de antemano con el siguiente proceso Batch. (crear un archivo nuevo con el Block de notas, copiar el código de abajo en el documento y guardarlo como “SIC_Defrag.bat” )


REM Esto es pa que se defragmente el archivo SHELLICONCACHE que el defragmentador no defragmenta.
CD C:WINNT
ATTRIB -H “SHELLICONCACHE”
COPY “SHELLICONCACHE” C:
CD C:
REN “SHELLICONCACHE” SHELL
DEL “C:WINNTSHELLICONCACHE”
REN SHELL “ShellIconCache”
COPY “ShellIconCache” C:WINNT
DEL “ShellIconCache”
CD C:
CD C:WINNT
ATTRIB +H “ShellIconCache”

  • Otra cuestión a tener en cuenta son los antivirus : por ejemplo el norton antivirus , tiene protección contra virus en los scripts VBS , cuando ejecutamos algún VBS una ventana de alerta aparece , preguntándonos que queremos hacer con ese Script, en esa ventana abajo de todo , nos muestra la Acción que queremos realizar con el script , si ponemos que autorice este script , no nos va a volver a molestar nunca mas.

Bueno acá esta el script:
(Para crearlo tenemos que abrir un Block de notas y copar el siguiente código y luego guardarlo con
AutoDerfag.VBS)


‘Script para Desfragmentar 1 Unidad
‘ Por Lucas

set WshShell = CreateObject(“WScript.Shell”)

‘inicia el defragmentador desde la consola y espera 2 segundos.
WshShell.Run “dfrg.msc”
WScript.Sleep 2000

‘espera que la consola MMC con el defragmentador se inicie…
While WshShell.AppActivate(“Desfragmentador de disco”) = FALSE
wscript.sleep 1000
Wend

‘Pone en foco la Aplicación
WshShell.AppActivate “Desfragmentador de disco”
WScript.Sleep 500

‘envía TAB INICIO para poner el foco en c:
WshShell.SendKeys “{TAB}{HOME}”
WScript.Sleep 501

‘envía un ALT-A para abrir el menú de arriba.
WshShell.SendKeys “\%A”
WScript.Sleep 502

‘Envía una F para comenzar el defrag
WshShell.SendKeys “F”

‘Espera que termine el defrag.
While WshShell.AppActivate(“Desfragmentación completada”) = FALSE
wscript.sleep 5001
Wend

‘Pone en foco la ventana de desfragmentación completa.
WshShell.AppActivate “Desfragmentación completada”
WScript.Sleep 503

‘Envía un TAB para poner el foco en el botón CERRAR.
WshShell.Sendkeys “{TAB}”
Wscript.Sleep 504

‘Envía un ENTER para apretar el botón CERRAR.
WshShell.Sendkeys “{ENTER}”
Wscript.Sleep 505

‘Pone el foco nuevamente en la ventana Desfragmentador de disco.
WshShell.AppActivate “Desfragmentador de disco”
WScript.Sleep 506

‘Envía un ALT + F4 para cerrar el desfragmentador de discos.
WshShell.Sendkeys “\%{F4}”

Si se necesita Desframentar mas unidades acá
hay un ejemplo para desfragmentar 3 unidades:

‘Script para Desfragmentar 3 Unidades
‘ Por Lucas

set WshShell = CreateObject(“WScript.Shell”)

‘inicia el desfragmentador desde la consola y espera 2 segundos.
WshShell.Run “dfrg.msc”
WScript.Sleep 2000

‘espera que la consola MMC con el desfragmentador se inicie…
While WshShell.AppActivate(“Desfragmentador de disco”) = FALSE
wscript.sleep 1000
Wend

‘Pone en foco la Aplicación
WshShell.AppActivate “Desfragmentador de disco”
WScript.Sleep 500

‘envía TAB INICIO para poner el foco en c:
WshShell.SendKeys “{TAB}{HOME}”
WScript.Sleep 501

‘envía un ALT-A para abrir el menú de arriba.
WshShell.SendKeys “\%A”
WScript.Sleep 502

‘Envía una F para comenzar el defrag
WshShell.SendKeys “F”

‘Espera que termine el defrag.
While WshShell.AppActivate(“Desfragmentación completada”) = FALSE
wscript.sleep 5001
Wend

‘Pone en foco la ventana de desfragmentación completa.
WshShell.AppActivate “Desfragmentación completada”
WScript.Sleep 503

‘Envía un TAB para poner el foco en el botón CERRAR.
WshShell.Sendkeys “{TAB}”
Wscript.Sleep 504

‘Envía un ENTER para apretar el botón CERRAR.
WshShell.Sendkeys “{ENTER}”
Wscript.Sleep 505

‘Pone el foco nuevamente en la ventana Desfragmentador de disco.
WshShell.AppActivate “Desfragmentador de disco”
WScript.Sleep 506

‘Presiona la “FLECHITA” para abajo , para pasar a la siguiente unidad
WshShell.SendKeys “{DOWN}”
WScript.Sleep 507

‘envía un ALT-A para abrir el menú de arriba.
WshShell.SendKeys “\%A”
WScript.Sleep 508

‘Envía una F para comenzar el defrag
WshShell.SendKeys “F”

‘Espera que termine el defrag.
While WshShell.AppActivate(“Desfragmentación completada”) = FALSE
wscript.sleep 5002
Wend

‘Pone en foco la ventana de desfragmentación completa.
WshShell.AppActivate “Desfragmentación completada”
WScript.Sleep 509

‘Envía un TAB para poner el foco en el botón CERRAR.
WshShell.Sendkeys “{TAB}”
Wscript.Sleep 510

‘Envía un ENTER para apretar el botón CERRAR.
WshShell.Sendkeys “{ENTER}”
Wscript.Sleep 511

‘Pone el foco nuevamente en la ventana Desfragmentador de disco.
WshShell.AppActivate “Desfragmentador de disco”
WScript.Sleep 512

‘Presiona la “FLECHITA” para abajo , para pasar a la siguiente unidad
WshShell.SendKeys “{DOWN}”
WScript.Sleep 513

‘envía un ALT-A para abrir el menú de arriba.
WshShell.SendKeys “\%A”
WScript.Sleep 514

‘Envía una F para comenzar el defrag
WshShell.SendKeys “F”

‘Espera que termine el defrag.
While WshShell.AppActivate(“Desfragmentación completada”) = FALSE
wscript.sleep 5003
Wend

‘Pone en foco la ventana de desfragmentación completa.
WshShell.AppActivate “Desfragmentación completada”
WScript.Sleep 515

‘Envía un TAB para poner el foco en el botón CERRAR.
WshShell.Sendkeys “{TAB}”
Wscript.Sleep 516

‘Envía un ENTER para apretar el botón CERRAR.
WshShell.Sendkeys “{ENTER}”
Wscript.Sleep 517

‘Pone el foco nuevamente en la ventana Desfragmentador de disco.
WshShell.AppActivate “Desfragmentador de disco”
WScript.Sleep 700

‘Envía un ALT + F4 para cerrar el desfragmentador de discos.
WshShell.Sendkeys “\%{F4}”

You must be logged in to post a comment.

Buscar: