How to bypass the Windows 8 Upgrade Assistant memory check

The Windows 8 Upgrade Assistant executes a system requirements compatibility and physical memory requirement check before the purchase of a Windows 8 Professional Upgrade. There are some conditions where the upgrade assistant does not correctly detect compatible hardware. Incorrect memory detection is one common issue:

"You need to install at least 1GB of RAM before you can install and run Windows 8 Professional. Contact the PC manufacturer to see if you can install more RAM"

Here is a workaround I developed to set the amount of detected memory manually. If the assistant is not detecting the correct memory a workaround is required to allow the upgrade assistant to continue with other hardware checks and move on to the purchase stage.

1. Run the Windows 8 Upgrade Assistant and note any failures

Then close the upgrade assistant before continuing with the next step.

2. Find this file:

C:/Documents and Settings/[User Name]/Local Settings/Application Data/Microsoft/WebSetup/Panther/WICA_System_[Machine_Name].xml

Note: [User Name] is your Windows user name. [Machine Name] is the name of your machine.

3. Open WICA_System_[Machine_Name].xml in notepad

Look for ramKB="[detected ram]"

4. Manually correct the level of RAM detected:

For example: ramKB="2097152"

The example above will tell the upgrade assistant you have 2.0 GB  memory installed.

5. Save the file
6. Right click the file and choose "Properties". Tick the "Read Only" box. Choose OK
7. Run The Windows 8 Upgrade Assistant again
The upgrade assistant will now pass the memory check and continue to the next stage of compatibility checking. If there are no more blocking or warning issues the upgrade assistant will advise you and allow you to purchase the Windows 8 Professional upgrade. You may enter your payment details and continue.

Additional nerdy technical information:

More technical details about setup failures and intermediate files can be found in the diagnostic logs in the same directory: setupact.log and setuperr.log. There may be a simpler method available setting memory as a soft requirement. I will open a comments section on this page soon in case anyone examining that or related issues would like to comment. Similar workarounds are possible for other issues.