DllRegisterServer échoue avec 0x80070005 même sur cmd ouvert en tant qu'administrateur

12

Ce code d'erreur est censé signifier «Accès refusé», et la solution donnée partout sur le net (par exemple, /programming/3808954/dllunregisterserver-failed-with-error-code-0x80070005 ) est d'ouvrir un cmd avec des droits d'administrateur. Cependant, dans mon cas, la même erreur se produit même sur un cmd ouvert avec des droits d'administrateur (testé avec les réponses sur /programming/7985755/how-to-detect-if-cmd-is-running- as-administrator-has-elevated-privileges ).

Tous les deux

regsvr32.exe "C:\Program Files (x86)\GitExtensions\GitExtensionsShellEx64.dll"

et

 C:\windows\SysWOW64\regsvr32.exe  "C:\Program Files (x86)\GitExtensions\GitExtensionsShellEx64.dll"

échoue avec le même message d'erreur, que le module donné a été chargé mais l'appel à DllRegisterServer a échoué avec le code 0x80070005.

J'ai essayé de surveiller les accès au registre comme indiqué dans http://www.cryer.co.uk/brian/windows/troubleshooting/nt4_dllregisterserver_in_com_failed_0x80070005.htm , mais il n'y a aucun résultat ACCESS DENIEDou aucun ACCDENIEDrésultat dans la liste résultante.

Edit: j'ai même essayé

runas /user:Administrator "regsvr32.exe \"C:\Program Files (x86)\GitExtensions\GitExtensionsShellEx64.dll\""

à partir d'une cmd qui était elle-même exécutée en tant qu'administrateur mais qui entraîne également la même erreur!

Sundar - Rétablir Monica
la source
Si vous déplacez le fichier vers un dossier non protégé, cela fonctionne-t-il?
Ramhound
@Ramhound Malheureusement oui, la même chose se produit partout où je mets les fichiers dll.
sundar
utilisez ProcessMonitor au lieu de regMon pour surveiller l'activité.
magicandre1981
@ magicandre1981 Oui, j'ai lu que regmon avait été fusionné en procmon, c'est donc ce que j'ai utilisé. J'ai fait un filtre pour observer uniquement regsvr32.exe pour filtrer le (tonnes de) bruit, et l'ai également fait afficher uniquement les modifications du registre. Il y a eu de nombreux résultats SUCCESS, REPARSE et NAME NOT FOUND, mais aucun accès refusé.
sundar

Réponses:

11

Exécutez la regsvr32commande à partir d'une invite de commandes élevée.

Sélectionnez Start > All Programs > Accessories', then right-clickInvite de commandes and selectExécuter en tant qu'administrateur` dans le menu contextuel. Enfin, tapez la commande.

Apparao
la source
4
Et si l'erreur persiste ...?
bigp
@bigp peut-être alors les entrées dans le registre sont déjà supprimées ou en quelque sorte défectueuses
serup
0

L'erreur 0x80070005signifie Autorisation refusée d' accéder aux dossiers ou fichiers (généralement les fichiers de cache).

Accédez au /Users/Public/Application Data/Package Cachedossier et assurez-vous que les dossiers y disposent des autorisations appropriées, sinon supprimez-les et réexécutez.

Idem lors de l'utilisation wine, par exemple

chmod -v 755 ~/".wine/drive_c/users/Public/Application Data/Package Cache"/*

Sinon, consultez le fichier journal pour plus de détails.

Kenorb
la source