Another Vista oddity

I've assumed, incorrectly apparently, that the Vista "Run as Administrator" function is akin to the sudo or su function in *nix systems. For those not familiar with sudo, it basically provides a one-time elevation of privileges to execute a special command or a command requiring additional user rights. Su basically creates a new security context using the super user and switches into that context (i.e., in a shell, typing su and then the super user password gives you the "super user shell").

Vista does not appear to hold this idea, or at the very least, not entirely. The thing that started me down this path is my use of the subst command. For those who haven't read some of my other articles, I use subst to create a virtual environment letting me work on multiple projects without having to pull the source code down from svn (i.e., c:\source\code1, c:\source\code2, etc. get swaped out to be j:\ for which ever path I'm working with at the time). At any rate, I had my normal command prompt open, substed in the paths I wanted and fired up Delphi 2007. Everything worked great except D2007 locked up everytime I hit a particular bug. Thinking it might be a privledge error causing Delphi to hang, I started Delphi using "Run As Administrator".

Suddenly, nothing would compile. I kept getting error messages saying that the files were missing or locked. Thinking I'd somehow gotten a lock on my files, I rebooted, repeated the process and got the same results. I checked the subst in the command prompt and everything was fine. As a double-check, I then opened a command prompt using "Run As Administrator", typed in subst and voila, no substed drives. Subst in the drives and suddenly everything works as expected.

Apparently, the "Run As Administrator" function has a lot more in common with Terminal Services than it does an elevated privledge in the same session. If you're having problems, you may want to make sure the settings apply equally to the logged in user AND to the "Run As" user.


In another discovery, the network doesn't remember connections either. I have no idea why I thought it would, but it definitely doesn't. If you perform a net use z: \\somedrive\someshare in a normal session, it won't show up in your Run As sessions (and vice versa).