The good news is everything is installed and working well. The fun news is learning how to use things in a low-privilege environment. The benefits are real, and will be a cornerstone of the next version of Windows (Vista), but until then this is not for the faint of heart.
First off, visit this page Aaron Margosis's weblog. It contains all the links you'll need to make everything work and a lot more information than I am going to provide below.
Here is my simplified version of what I've done to date. This is done from the context of a fresh operating system install, but this is not a requirement. In fact, things may go smoother if you take an existing installation and "convert" it to a low-privilege account.
First task is simply get everything installed using the default Administrator account. This means install the operating system, all its various patches. I installed all my development tools (VS2003, VS2005, Delphi 5), databases (MS SQL 2000 & 2005, Oracle 8i), and office applications under this account too as I knew they would work under other "users" well. This marks a minor mindset change I needed to get into; its my computer not attached to a domain, but I had to remember under what user what was running.
Next add your main user account that you will be spending most of your time with. Make it a limited user. XP required me to create another Admin account first for some strange reason. Now I have an Administrator and an Admin user. Weird.
Log in with your new account and let Windows do its magic to make everything. Now the fun begins. Any icons that are on your desktop you can't delete, because they belong to the "all users" group, and only admins can delete things that span multiple accounts. Here is where life gets challenging and I nearly ditched this attempt.
There are two ways to address this challenge. One is to use Fast Account Switching and just toggle between an admin account and "you". This is easy, perhaps best suited for a non-technical home user but not me. The "big" trick is to get a Windows Explorer shell working that has Admin rights while logged in as "you". This is where learn about a little program called "runas" they allows a program to run under a different security context. Once this is set up you can make all your changes much easier. There will still be times when its more practical to log in as admin and get stuff done.
The instructions on how to set up Windows Explorer under admin mode were a little confusing (or, I didn't read them fully) so I'll offer these steps.
- Log into the Admin account
- Launch the Windows Explorer.
- Select Tools | Folder Options from the menu.
- Under the View tab, scroll down and ensure the "Launch folder windows in separate process" checkbox is checked.
- Read the section entitled "How do I tell my admin windows from my normal windows?" from this post to set up the easiest way to tell when you are running Windows Explorer as an admin.
- Log back into "your" account.
- Create a new shortcut on your system with a target that reads:
C:\WINDOWS\system32\runas.exe /user:admin /savecred %SystemRoot%\explorer.exe
The first time you run this it will ask you for the Admin account's password, but the /savecred flag stores that password. You will now have a Windows Explorer window running with admin rights, which lets you do pretty much anything.
This is also the way to get pesky applications that demand admin rights to work properly. For example, I do not autostart IIS and SQL Server (as they take up too much CPU/memory when just playing games) so need to manually start and stop them. Below is a batch file I run to handle this.
msdev.bat
@echo off
set action=start
if not "%1"=="" set action=%1
runas /user:admin /savecred "net %action% MSSQLSERVER"
runas /user:admin /savecred "net %action% w3svc"
So when I want to spin up my Microsoft development environment, I simply use the Run feature off the start menu and type "msdev" (assuming you put that batch file somewhere in the user's path).
I'll say again, this was a royal pain to go through but now that the work is done there is little left to do. Most of the pain was finding the set of instructions that best fit what I wanted to do and general problem solving. Of course, next step is to fully set up my development tools in this environment, but that is for another day...