Summary

There is benefit to running as a non-priviledged user when developing and testing applications. This is my running list of experiences (including my work-arounds), so other developers can have a slightly less painful journey than I did.

Last updated: March 10, 2004

Links

Developer Lifestyle, which includes two articles by security guru Keith Brown

Developing as Non-Admin with VS.NET 2003 (Anil John)

How To: Secure Your Developer Workstation (MSDN)

Developing Software in Visual Studio .NET with Non-Admin Privileges (MSDN)

Ran Perfectly

The applications ran without any flaws.

Adobe Photoshop Elements. No issues.

Easy CD Creator 5 Platinum. No issues.

Mozilla 1.3. No issues.

SecureCRT 4.0. No issues.

RSS Bandit 1.1 Beta 5. No issues.

The Bat! 1.62r. No issues (although you need to be aware when running for the first time that the default Mail directory is not writable by non-admins, but can be changed to your My Documents area easily).

TortoiseCVS 1.3 beta. No issues.

Windows Media Player 9. No issues with playback, ripping or streaming.

Windows XP Professional. Generally speaking, everything I tried that shipped with XP worked fine, unless noted below.

WinZip 8.1. No issues.

ZoneAlarm Pro 3.7.159. No issues.

Ran With Quirks

Non-serious oddities happened when running as non-admin.

Microsoft Office 2003 Beta 2. After install, the Windows Installer said files needed to be installed, even though I did a Complete installation. Accepted the Office CD to update, and never asked again. I'm not even convinced this is an admin problem, so much as an issue about running Office in a user account that didn't install it.

Required Admin Intervention

The administrator needed to intervene to set unusual permissions.

ASP.NET (Debugging). Under Windows XP, all ASP.NET code runs with the ASPNET credentials. Debugging directly is impossible. Two work-arounds: (1) run Visual Studio as administrator, so it can attach to the process; (2) run ASP.NET under your own credentials instead of the ASPNET credentials. (Not yet determined whether being in the debugger user's group will alleviate this, although I'm hesistant about giving my non-admin account the ability to just arbitrarily attach to another process.)

NewsCrawler 1.4.1. Required the administrator to run the program once to enter the registration code, because it's stored in HKEY_LOCAL_MACHINE. Authors should take a hint from WinZip, which has registration info on a per-user basis (makes more sense, anyway, that multiple users on one machine shouldn't normally share a registration of a shareware program).

Trillian Pro 1.0c. Required the "users" folder underneath Trillian to be marked writable for non-admins.

Winamp 2.80. Required the "winamp.ini" file to be marked writable for non-admins.

Required Elevated Permissions

Could only be made to work right by giving the user temporary admin rights.

Microsoft Visual Studio .NET 2002. Moved this down here because there is a problem w/ the MSDN/VS integration. Everything was installed as admin, and ran fine w/ admin. As a non-admin, a lot of the help topics tried to run the Windows installer, which failed because I wasn't admin. Required the user to become an admin temporarily to be completed properly. Installing MSDN Library instead of the built-in help did not fix the problem.

Windows XP Power Applet. Setting the power options requires admin priviledges. Cannot be done by an admin, because they are changing their OWN power settings; required the user to become an admin temporarily to be completed properly.

Would Not Run

Would not functional at all without being administrator.

ISO Recorder. Threw ATL assertions and failed to work at all. Might be registry access, but it's not clear (and running RegMon requires admin rights). Too bad, as I love this tool.

Winamp 3.0. Would crash when run as non-admin. Run as admin, worked just fine. Ended up backing off to 2.80. It's been suggested that this is a permission issue, trying to write to files in the install directory.

About the Author

Brad Wilson is a .NET technology consultant and a frequent contributor to .NET related mailing lists. When not writing at his web log, he spends much of his time looking for inventive ways to break ASP.NET and bend it to his will. :)

Brad lives in beautiful Parker, Colorado. He is an avid game player, including poker, backgammon, cribbage, and Go.

If you have any questions or concerns about his articles, you may contact Brad here.

Brad Wilson