2010-12-13 113 views
1

J'ai une application Windows distribuée (écrite en C#) qui utilise actuellement MSDE. La décision a été prise de mettre à jour la base de données client vers SQL Server 2008 Express, car nous devons être en mesure de prendre en charge Windows 7 (et toujours prendre en charge XP) l'année prochaine.Correctif d'autorisations de registre pour l'installation de SQL Server 2008 Express

Actuellement, j'utilise un fichier batch pour exécuter le programme d'installation (et utiliser un fichier Configuration.ini), mais j'ai récemment rencontré l'erreur suivante lors de l'installation.

« Impossible de fixer la clé de Registre HKEY_LOCAL_MACHINE \ Software \ Microsoft \ MSSQLServer \ MSSQLServer \ SuperSocketNetLib \ Lpc System.UnauthorizedAccessException:.. Tenté d'effectuer une opération non autorisée à Microsoft.SqlServer.Configuration.FixSqlRegistryKey. Program.OpenKey (String keyName) à Microsoft.SqlServer.Configuration.FixSqlRegistryKey.Program.FixRegistryKey (String keyName) à Microsoft.SqlServer.Configuration.FixSqlRegistryKey.Program.FixRegistryKeyAndSubKeys (clé RegistryKey ) »

Je comprends le problème et comment y remédier manuellement.

J'ai besoin de l'application pour modifier cette clé de registre à l'avance et ajouter des autorisations pour le groupe Administrateur ou définir la clé pour hériter des autorisations du parent. Je suis également ouvert à d'autres solutions à ce problème d'installation SQL 2008 Express. J'ai cherché comment modifier les permissions des clés de registre mais j'ai rencontré des problèmes pour le faire fonctionner correctement (et pour comprendre toutes les classes et les objets associés à la définition des permissions).

Est-ce que quelqu'un peut fournir le moyen approprié d'ajouter le groupe Administrateur (de n'importe quelle machine) avec des autorisations de contrôle complètes, ou comment définir les permissions de la clé pour qu'elle hérite du parent?

Question subsidiaire, sera-t-il toujours un groupe administrateur sur chaque machine Windows XP?

Merci!

Répondre

0

Donc, la solution a été d'avoir un fichier temp.txt avec ce qui suit dans le fichier:

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

Lancez ensuite ceci dans l'invite cmd (mettez votre fichier txt dans C: \ temp ou quelque chose):

C:\temp>regini temp.txt 

j'espérais vraiment avoir un moyen facile de changer simplement l'autorisation de l'héritage, mais cette solution fonctionne pour mes besoins et je vais simplement inclure un fichier de commandes à exécuter avant d'installer SQL Server express 2008.

0

Vous pouvez essayer d'utiliser subinacl.exe pour définir des autorisations pour les clés de Registre: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e8ba3e56-d8fe-4a91-93cf-ed6985e3927b&displaylang=en

groupe Administrateurs existe sur toutes les versions XP.

+0

Merci pour le lien. Cependant, je dois pouvoir exécuter un script sur un ordinateur client qui ne sera pas sur un réseau donné. Et nous préférerions certainement ne pas installer d'outils/logiciels supplémentaires. Merci quand même. – tc44