December 4, 2006

Running Legacy Apps Under Vista

Filed under: Vista — Marcus Tettmar @ 3:31 pm

If you’re thinking about upgrading to Vista and want to know if your favourite apps will run, here’s a very simple test to try first. In XP create a standard, restricted user account. Now try and run your apps. If they fail to run, or pop up access denied errors when trying to save data or settings, then they will very likely have similar issues when running under a default Vista install.

With previous versions of Windows the default account was always an administrator. If you’ve installed XP out of the box you are probably running as admin. And every application you start has administrator privileges. This means it can do things like write to the Program Files directory, or HKLM, etc. Because this is default, software developers have got into a bad habit of assuming that the user is an administrator. Believe it or not there are developers out there who don’t even realise there’s a different kind of user, and have never tested their software under a restricted user account. Until now this hasn’t been much of an issue because the vast majority of users are administrators anyway.

But with Vista things have changed, for the better. Now, while the default user account is still the Administrator account, all applications run at least user privileges. Applications that require administrator privileges to run, e.g. system configuration tools, can be marked as such and when started will prompt the user to ask permission to continue. This means that the user now knows when an app is about to do something that requires admin rights. If the user is not an administrator she can ask the admin to come and enter his/her password and allow the administrative function to proceed. Or not. This new approach will cut down on malicious programs, trojans and viruses etc, because a process that needs to make a system change cannot do so invisibly. If the process is not marked as requiring Admin privileges, it will not be able to perform administrative tasks. If it is marked, it will pop up a confirmation box.

So lots of applications you have been using happily on XP may be assuming that you are an Administrator. And you may find when you try to run them on Vista that they fail to work. Perhaps because they try to store settings in HKLM or Program Files. If the application lets you change the folder it uses to store settings and output files, change it to a folder in your personal Documents folder.

If you can’t change the fact that it needs to write to a privileged location, and assuming you are logged in as Administrator, one workaround is to run the app with Admin privs. Right click on the application and select “Run as administrator”. Or modify the shortcut. Right click on your shortcut, select Properties then Compatibility and check the “Run this program as administrator” option. But please only do this for applications you trust! Don’t go and give any old application administrative privileges, or you defeat the purpose of this new security feature. Likewise, please don’t disable UAC (User Account Control) altogether.

I’m running a small number of tools that I have to do this for. For now I’m running them as Admin. But I hope the developers will issue updates soon so that I can run them more cleanly under Vista. Reading through various developer groups that I’m a member of I’m constantly amazed at how many developers only just seem to be thinking about Vista, and seem to be confused about these simple changes. Yet Vista has already been released to businesses and has been in beta for the best part of a year.