Исправление разрешений реестра для экспресс-установки SQL Server 2008 - PullRequest
1 голос
/ 13 декабря 2010

У меня есть распределенное приложение для Windows (написанное на C #), которое в настоящее время использует MSDE. Было принято решение обновить клиентскую базу данных до SQL Server 2008 Express, поскольку мы должны иметь возможность поддерживать Windows 7 (и все еще поддерживать XP) в следующем году.

В настоящее время я использую командный файл для запуска программы установки (а также с помощью файла Configuration.ini), но недавно во время установки обнаружена следующая ошибка.

"Не удалось исправить раздел реестра HKEY_LOCAL_MACHINE \ Software \ Microsoft \ MSSQLServer \ MSSQLServer \ SuperSocketNetLib \ Lpc. System.UnauthorizedAccessException: попытка выполнить несанкционированная операция. в Microsoft.SqlServer.Configuration.FixSqlRegistryKey.Program.OpenKey (String keyName) в Microsoft.SqlServer.Configuration.FixSqlRegistryKey.Program.FixRegistryKey (String keyName) в Microsoft.SqlServer.Configuration.FixSqlRegistryKey.Program.FixRegistryKeyAndSubKeys (RegistryKey ключ) "

Я понимаю проблему и как ее исправить вручную.

Мне нужно, чтобы приложение заранее изменило этот раздел реестра и добавило разрешения для группы администраторов или задало ключ для наследования разрешений от родителя. Я также открыт для других решений этой проблемы установки SQL 2008 Express.

Я изучал, как изменить разрешения разделов реестра, но столкнулся с проблемами, пытаясь заставить его работать правильно (и понять все классы и объекты, связанные с настройкой разрешений).

Может ли кто-нибудь предоставить правильный способ добавления группы администраторов (любого компьютера) с полными правами доступа или как установить права доступа к ключу, чтобы он наследовал от родительского?

Дополнительный вопрос, всегда ли они будут группой администраторов на каждом компьютере с Windows XP?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 15 декабря 2010

Таким образом, решение имело файл temp.txt со следующим в файле:

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

Затем запустите это в командной строке cmd (поместите ваш текстовый файл в C: \ temp или что-то в этом роде):

C:\temp>regini temp.txt

Я действительно надеялся, что у меня будет простой способ изменить разрешение наследования, но это решение подойдет для моих целей, и я просто включу пакетный файл, который нужно запустить до установки SQL Server Express 2008.

0 голосов
/ 14 декабря 2010

Вы можете попробовать использовать subinacl.exe, чтобы установить разрешения для разделов реестра: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e8ba3e56-d8fe-4a91-93cf-ed6985e3927b&displaylang=en

Группа администраторов существует во всех версиях XP.

...