Столкнулся с проблемой и потратил немало времени на решение. В логе ошибок одной программы стало появляться сообщение "Ошибка: Класс не зарегистрирован" и программа перестала работать. Паралельно в системном логе нашлось несколько ошибок файловой системы, которые вылечились chkdsk. То что это повредилась какая-то библиотека windows было понятно сразу, но вот как узнать какая именно получилось с помощью этой статьи и программки http://technet.microsoft.com/ru-ru/sysinternals/bb896645. Этой библиотекой оказалась msadrh15.dll из системной компоненты ms ado (или mdac - я не знаю есть ли разница).
Далее проблема оказалась в том, что в windows 7 эта библиотека защищена нативным средством защиты библиотек и просто так заменить файлик на хороший и затем выполнить в терминале
regsvr32 msadrh15.dll
не получится. Хотя на Windows XP - это было бы самое то.
Создатели windows 7 предлагают средство восстановления системных библиотек. В моем случае надо было бы набрать в терминале
sfc /VERIFYFILE="C:\Program Files\Common Files\System\ado\msadrh15.dll"
я так делал, но почему-то восстановить файл не получилось. Я получил сообщение
Защита ресурсов Windows обнаружила поврежденные файлы, но не удалось устранить некоторые из них. Сведения о включенных см.Журнал % WinDir %\Logs\CBS\CBS.log.
Далее пришлось воспользоваться этой статьей. Вот как это выглядело в моем случае:
- становлюсь владельцем файла:
takeown /f "C:\Program Files\Common Files\System\ado\msadrh15.dll"
- даю группе Администраторы полные права на этот файл (не понятно только зачем, если я уже и так владелец):
icacls Администраторы /grant "C:\Program Files\Common Files\System\ado\msadrh15.dll":F
Далее можно скопировать хороший файл с рабочей системы и затем выполнить наконец-то
regsvr32 msadrh15.dll
Система сообщила, что библиотека зарегистрирована успешно. Приложение заработало.
А если бы на компьютере создавались резервные копии системы - то всего этого можно было и не делать ;-)
Далее проблема оказалась в том, что в windows 7 эта библиотека защищена нативным средством защиты библиотек и просто так заменить файлик на хороший и затем выполнить в терминале
regsvr32 msadrh15.dll
не получится. Хотя на Windows XP - это было бы самое то.
Создатели windows 7 предлагают средство восстановления системных библиотек. В моем случае надо было бы набрать в терминале
sfc /VERIFYFILE="C:\Program Files\Common Files\System\ado\msadrh15.dll"
я так делал, но почему-то восстановить файл не получилось. Я получил сообщение
Защита ресурсов Windows обнаружила поврежденные файлы, но не удалось устранить некоторые из них. Сведения о включенных см.Журнал % WinDir %\Logs\CBS\CBS.log.
Далее пришлось воспользоваться этой статьей. Вот как это выглядело в моем случае:
- становлюсь владельцем файла:
takeown /f "C:\Program Files\Common Files\System\ado\msadrh15.dll"
- даю группе Администраторы полные права на этот файл (не понятно только зачем, если я уже и так владелец):
icacls Администраторы /grant "C:\Program Files\Common Files\System\ado\msadrh15.dll":F
Далее можно скопировать хороший файл с рабочей системы и затем выполнить наконец-то
regsvr32 msadrh15.dll
Система сообщила, что библиотека зарегистрирована успешно. Приложение заработало.
А если бы на компьютере создавались резервные копии системы - то всего этого можно было и не делать ;-)