Article ID: 969865 - Last Review: April 3, 2009 - Revision: 1.0

When you run .NET Framework 3.5 SP1 setup with a user account whose name begins with a # character, the installation will fail.

System TipThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.
Expand all | Collapse all
Source: Microsoft Support

RAPID PUBLISHING

RAPID PUBLISHING ARTICLES PROVIDE INFORMATION DIRECTLY FROM WITHIN THE MICROSOFT SUPPORT ORGANIZATION. THE INFORMATION CONTAINED HEREIN IS CREATED IN RESPONSE TO EMERGING OR UNIQUE TOPICS, OR IS INTENDED SUPPLEMENT OTHER KNOWLEDGE BASE INFORMATION.

Action

Run the .NET Framework 3.5 SP1 setup with a user account whose name begins with a '#' character.

Result

When you run .NET Framework 3.5 SP1 setup with a user account whose name begins with a '#' character, the installation will fail.

In this scenario, if you open the verbose MSI log file for the .NET Framework 3.5 SP1 (%temp%\dd_net_framework35*.txt from this list of log files) and search for the string return value 3, you will see an error like the following:

MSI (s) (1A:BC) [11:11:11:111]: Product: Microsoft .NET Framework 3.5 SP1 -- Error 1406.Could not write value InstalledBy to key \SOFTWARE\Microsoft\Updates\Microsoft .NET Framework 3.5 SP1\KB953595. System error . Verify that you have sufficient access to that key, or contact your support personnel.

The registry key that is causing this failure is new in the .NET Framework 3.5 SP1, so this error will not occur when installing the .NET Framework 3.5 or earlier.

Cause

The entry for the InstalledBy value in the Registry table of the .NET Framework 3.5 SP1 MSI is set to the value [LogonUser]. This will set the registry value to the built-in Windows Installer property named LogonUser (See MSDN http://msdn.microsoft.com/hi-in/library/aa369780(en-us).aspx for more information).

If the LogonUser property begins with a '#' character, Windows Installer will attempt to write the InstalledBy registry value as a REG_DWORD value (because the '#' character is a special prefix when used in a registry value as described in this MSDN topic at http://msdn.microsoft.com/hi-in/library/aa371168(en-us).aspx (http://msdn.microsoft.com/hi-in/library/aa371168(en-us).aspx) . However if the LogonUser value is not actually a DWORD the MSI will fail with a 1406 error.

Resolution

Run .NET Framework 3.5 SP1 setup with a different user account that does not start with a '#' character

You can either log off and log on with another user account or use the RunAs command to run .NET Framework 3.5 SP1 setup with a different user account that does not start with a '#' character to avoid this error.


More Information

Repro Steps
=============================
Log on to a system with a user account whose name begins with a '#' character
Double click on the .NET Framework 3.5 SP1 setup and start the installation.

DISCLAIMER

MICROSOFT AND/OR ITS SUPPLIERS MAKE NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY, RELIABILITY OR ACCURACY OF THE INFORMATION CONTAINED IN THE DOCUMENTS AND RELATED GRAPHICS PUBLISHED ON THIS WEBSITE (THE “MATERIALS”) FOR ANY PURPOSE. THE MATERIALS MAY INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS AND MAY BE REVISED AT ANY TIME WITHOUT NOTICE.

TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND/OR ITS SUPPLIERS DISCLAIM AND EXCLUDE ALL REPRESENTATIONS, WARRANTIES, AND CONDITIONS WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO REPRESENTATIONS, WARRANTIES, OR CONDITIONS OF TITLE, NON INFRINGEMENT, SATISFACTORY CONDITION OR QUALITY, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE MATERIALS.

APPLIES TO
  • Microsoft .NET Framework 3.0 Service Pack 1
Keywords: 
kbrapidpub kbnomt KB969865