Defraggler - Pushing out and Defragging - Authoring Help Needed Please

(imported topic written by tscott91)

I am trying to figure out how I would push out Defraggler to my PC’s. I have created a MSI and can get it installed silently with no problems…

The question I have is about relevance… I want to make the action relevant if the version of defraggler is less than the version I’m pushing OR it’s not installed at all…

I tried the relevance:

not exists “C:\program files\defraggler\df.exe” OR version of file “C:\program files\defraggler\df.exe” <= “1.20.0.201”

And that works great for PC’s that have Defraggler already installed… However, for computers that don’t have it installed. I get:

q: version of file “C:\program files\defraggler\df.exe” < “1.20.0.201”

E: Singular expression refers to nonexistent object.

What do I need to change in my relevance so that it will be relevant if it’s not installed or if the version is less than above?

Next question and not sure if this is possible… I created a “Defrag” action with the simple action of “RUN C:\Program Files\Defraggler\df.exe c:” and it works fine…

What I was wondering is, is it possible for the action to not return “Completed” until DF.EXE actually closes (which means it is done defragging)… Currently with the above code it returns completed once the EXE is launched…

Thanks much.

(imported comment written by MattBoyd)

I’d use the whose clause to filter out versions. Try this:

not exists file “C:\program files\defraggler\df.exe” whose (version of it >= “1.20.0.201”)

Edit: I changed the less than to a greater than

(imported comment written by tscott91)

Sweetness!! Thanks!!

Any ideas on my other question or is it not possible like I’m assuming…

(imported comment written by SystemAdmin)

If you use “waithidden” instead of “run”, that should do the trick. I actually have a similar fixlet that uses “MyDefrag” instead. I wanted it to run at low priority, so I had to use this line:

waithidden cmd.exe /c “start /B /BelowNormal __Download/mydefrag.exe”

However, since the actual executable being run there is “cmd”, it ends as soon as it launches Mydefrag, so I had to do this instead:

pause while {exists running application “mydefrag.exe”}

Good luck!

(imported comment written by tscott91)

This forum rocks!

Thanks much!

(imported comment written by tscott91)

One more question regarding this… When I stop the action it doesn’t close DF.exe.

My action is: waithidden C:\Program Files\Defraggler\df.exe c:

Any way to get df.exe to close down without a separate task?