klansoft
Goto Top

Windows 2000 defragmentieren über Taskplaner

Ich stand vor dem Problem, dass ich unter Windows 2000 meine Festplatten defragmentieren wollte. Da es immer sehr viel Zeit in Anspruch nimmt, wollte ich es über den Taskplaner automatisieren. Das Problem ist, dass es die "alte" Defrag.exe unter Windows 2000 nicht mehr gibt.

Die Lösung dazu habe ich im Internet gefunden. Ist also nicht mein Verdienst! Da der Autor unter einem Pseudonym die Lösung zu Verfügung gestellt hat, kann ich nicht einmal seinen Namen erwähnen. Doch ich finde, der Lösungsansatz sollte in diesem Forum zu finden sein!

Es handelt sich bei der Lösung um ein VBE-Script. Dieses Script ruft das Programm auf und simmuliert die "Usereingaben".
Zur Erstellung reicht der Editor. Öffnen Sie den Editor und fügen Sie folgende Zeilen ein:
'Zeile 1-3 normaler Script-Beginn.  
Option Explicit
Dim WshShell
set WshShell = WScript.CreateObject("WScript.Shell")  

'Aufruf von Defrag.  
WshShell.Run "dfrg.msc"  
WScript.Sleep 1000

'Wartet bis Defrag geladen ist.  
While WshShell.AppActivate("Defragmentierung") = FALSE  
wscript.sleep 1000
Wend

'Bringt Defrag in den Vordergrund.  
WshShell.AppActivate "Defragmentierung"  
WScript.Sleep 1000

'Erstes Laufwerk im Defrag-Programm wird selektiert.  
WshShell.SendKeys "{TAB}"  
WScript.Sleep 1000

'Das Menü Vorgang wird geöffnet.  
WshShell.SendKeys "%o"  
WScript.Sleep 1000

'Die Defragmentierung wird gestartet.  
WshShell.SendKeys "D"  

'Wartet bis das Dialogfeld "Defragmentierung abgeschlossen" erscheint.  
While WshShell.AppActivate("Defragmentierung abgeschlossen") = FALSE  
wscript.sleep 5000
Wend

'Bringt das Dialogfeld "Defragmentierung abgeschlossen" in den Vordergrund.  
WshShell.AppActivate "Defragmentierung abgeschlossen"  
WScript.Sleep 1000

'Wechselt im Dialogfeld "Defragmentierung abgeschlossen" zu Schließen.  
WshShell.Sendkeys "{TAB}"  
Wscript.Sleep 1000

'Schließt das Dialogfeld "Defragmentierung abgeschlossen".  
WshShell.Sendkeys "{ENTER}"  
Wscript.Sleep 1000

'Bringt das Fenster Defragmentierung in den Vordergrund.  
WshShell.AppActivate "Defragmentierung"  

'Zweites Laufwerk im Defrag-Programm wird selektiert.  
WshShell.SendKeys "{PGDN}"  

'Das Menü Vorgang wird geöffnet.  
WshShell.SendKeys "%o"  
WScript.Sleep 1000

'Die Defragmentierung wird gestartet.  
WshShell.SendKeys "D"  

'Wartet bis das Dialogfeld "Defragmentierung abgeschlossen" erscheint.  
While WshShell.AppActivate("Defragmentierung abgeschlossen") = FALSE  
wscript.sleep 5000
Wend

'Bringt das Dialogfeld "Defragmentierung abgeschlossen" in den Vordergrund.  
WshShell.AppActivate "Defragmentierung abgeschlossen"  
WScript.Sleep 1000

'Wechselt im Dialogfeld "Defragmentierung abgeschlossen" zu Schließen.  
WshShell.Sendkeys "{TAB}"  
Wscript.Sleep 1000

'Schließt das Dialogfeld "Defragmentierung abgeschlossen".  
WshShell.Sendkeys "{ENTER}"  
Wscript.Sleep 1000

'Bringt das Fenster Defragmentierung in den Vordergrund.  
WshShell.AppActivate "Defragmentierung"  

'Das Defrag-Programm wird beendet.  
WshShell.Sendkeys "%{F4}"  

'Optionale Kontrolle ob das Script auch ausgeführt wurde.  
WScript.echo "Defragmentierung wurde ausgeführt"  

'Script wird beendet  
Wscript.quit
Im Grundprinzip erklärt sich das Script selber. Es werden die ersten beiden Laufwerke, die im Defrag angezeigt werden, defragmentiert. Will man noch mehr Festplatten defragmentieren, müssen Sie ensprechend die o.a. Steuerbefehle erweitern. Nun speichern Sie das Script unter einem beliebigen Namen in einem Verzeichnis ab.

Das Script muss die Endung *.vbs haben!

Jetzt rufen Sie den Taskplaner auf und wählen "geplanten Task hinzufügen". Nach einem Klick auf "weiter" können Sie mit "Durchsuchen" das jeweilige Verzeichnis (in dem Sie das Script gespeichert haben) sowie die Datei mit der Endung *.vbs anwählen. Danach legen Sie die jeweilige Ausführung des Scripts fest. Fertig!

Viel Erfolg!

MfG

Klansoft

P.S. Ob das Script wirklich funktioniert können Sie mit einem einfachen Doppelklick auf das VBE-Script überprüfen...

Content-Key: 133737

Url: https://administrator.de/contentid/133737

Printed on: April 19, 2024 at 21:04 o'clock

Member: SamvanRatt
SamvanRatt Jan 18, 2010 at 15:38:02 (UTC)
Goto Top
Hi
ich würde zwecks Gründlichkeit das modernere FragUtil.exe von Matthias Withopf empfehlen; es ist sehr effektiv und kann auch einiges was der Symantec Defrag (ist ja seit 2000 eingebettet) nicht kann oder erst in den größeren Versionen. Vorteil ist auch das er voll Batchprogrammierbar ist.
Gruß
Sam
Member: klansoft
klansoft Jan 18, 2010 at 18:43:20 (UTC)
Goto Top
Eine nette Information. Ich würde Linux nehmen. Das ist noch besser face-smile
Member: SamvanRatt
SamvanRatt Jan 18, 2010 at 20:42:34 (UTC)
Goto Top
Das kommt auf's Dateisystem an. FreeBSD mit ZFS ist derzeit so das modernste und stabilste was so rumläuft, aber es gilt weiterhin: hauptsache es geht!