Сбой DllRegisterServer с 0x80070005 даже на cmd, открытом как администратор

29501
sundar

Этот код ошибки должен означать «Отказано в доступе», и решение, предоставленное везде в сети (например, https://stackoverflow.com/questions/3808954/dllunregisterserver-failed-with-error-code-0x80070005 ), должно быть открыто cmd с правами администратора. Однако в моем случае такая же ошибка возникает даже на cmd, открытом с правами администратора (проверено с ответами на https://stackoverflow.com/questions/7985755/how-to-detect-if-cmd-is-running- как администратор имеет повышенные привилегии ).

И то и другое

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

а также

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

завершается с тем же сообщением об ошибке, что данный модуль был загружен, но не удалось вызвать DllRegisterServer с кодом 0x80070005.

Я пытался контролировать доступ к реестру, как указано в http://www.cryer.co.uk/brian/windows/troublesho/nt4_dllregisterserver_in_com_failed_0x80070005.htm, но в результирующем списке нет ACCESS DENIEDни одного ACCDENIEDрезультата.

Редактировать: я сейчас даже попробовал

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

из cmd, который сам был запущен от имени администратора, но это тоже приводит к той же ошибке!

10
Если вы переместите файл в незащищенную папку, это работает? Ramhound 10 лет назад 0
@Ramhound К сожалению, да, то же самое происходит везде, где я помещаю файлы DLL. sundar 10 лет назад 0
используйте ProcessMonitor вместо regMon для мониторинга активности. magicandre1981 10 лет назад 0
@ magicandre1981 Да, я читал, что regmon был объединен с procmon, поэтому я использовал это. Я сделал фильтр для наблюдения только regsvr32.exe, чтобы отфильтровать (тонны) шума, а также заставил его показывать только изменения в реестре. Было много УСПЕХА, РЕПАРСА и ИМЕНИ НЕ НАЙДЕННЫХ, но ДОСТУП ОТКАЗАНО. sundar 10 лет назад 0

2 ответа на вопрос

10
Apparao

Запустите regsvr32команду из командной строки с повышенными правами.

Выберите « Start > All Programs > Accessories', then right-clickКомандная строка and selectЗапуск от имени администратора» в контекстном меню. Наконец, введите команду.

А если ошибка не исчезнет ...? bigp 7 лет назад 4
@bigp возможно тогда записи в реестре уже удалены или как-то неисправны serup 5 лет назад 0
0
kenorb

Ошибка 0x80070005означает « Отказано в доступе» к папкам или файлам (обычно кеш-файлы).

Перейдите в /Users/Public/Application Data/Package Cacheпапку и убедитесь, что для папок там есть нужные разрешения, в противном случае удалите их и перезапустите.

То же самое при использовании wine, например

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

В противном случае проверьте файл журнала для деталей.