MyDefrag
MyDefrag is a powerful freeware defragmentation tool. Here is what I did to make it work:
Install the main-program:
<package id="mydefrag" name="MyDefrag" revision="1" reboot="false" priority="3">
<check type="uninstall" condition="exists" path="MyDefrag v4.0b12" />
<install cmd='%SOFTWARE%\mydefrag\MyDefrag-v4.0b12.exe /SP /VERYSILENT /SUPPRESSMSGBOXES /NOCANCEL /NORESTART /LANG=de /GROUP="MyDefrag" /LOG /DIR="%PROGRAMFILES%\MyDefrag"' />
<upgrade cmd='%SOFTWARE%\mydefrag\MyDefrag-v4.0b12.exe /SP /VERYSILENT /SUPPRESSMSGBOXES /NOCANCEL /NORESTART /LANG=de /GROUP="MyDefrag" /LOG /DIR="%PROGRAMFILES%\MyDefrag"' />
<remove cmd='"%PROGRAMFILES%\MyDefrag\unins000.exe" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART' />
</package>
I have some custom scripts. I don't want the user to see, MyDefrag runs, so I added a "WindowSize(invisible)" to the scripts. The scripts are text files.
<package id="mydefrag-scripts" name="MyDefrag-Scripts" revision="1" reboot="false" priority="2">
<check type="file" condition="exists" path='C:\TEMP\WPKG\mydefrag-scripts.SEM' />
<install cmd='%SOFTWARE%\mydefrag\install.bat' />
</package>
install.bat is a small copy script, which copies the customized scripts into the programdir of MyDefrag.
Run once a deep-optimize (it's safe, no worry about corrupted discs in your company):
<package id="mydefrag-slow" name="MyDefrag SlowOptimize" revision="1" reboot="false" priority="1" notify="false" execute="once">
<install cmd='cmd.exe /c start "MyDefrag" /BelowNormal "%PROGRAMFILES%\MyDefrag\MyDefrag.exe" "-r" "SlowOptimize.MyD"' />
</package>
To not jam the PC, the process priority is below normal.
And an everyday job, to keep the discs unfragmented:
<package id="mydefrag-fast" name="MyDefrag Fast-Update" revision="1" reboot="false" priority="0" notify="false" execute="always">
<install cmd='cmd.exe /c start "MyDefrag" "%PROGRAMFILES%\MyDefrag\MyDefrag.exe" "-r" "FastUpdate.MyD"' />
</package>