Defrag All Disks

Sinds Windows 2008 kunnen schijven makkelijk automatisch gedefragmenteerd worden, alleen bij de oudere OS-en gaat dat niet erg makkelijk en wat ik zelf ook wel jammer vind bij Windows 2008 is dat er geen logfile gemaakt wordt bij een defragmentatie. Hiervoor is het onderstaande script. Met behulp van het onderstaande VBScript defragmenteer ik daarom aantal servers/ werkplekken. Juist omdat dit script een logfile maakt van ervoor en erna is dit een leuke toevoeging ten opzichte van de standaard defrag.


Const LogFile = "C:\DefragAll.log"
 
Const DriveTypeRemovable = 1
Const DriveTypeFixed = 2
Const DriveTypeNetwork = 3
Const DriveTypeCDROM = 4
Const DriveTypeRAMDisk = 5
 
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Drives = FSO.Drives
 
For each Drive in Drives
   if Drive.DriveType = DriveTypeFixed then
      RunCmd Drive
   end if
Next 
 
Sub RunCmd(DriveString)
   Set WshShell = WScript.CreateObject("WScript.Shell")
   RunString = "%comspec% /c echo " & WeekDayName(WeekDay(Now), True) & " " & Now & " " & DriveString
   Return = WshShell.Run(RunString & " >> " & LogFile & " 2>&1", 0, TRUE)
   RunString = "%comspec% /c %WINDIR%\System32\Defrag.exe " & DriveString & " -f"
   Return = WshShell.Run(RunString & " >> " & LogFile & " 2>&1", 0, TRUE)
   Return = WshShell.Run(echo "" & " >> " & LogFile & " 2>&1", 0, TRUE)
   Set WshShell = Nothing
End Sub