On a Windows XP (SP3 DEU) box, which has Visual Studio 2005, Visual Studio 2008, all .net versions, and SQL Server Express 2005 installed, SQL Server Express 2008 R2 installation failed with
AclPermissionsFacet
Checks if the SQL Server registry keys are consistent.
Failed
The SQL Server registry keys from a prior installation cannot be modified. To continue, see SQL Server Setup documentation about how to fix registry keys.
Detail_GlobalRules.txt contains
2010-10-11 17:13:09 Slp: ------------------------------------------------------------
2010-10-11 17:13:11 Slp: Could not fix registry key HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\90\Tools\ShellSEM\CLSID\{3B476D30-A401-11D2-AAD4-00C04F990171}.
2010-10-11 17:13:11 Slp: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
2010-10-11 17:13:11 Slp: bei Microsoft.SqlServer.Configuration.FixSqlRegistryKey.Program.ContainsInheritedAce(Byte[] securityDescriptor)
2010-10-11 17:13:11 Slp: bei Microsoft.SqlServer.Configuration.FixSqlRegistryKey.Program.FixRegistryKey(String keyName)
2010-10-11 17:13:11 Slp: bei Microsoft.SqlServer.Configuration.FixSqlRegistryKey.Program.FixRegistryKeyAndSubKeys(RegistryKey key)
2010-10-11 17:13:11 Slp: Could not fix registry key HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\90\Tools\ShellSEM\CLSID\{3B476D3A-A401-11D2-AAD4-00C04F990171}.
2010-10-11 17:13:11 Slp: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
2010-10-11 17:13:11 Slp: bei Microsoft.SqlServer.Configuration.FixSqlRegistryKey.Program.ContainsInheritedAce(Byte[] securityDescriptor)
2010-10-11 17:13:11 Slp: bei Microsoft.SqlServer.Configuration.FixSqlRegistryKey.Program.FixRegistryKey(String keyName)
2010-10-11 17:13:11 Slp: bei Microsoft.SqlServer.Configuration.FixSqlRegistryKey.Program.FixRegistryKeyAndSubKeys(RegistryKey key)
2010-10-11 17:13:12 Slp: ------------------------------------------------------------
2010-10-11 17:13:12 Slp: Rule 'AclPermissionsFacet' detection result: AreSqlAclPermissionsCanonical= False
The two registry keys had broken ACLs (in regedit > permissions, they were shown as "Everyone, Full Access" but on Advanced view, no ACEs showed up.
I removed the "Everyone" setting and re-enabled inheritance from HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\90\Tools\ShellSEM.
This resolved this problem.