Windows 2000 defragmentieren über Taskplaner
18.01.2010
15:42:34 Uhr4660 Aufrufe
3 Antworten
15:42:34 Uhr
3 Antworten
Hilfreich +1
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:
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...
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:
01.
'Zeile 1-3 normaler Script-Beginn. 02.
Option Explicit 03.
Dim WshShell 04.
set WshShell = WScript.CreateObject("WScript.Shell") 05.
06.
'Aufruf von Defrag. 07.
WshShell.Run "dfrg.msc" 08.
WScript.Sleep 1000 09.
10.
'Wartet bis Defrag geladen ist. 11.
While WshShell.AppActivate("Defragmentierung") = FALSE 12.
wscript.sleep 1000 13.
Wend 14.
15.
'Bringt Defrag in den Vordergrund. 16.
WshShell.AppActivate "Defragmentierung" 17.
WScript.Sleep 1000 18.
19.
'Erstes Laufwerk im Defrag-Programm wird selektiert. 20.
WshShell.SendKeys "{TAB}" 21.
WScript.Sleep 1000 22.
23.
'Das Menü Vorgang wird geöffnet. 24.
WshShell.SendKeys "%o" 25.
WScript.Sleep 1000 26.
27.
'Die Defragmentierung wird gestartet. 28.
WshShell.SendKeys "D" 29.
30.
'Wartet bis das Dialogfeld "Defragmentierung abgeschlossen" erscheint. 31.
While WshShell.AppActivate("Defragmentierung abgeschlossen") = FALSE 32.
wscript.sleep 5000 33.
Wend 34.
35.
'Bringt das Dialogfeld "Defragmentierung abgeschlossen" in den Vordergrund. 36.
WshShell.AppActivate "Defragmentierung abgeschlossen" 37.
WScript.Sleep 1000 38.
39.
'Wechselt im Dialogfeld "Defragmentierung abgeschlossen" zu Schließen. 40.
WshShell.Sendkeys "{TAB}" 41.
Wscript.Sleep 1000 42.
43.
'Schließt das Dialogfeld "Defragmentierung abgeschlossen". 44.
WshShell.Sendkeys "{ENTER}" 45.
Wscript.Sleep 1000 46.
47.
'Bringt das Fenster Defragmentierung in den Vordergrund. 48.
WshShell.AppActivate "Defragmentierung" 49.
50.
'Zweites Laufwerk im Defrag-Programm wird selektiert. 51.
WshShell.SendKeys "{PGDN}" 52.
53.
'Das Menü Vorgang wird geöffnet. 54.
WshShell.SendKeys "%o" 55.
WScript.Sleep 1000 56.
57.
'Die Defragmentierung wird gestartet. 58.
WshShell.SendKeys "D" 59.
60.
'Wartet bis das Dialogfeld "Defragmentierung abgeschlossen" erscheint. 61.
While WshShell.AppActivate("Defragmentierung abgeschlossen") = FALSE 62.
wscript.sleep 5000 63.
Wend 64.
65.
'Bringt das Dialogfeld "Defragmentierung abgeschlossen" in den Vordergrund. 66.
WshShell.AppActivate "Defragmentierung abgeschlossen" 67.
WScript.Sleep 1000 68.
69.
'Wechselt im Dialogfeld "Defragmentierung abgeschlossen" zu Schließen. 70.
WshShell.Sendkeys "{TAB}" 71.
Wscript.Sleep 1000 72.
73.
'Schließt das Dialogfeld "Defragmentierung abgeschlossen". 74.
WshShell.Sendkeys "{ENTER}" 75.
Wscript.Sleep 1000 76.
77.
'Bringt das Fenster Defragmentierung in den Vordergrund. 78.
WshShell.AppActivate "Defragmentierung" 79.
80.
'Das Defrag-Programm wird beendet. 81.
WshShell.Sendkeys "%{F4}" 82.
83.
'Optionale Kontrolle ob das Script auch ausgeführt wurde. 84.
WScript.echo "Defragmentierung wurde ausgeführt" 85.
86.
'Script wird beendet 87.
Wscript.quitDas 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...
SamvanRatt schreibt am 18.01.2010 um 16:38:02 Uhr
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
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
SamvanRatt schreibt am 18.01.2010 um 21:42:34 Uhr
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!














