August 2, 2010

PortableApps, SyncToy and Windows Task Scheduler

Share on Facebook

Three things that Windows users should be using but they aren’t. Seriously.

First of all, like many other users, I am growing weary of applications that have to be “Installed” which make entries in Windows registry and spew files all over the file system. .NET framework gave a ray of hope as your application can be totally self contained in a single directory.. however, old habits die hard and we still have .NET apps which manipulate windows registry which makes it “unportable”.

Imagine this, you installed a software on your C: drive and now are running out of space, so you decide to move it to D: where there is ample space. So you move C:\Program Files\Microsoft to D:\Microsoft Office… what do you think happens next? Yeah, total chaos.. All your registry entries are still pointing to old C: location and nothing would work. This is true not only of Microsoft Office but most application which are available for Windows.

Portable Apps is a website which re-packages applications (mostly opensource) into applications which do not require windows registry or files outside its own folder. These applications can be simply copied into any location on your hard disk and executed from there. These applications don't even use User Profiles from their regular location like User\AppData\Local making it very convenient to move these application from one directory to another or one drive to another but also from one computer to another without any loss of information, history or preferences. In fact, these applications are meant to be installed on a USB drive which can then be used on any computer without having to transfer these application to that computers hard disk. However, if you are using PortableApps directly from the USB Drive, given the speed of USB, it can be slow to launch applications and writebacks to the USB can be even slower. But who says PortableApps are meant only for USB drives? I find them very useful even on my laptop, where I can copy them and run them without having to install and configure.


This brings us to another issue.. What if I want to use PortableApps on my laptop when connected but at the same time be able to carry them with me on a USB when I go out. I would want to carry all my applications, preferences settings on my USB drive and be able to bring them back to my laptop once I return. This lead me to go back to a less-used application from Microsoft.

Sync Toy

64px-SyncToySync Toy was released by Microsoft long ago for Windows XP and has been updated for Vista and Windows 7. It a simple application albeit a very useful one, which synchronizes files between any two folders. It is essentially meant for backups where you can copy files from work folder into backup folder on a periodic basis. SyncToy is perfect for our scenario as it will help us keep the PortableApps on the laptop as well as on USB to remain in sync. This way, I can download my mails using ThunderBird onto my laptop folder, sync it onto USB, go over to another computer, plug in the USB and have access to all my mails on that computer without having to install even one byte of any software. If you download mails when on that computer, once I get back, I will be able to sync back the changes back to the folder on my laptop and will have the newly downloaded mails now on my laptop too. Life is so Simple Smile

To enable synchronization, just run SyncToy and create a folder pair. SyncToy asks for “Left side” folder and “Right side” folder to give a visual sense of the operation. Select your on-computer PortableApps folder on the Left side and choose the USB drive as the right side folder and select Synchronize option. Make sure to do a “preview” before you land up copying massive files into the USB due to choosing wrong folder setting.


Now you are set.. Use PortableApps on your laptop or desktop and when you are ready to leave just plug-in you USB, run SyncToy and copy all your applications, preferences, data files onto the USB drive and you are ready to go. When you return back, plug-in the USB again and SyncToy will Sync back the changes onto your hard disk. Don't worry about the direction as will figure out what has changed and on which side.

You still have to remember to run SyncToy every time you plug-in the USB though and that brings us to the third great application.

Windows Task Scheduler

It is possible the most underutilized feature of Windows while being capable of doing amazing thing. Task Scheduler is meant to schedule periodic tasks like drive backups, cleanups, daily mails etc. Most of these tasks are scheduled at a particular time but Task Scheduler is also capable of triggering on events like Hardware events, shutdown, start-up, user login etc. We need one such event to automate our SyncToy.

Run Task Scheduler and Create a new Task. Give it a friendly name like “Run SyncToy on USB”


Next step is to trigger it when the USB is inserted. This is a little tricky because we need to know which hardware event is triggered when the USB is inserted in the laptop. To find out, got Event Viewer and look at entries under Microsoft-Windows-DriverFrameworks-Usermode-operational. You will see the event ID for the USB you have inserted. In my case it is 2101. So, in the next step create a trigger for this event,


You are almost done, the last step is to provide an action of running the SyncToy. You should not run SyncToy in a mode where is comes up and starts copying the files automatically as you don't want this to happen to any USB you insert. It would be a good idea to just bring up SyncToy as a reminder when you insert a USB and then you can decide either to run it or close SyncToy without Synchronization.



There… you are done. Now, every time you insert your USB drive, it will popup SyncToy as a reminder to sync your PortableApps with the ones on your USB.

Happy Porting!

No comments:

Post a Comment