2010-12-13 1 views
1

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

В настоящее время я использую командный файл для запуска установщика (и также с помощью 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?

Спасибо!

ответ

0

Так раствор, имеющий 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

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

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

+0

Спасибо за ссылку. Тем не менее, мне нужно иметь возможность запускать скрипт на клиентской машине, которая не будет находиться в данной сети. И мы определенно предпочли бы не устанавливать какие-либо дополнительные инструменты/программное обеспечение. Спасибо, в любом случае. – tc44