A windows 7 laptop was dropped off in the office with an unusual problem. Any applications which were downloaded onto the PC would fail to install if they relied on Windows Installer, such as the Australian Tax Offices (ATO) E-tax application . The error tended to indicate that the installation was corrupt. However I knew this wasn’t the case as the very same msi package would install without issue on another PC. In fact through the process of elimination I could get Windows Installer to install the msi package if the run from the command prompt using msiexec.exe.
Research told me the problem is either a corrupt msi package, which I had ruled out, or a corrupt installation of Windows Installer. To check the Windows Installer was installed correctly I ran the system file checker from the command prompt: “sfc /scannow”. After several minutes the scan had finished and no problems were found. So that ruled out corruption of Windows Installer. During the research I saw several mentions of making sure the full path name (location) of the msi package did not exceed 260 characters in length. I doubted this was the case but decided to check. As suspected the path length was well within the 260 character limit, however I did notice something out of the ordinary. The user name had a backtick ie:` in it’s name. So the path was something like c:\users\matt`s\Downloads\etax2012_1.msi. Could it be that Windows Installer doesn’t like the backtick in the file path?
To test I saved the msi package to another location outside of the users profile like the public documents folder. I then double clicked the E-tax msi package and bingo it installed. So the backtick was causing the problem. To resolve I created a new administrator user, logged on as the administrator and renamed the old user from “matt`s” to “matt”. I then renamed the folder c:\users\matt`s to c:\users\matt. The last step was to update the registry so that the user matt now uses the c:\users\matt folder. The registry path to find is HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<User SID>\. If you don’t know the user SID just check them all by looking at the value of ProfileImagePath. You’re looking for the old path ie. c:\users\matt`s. Change this path to the new correct value c:\users\matt. Log off and log on as the fixed user account. Windows Installer will now happily install applications.