2010-12-13 53 views
1

我有一个当前使用MSDE的分布式Windows应用程序(用C#编写)。我们决定将客户端数据库升级到SQL Server 2008 Express,因为我们需要能够在明年支持Windows 7(并且仍然支持XP)。注册表权限修复SQL Server 2008 Express安装

目前,我正在使用批处理文件来运行安装程序(并使用Configuration.ini),但最近在安装过程中遇到以下错误。

“无法修复注册表项 HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的MSSQLServer \的MSSQLServer \ SuperSocketNetLib \ LPC System.UnauthorizedAccessException的:。尝试执行 未经授权的操作在 Microsoft.SqlServer.Configuration.FixSqlRegistryKey。 Program.OpenKey(字符串 注册表项目)在 Microsoft.SqlServer.Configuration.FixSqlRegistryKey.Program.FixRegistryKey(字符串 注册表项目)在 Microsoft.SqlServer.Configuration.FixSqlRegistryKey.Program.FixRegistryKeyAndSubKeys(的RegistryKey 键)”

我了解该问题以及如何手动修复。

我需要应用程序提前修改此注册表项,并为管理员组添加权限或将密钥设置为从父项继承权限。我也对此SQL 2008 Express安装问题的其他解决方案开放。

我一直在研究如何修改注册表项的权限,但我一直在遇到问题,试图使其正常工作(并理解与设置权限相关的所有类和对象)。

有人可以提供正确的方式来添加具有完全控制权限的管理员组(任何计算机),或者如何设置密钥的权限以便它从父级继承?

旁边的问题,他们将永远是每个Windows XP机器上的管理员组?

谢谢!

回答

0

所以溶液具有与该文件在以下一个TEMP.TXT文件:

\Registry\Machine\Software\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib\Lpc [1 5 8] 

然后在命令提示符运行这个(把你的txt文件在C:\ TEMP或东西):

C:\temp>regini temp.txt 

我真的很希望能有什么简单的方法只需更改继承的权限,但这种方法会为我的目的工作,我将只包括要运行之前安装SQL Server Express 2008

一个批处理文件