Richard Parmiter

Virtualisation blog and Knowledge Base

  • You are here: 
  • Home
  • What decides the installation directory on Windows 2003 x64

What decides the installation directory on Windows 2003 x64

Posted on September 4th, 2008

When an application is installed on Windows 2003 x64 Edition, the installation is made to different directories and registry keys depending on whether it is a 32 or 64 bit application.

Directory location

  • c:\program files – (64 bit applications)
  • c:\program files (x86) – (32bit applications)

Registry location

  • HKLM\software\ – (64 bit applications)
  • HKLM\Software\Wow6432Node\ – (32bit applications)

So, what decides where the installation goes?

I have discovered the following from various digging about online.

Windows 2003 x64 interrogates the .exe used to provide the installation. If that executable is a 32bit encoded file then Windows detects this and sets the re-directors so that the program files (x86) location appears as the install location and the Wow6432Node is used in the registry.

However, it is possible to change the installation location, normally on one of the installation wizard screens or via a customised MST file. This can be changed to anything and the application will install to this location and work. The registry location is fixed and cannot be changed.

Potential problems with installing to ‘Program files (x86)’

If one app silo in a Citrix Farm includes x86 and x64 servers this will be a problem for the following reason.

In a Citrix environment it is best to keep the installation locations the same across the application silo. A published application will have a hard coded ‘location path’ set to ‘d:\program files’ for example. If the x64 server has the application installed to a different location the published application and possible associated desktop/startmenu shortcut (for published desktops) will not work.


  • Keep each application silo on one hardware / OS level only, which may be practical in the short term, but going forward will severely limit the flexibility of the farm.
  • Publish a separate set of applications for 64 bit servers. This will prove very messy as there will be a duplicate published application for each x86 app (app1 and app1-x64 for example). This will be very cumbersome to manage and will be very confusing for the users.
  • Published desktop shortcut locations. This may be the easiest to deal with as on the x64 servers a separate set of startmenu/desktop icons could be copied.

Why not just install to the ‘Program files’ location

Another solution would be to force the installation to the ‘\program files’ location instead so that it matches the x86 installations.

This is possible by either

  • Changing the installation location in the install wizard
  • Installing the application using a customised MST transform file.

I can see no technical reason why this cannot be done. In fact I have this working already with no side effects.

The only Issues I can see with this are:

  • Not as easy to see at a glance if the application is a 32bit or x64 app.
  • Probably goes against some Microsoft best practice (although I can’t find anything to this effect)


These links provide some background reading on this subject:

  • Digg
  • StumbleUpon
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • Add to favorites
  • FriendFeed
  • Google Buzz
  • LinkedIn
  • Live
  • MySpace
  • Reddit
  • RSS

Tags: , , , , ,
Filed under Windows 2003 |

Leave a Reply