View Single Post
01-21-08, 11:27 AM   #1
Shirik
Blasphemer!
Premium Member
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2007
Posts: 818
Vista Users - UAC and You

If you don't want to know all the background information on WHY this is necessary, and just want to get WoW to work, then scroll down "Making It Work" below.

Are you having trouble installing addons? Are you changing files or deleting your WTF folder, but somehow magically WoW ignores the changes? If you're on Windows Vista, a new security feature called "User Account Control" is likely to blame.

About User Account Control (UAC)
Microsoft's Windows Vista is the latest generation of their Windows operating system. Along with new eye-catching features, Vista also takes a new, hard stance on security. This new stance, however, caught some programmers off-guard. As a result, these new features have caused some programs to operate slightly differently than expected, and unfortunately, World of Warcraft is one of them.

The new feature in question is called "User Account Control" or "UAC." UAC is a great feature that provides users with the security that they are not running as administrators all the time. *nix users will be familiar with this system, as the overwhelming majority of them will agree that you should not be running as root, and only give permissions to programs as necessary.

One of the restrictions imposed by this is that the Program Files folder cannot be modified without "escalated" (administrative-level) permissions. WoW (by default) does not run escalated, so it does not have access to the Program Files folder. You may, however, be aware that WoW needs to write files there! It stores all of your configurations (in the WTF folder), it stores the cache data (in the Cache folder), and it even puts some default addon keys there.

So why doesn't WoW just crash when it can't write there? Well, Microsoft was intelligent. They foresaw that older programs consistently used this folder to store configuration information, even though it has been strongly discouraged by Microsoft for years in favor of the %APPDATA% folder. So they invented this idea of "virtualization." If a program does not indicate to Vista that it is "UAC Aware" (via a "manifest"), Vista assumes that the program is not aware of the permissions restrictions. So, instead of denying access, it "fakes" write access. Anything the program tries to write or create in the Program Files folder then gets actually written to the "Virtual Store" which is located at C:\Users\[username]\AppData\Local\VirtualStore. If you go there and don't properly have WoW set up, you may even see that there is a Program Files\World of Warcraft folder there with various files that have been virtualized away.

Making It Work
So, how do we stop this? There are actually several solutions, though some are preferred over others due to simplicity.
  • Option 1: Install in an Unprotected Location

    This option is best for people whom haven't yet installed or aren't worried about installing again and losing their settings. The idea behind it is quite simple: If you don't install in the Program Files folder, WoW won't be restricted by Vista. Many people recommend creating a C:\Games folder or something similar. Thus, your program would be installed in

    C:\Games\World of Warcraft

    So long as you don't use the "Windows" or "Program Files" folders, you should be OK.

    You can also use another drive for World of Warcraft. If you do so, it is perfectly acceptable to create a "Program Files" folder on that drive and install it there, like the screenshot below. In such a case, Vista realizes that this is not the "real" Program Files directory, so it is not protected by UAC.



    (Note that the folder is called "Program Files (x86)" because this is a 64-bit copy of Vista and a 32-bit program.)


  • Option 2: Provide Administrative Permissions

    This isn't always the easiest option because it requires a bit of moving, especially if you've already played WoW for a while and your settings are currently virtualized away. It does, however, avoid the need for a new installation. Giving WoW administrative permissions provides a means for WoW to write directly to the Program Files folder, so it doesn't get virtualized anymore.

    If you right click on "WoW.exe" in your Program Files directory, you will find an option "Properties." Clicking on this will bring up the Program Properties window. Click on the "Compatibility" tab. You will see the following pane:



    Check the box next to "Run this program as an administrator."

    Next, do the same for "Launcher.exe" in the same folder. Open the "Compatibility" tab and check "Run this program as an administrator."

    If this is done correctly, the next time you run WoW, you will get a UAC escalation popup, which looks like this:



    This popup asks for escalated permissions for the program shown. If it does not say "Blizzard Entertainment" and "Blizzard Launcher" or "WoW.exe," double-check that it's the right program before giving permissions.

    However you have another problem -- all your old settings! Now that WoW has administrative permissions, it will no longer consult the Virtual Store for settings, meaning all your settings have been lost! Fortunately, we can move them back to where they need to be.

    Go to "C:\Users\[Username]\AppData\Local\VirtualStore\Program Files\World of Warcraft" and you will find all of your WTF folders, etc. Copy your WTF folder into "C:\Program Files\World of Warcraft" and your settings will be restored. If prompted, the files in your VirtualStore should overwrite the ones that may already exist in your Program Files directory. Keep in mind that if you are using a 64-bit Vista, "Program Files" will be named "Program Files (x86)."

  • Option 3: Disable UAC
    This is a last-resort option and probably should not be used, but I place it here for informational purposes anyway. UAC is a beneficial feature which protects you from malicious code being executed at an administrative level where it can do serious harm. If not given escalated permissions, most malicious code may cause a little harm, but nothing too severe (perhaps an annoyance more than anything).

    However, it is possible to turn it off if you really want to, and that will stop all of these Virtual Store and permissions problems. You will, however, be turning off one of the most crucial security features that Vista has to offer, so be absolutely sure you want to do this before you do it.

    Click on the "Start" button and then choose "Control Panel" on the right side. Find the "User Accounts" icon and double click it. This will open up the "User Accounts" control panel. At the bottom, you will see an option "Turn User Account Control On or Off." Click on this option. You will see a UAC box pop up; validate that it is from Microsoft and then accept it. (Naturally you must give administrative permissions to disable this!). Uncheck the checkbox in the window that appears, and then select OK. UAC is now disabled. You may wish to follow the instructions in option 2 above, now, to copy over your WTF folder to your WoW folder, as these settings will no longer be virtualized away.

Conclusion
UAC is a useful feature provided by Microsoft that enforces policies that have been encouraged a long time ago. Unfortunately, programs are still not up with the times, and thus these changes sometimes cause a few glitches along the way. UAC still can provide the security you desire and your programs can get along with it just fine, it just may take a little extra attention. With this attention you can be sure to have a secure user account while enjoying the world we all love.
__________________
たしかにひとつのじだいがおわるのお
ぼくはこのめでみたよ
だけどつぎがじぶんおばんだってことわ
しりたくなかったんだ
It's my turn next.

Shakespeare liked regexes too!
/(bb|[^b]{2})/

Last edited by Shirik : 01-24-08 at 10:35 AM.
  Reply With Quote