I use the default defrag on Vista works fine I havnt had any problems using it.
This is the script I use, it clears the recent folder, user temp then defrag all drives.
CODE
Const MY_RECENT_DOCUMENTS = &H8&
Dim Arg1, ColItems, File, GB, ObjItem, StrF, StrFItem, strComputer, Var1
strComputer = "."
Dim Shell :Set Shell = CreateObject("Shell.Application")
Dim Act :Set Act = CreateObject("Wscript.Shell")
Dim Fso :Set Fso = CreateObject("Scripting.FileSystemObject")
Dim Wmi :Set Wmi = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set StrF = Shell.Namespace(MY_RECENT_DOCUMENTS)
Set StrFItem = StrF.Self
Set ColItems = StrF.Items
'/-> Clear Recent List
If ColItems.Count = 0 Then
Act.Popup "Recent is Empty, Nothing To Delete",3,"Clear Recent",4128
Else
Act.Popup "Preparing To Clean Up The Recent Folder",3,"Clear Recent",4128
For Each ObjItem in ColItems
Set Arg1 = Fso.GetFile(ObjItem.Path)
Arg1.Delete()
Next
End If
'/-> Clears User Tmp Folder
Set Var1 = Fso.GetFolder(Fso.GetSpecialFolder(2))
Set File = Var1.Files
Act.Popup "Preparing To Clean Up User Temp" & vbCrLf & Var1.Path,3,Var1.Name,4128
For Each StrF In File
If InStr(StrF.Name,".bmp") Then
Else
Set Arg1 = Fso.GetFile(StrF.Path)
On Error Resume Next
Arg1.Delete()
End If
Next
'/-> Defrag All Drives
GB = Int(1073741824)
Set ColItems = Wmi.ExecQuery("SELECT * FROM Win32_LogicalDisk",,48)
For Each ObjItem in ColItems
If ObjItem.DriveType = 3 Then
Var1 = objItem.Size - objItem.FreeSpace
Act.Popup "Preparing To Defrag This Drive" & vbCrLf &_
Space(3) & "Drive Letter"& vbTab & ObjItem.Caption & vbCrLf &_
Space(3) & "Volume Name" & vbTab & objItem.VolumeName & vbCrLf &_
Space(3) & "Total Size" & vbTab & FormatNumber(objItem.Size/GB,2) & " GB" & vbCrLf &_
Space(3) & "Free Space" & vbTab & FormatNumber(objItem.FreeSpace/GB,2) & " GB" & vbCrLf &_
Space(3) & "Used Space" & vbTab & FormatNumber(Var1/GB,2) & " GB", 3,"Defrag",4128
Act.Run("Defrag.exe " & ObjItem.Caption &"\"),2,True
End If
Next
Act.Popup "Finished Clearing Recent, User Temp, Defrag",7,"Finshed",4128