Исправление ошибки Windows Installer 0x80040154
В этой статье я расскажу об исправлении одной очень распространенной ошибки Windows Installer. Обыскавши Интернет как русскоязычный, так и англоязычный, включая форумы и ньюсгруппы Microsoft, я понял что ошибка довольно распространенная, однако исправить ее, на самом деле никому не удавалось.
Суть проблемы
Как то одним жарким летним вечером я решил установить на свой компьютер ActeiveState ActivePerl. Скачал инсталлятор, который был в .msi файле и запустил его. Каково же было мое удивление, когда вместо привычного инсталлятора я увидел вот это:
Как вскоре оказалось, подобная ошибка выпадала при запуске на моем компьютере любого .msi файла.
Недолго думая, я полез в интернет, ввел в поиск появившееся сообщение, и, «О ужас!» — я увидел сотни постов людей с этой проблемой! В русскоязычном и англоязычном сегменте Интернета у множества людей была аналогичная проблема, и никто ее не смог решить по существу.
- Переустановить Windows Installer — на моей Windows 7 x64 и так стоит Windows Installer 5.0, который нельзя отдельно скачать и переустановить
- Перерегистрировать msiexec, что также мне не помогло.
- В конце все советы сводились к одному — переустановить Windows.
Решение проблемы
Для начала я включил Log-файл установщика Windows. Как включить лог Windows Installer вы можете почитать здесь, или поискать в любом поисковике по ключевому слову "voicewarmup".
Лог-файлы появляются во временной папке пользователя, которая обычно находится по пути C:\Users\имя_профиля\AppData\Local\Temp. Открыв лог, я увидел следующую ошибку:
MSI (c) (B8:84) [22:08:06:894]: Failed to connect to server. Error: 0x80040154
Поискав по коду ошибки в Интернете, и не нашедши никаких способов решения проблемы, я решил подумать логически.
Что означает ошибка 0x80040154? Поискав в поисковике, и воспользовавшись утилитой Error Lookup, я определил, что ошибка означает «Класс не зарегистрирован».
Обычно такая ошибка появляется, когда вы запрашиваете у системы создать COM-объект, который не был должным образом зарегистрирован в реестре. Но как определить какой именно объект не зарегистрирован?
Для начала я воспользовался старым добрым отладчиком WinDbg, который входит в пакет Debugging Tools For Windows. Мне понадобилась именно 64-разрядная версия данного отладчика.
Перед началом отладки необходимо загрузить отладочные символы для распознавания имен системных функций и переменных. Эти символы являются довольно полезной вещью не только для поиска ошибок, но также и для исследования работы Windows в целом.
Я предпочитаю указывать отладчику путь для поиска символов через переменную среды _NT_SYMBOL_PATH, которая должна быть задана как: C:\Symbols;srv*C:\Symbols*https://msdl. microsoft. com/download/symbols. В данном случае папка C:\Symbols — это хранилище загруженных символов на жестком диске, чтобы отладчик каждый раз не лез в интернет за ними.
Загрузил я в отладчик файл c:\windows\system32\msiexec. exe и задал для него параметры командной строки так, чтобы он открыл .msi файл. В моем случае параметром командной строки было: /i «C:\Users\MAV\Desktop\ActivePerl-5.12.4.1205-MSWin32-x64-294981.msi» однако можно задавать путь к любому другому .msi файлу.
Сам по себе отладчик, конечно не решит проблему, нужно ее локализовать. Поразмыслив, какие функции могут создавать COM-объекты, я остановился на CoCreateInstance, CoCreateInstanceEx и CoGetClassObject
Для установки точек прерывания на эти функции вводим в командной строке отладчика:
bp ole32!CoCreateInstance
bp ole32!CoCreateInstanceEx
bp ole32!CoGetClassObject
Если точки останова у вас не ставятся, значит вы неправильно настроили символы.
После запуска приложения (F5), срабатывает точка останова на ole32!CoCreateInstance. Если точка останова не срабатывает, а выпадает окно с параметрами Wndows Installer, то вы неправильно указали параметры командной строки для запуска.
Давайте теперь посмотрим, из какого же места кода вызывается создание нашего объекта, для этого мы можем нажать Debug->Step Out (Shift+F11). Мне пришлось нажать указанную комбинацию дважды, для того чтобы выйти в исходную вызывающую функцию.
Исходная вызывающая функция называется msi! CreateMsiServerProxy и, очевидно, находится в модуле msi. dll.
Обратим внимание также на регистр rax, который равен нашему коду ошибки 80040154. Для того чтобы узнать содержимое регистра rax, достаточно открыть окно Registers, или ввести в командной строке r rax .
Запомнив имя функции, а также примерный вид искомого кода, я открыл дизассемблер IDA Pro, и загрузил в него файл msi. dll. Следует отметить пару особенностей данного отладчика: во первых, IDA любит блокировать доступ к исследуемому файлу, во вторых, она создает в папке с исследуемым файлом несколько своих файлов баз данных, так что я рекомендую копировать исследуемые файлы в отдельную папку. В третьих, IDA не всегда подгружает файлы с символами, поэтому рекомендую в указанную отдельную папку также скопировать файл msi. pdb из вышеуказанной папки C:\Symbols.
После нахождения функции CreateMsiServerProxy, находим знакомые строки кода в ней:
Не иначе как функция пытается создать объект по CLSID IID_IMsiServer. Здесь я не буду вдаваться в подробности COM и искать различия между CLSID и IID, важно что я получил зацепку — имя интерфейса ID_IMsiServer и CLSID .
Запустив поиск в реестре на своей машине по указанным ключевым словам, а также на машине, с установленной Windows 7 x64, где Windows Installer работал, я нашел отличие: на моей машине отсутствовала ветка реестра HKEY_CLASSES_ROOT\AppID\ . Я экспортировал данную ветку реестра в отдельный .reg файл, а затем импортировал его на своей машине:
Windows Registry Editor Version 5.00
После импорта ключа реестра я вновь попробовал запустить .msi файл, и, «О чудо!», он запустился, после чего я успешно установил ActivePerl.
У вас может быть аналогичная проблема, но при этом отсутствовать другой ключ реестра. Импортировать при этом необходимо те ключи, которых у вас нет.
Выводы
- В итоге я сэкономил себе массу времени — на поиск проблемы и ее устранение ушло не более двадцати минут, зато на переустановку всех программ на моем компьютере ушло бы минимум два дня.
- Не надо спешить переустанавливать Windows по любому чиху. Иногда проблему можно решить довольно просто и быстро.
Спасибо за внимание, я очень надеюсь что статья вам понравилась, жду ваших отзывов, а также с удовольствием отвечу на ваши вопросы.
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.
Способы самостоятельного решения OLE ошибки «класс не зарегистрирован» с кодом 0x80040154 в операционной системе Windows 7, 8 и 10
Каждый компьютер не застрахован от непредвиденных сбоев. Главной задачей пользователя ПК, попавшего в непредвиденную ситуацию — правильно определить и грамотно подойти к устранению эксцесса.
В данной статье речь пойдет об описании ошибки под номером 0x80040154, а также будут предложены методы исправления. Ошибка не является критической, что уже хорошо, так как полного выхода из операционной системы и вывода синего экрана не вызывает. Это даёт возможность, не выходя из системы, приступить к решению и устранению.
Класс не зарегистрирован при открытии JPG и других изображений
Наиболее часто встречающийся случай — ошибка «Класс не зарегистрирован» при открытии JPG, а также других фотографий и изображений.
Чаще всего проблема бывает вызвана неправильным удалением сторонних программ для просмотра фото, сбоями параметров приложений по умолчанию Windows 10 и подобными, однако решается это в большинстве случаев очень просто.
- Зайдите в Пуск — Параметры (значок шестеренки в меню Пуск) или нажмите клавиши Win+I
- Зайдите в «Приложения» — «Приложения по умолчанию» (или в Система — Приложения по умолчанию в Windows 10 1607).
- Выберите в пункте «Просмотр фотографий» стандартное приложение Windows для просмотра фотографий (или другое, правильно работающее приложение для фото). Также можно нажать «Сбросить» в пункте «Сброс к рекомендуемым Майкрософт значениям по умолчанию».
По завершении проверьте, открываются ли файлы изображений теперь. Если открываются, но вам требуется, чтобы с JPG, PNG и иными фото работала сторонняя программа, попробуйте удалить ее через Панель управления — Программы и компоненты, а затем установить заново и назначить используемой по умолчанию.
Примечание: еще один вариант этого же способа: нажать правой кнопкой мыши по файлу изображения, выбрать пункт «Открыть с помощью» — «Выбрать другое приложение», указать работающую программу для просмотра и о.
Если ошибка возникает просто при запуске приложения «Фотографии» Windows 10, то попробуйте способ с перерегистрацией приложений в PowerShell из статьи Не работают приложения Windows 10.
При запуске приложений Windows 10
При возникновении рассматриваемой ошибки при запуске приложений магазина Windows 10, а также при ошибке 0x80040154 в приложениях, опробуйте способы из статьи «Не работают приложения Windows 10», которая была приведена выше, а также попробуйте такой вариант:
- Удалите это приложение. Если это встроенное приложение, используйте инструкцию Как удалить встроенные приложения Windows 10.
- Заново установите его, здесь поможет материал Как установить Магазин Windows 10 (по аналогии можно установить и другие встроенные приложения).
Ошибка explorer. exe «Класс не зарегистрирован» при нажатии на кнопку Пуск или вызове параметров
Еще один распространенный вариант ошибки — не работающее меню Пуск Windows 10, или отдельные элементы в нем. При этом о том, что класс не зарегистрирован сообщает explorer. exe, код ошибки тот же — 0x80040154.
Способы исправить ошибку в данном случае:
- Исправление с помощью PowerShell, как описано в одном из способов статьи Не работает меню пуск Windows 10 (лучше использовать в последнюю очередь, иногда может еще больше навредить).
- Странным образом часто срабатывающий способ — зайти в панель управления (нажать Win+R, ввести control и нажать Enter), перейти в «Программы и компоненты», слева выбрать «Включение или отключение компонентов Windows», снять отметку с Internet Explorer 11, нажать Ок и после применения перезагрузить компьютер.
Если это не помогло, попробуйте также способ, описанный в разделе про службу компонентов Windows.
Не работает «Пуск»
Для устранения проблем с работой меню «Пуск» есть несколько вариантов действий:
- Перезапустить «Проводник».
- Обновить систему при помощи утилиты «Media Creation Tool».
- Изменить имя пользователя на латиницу, если нужно.
- Применить утилиты «Системы обслуживания образов» (DISM. exe) и «Средство проверки системных файлов» (SFC. exe).
- Использовать Windows PowerShell.
Перезапуск «Проводника»
Перезапустить «Проводник» можно через «Диспетчер задач».
- Нажмите одновременно клавиши Ctrl+Shift+Esc.
- На экране Диспетчера выберите пункт «Процессы». Здесь отображаются все работающие приложения и фоновые процессы.
- Встаньте на строку «Проводник».
- Нажмите «Перезапустить» внизу справа.
Совет! Запомните сочетания клавиш: Ctrl+ALT+DEL — останавливает всю систему и выводит диалоговое окно завершения работы Ctrl+Shift+Esc – вызов «Диспетчера задач».
Диспетчер задач, также, позволяет снимать «зависшие» или вредоносные приложения и контролировать работу системы.
Обновление через «Media Creation Tool»
- Загрузите программу «Media Creation Tool» на компьютер.
- Запустите MediaCreationTool1803.exe.
- Примите лицензионные условия.
- Выберите «Обновить этот компьютер сейчас».
- Нажмите кнопку «Установить». Если выпуск версии Windows на компьютере поддерживается этой утилитой, то начнется процесс обновления.
Это один из самых правильных и надежных способов избавиться от ошибок, но иногда, утилита не может обновить Ваш компьютер.
Изменение имя пользователя
Если имя пользователя написано на кириллице, то это может стать причиной ошибки. В таком случае нужно изменить его.
- Запустите «Управление компьютером». Для этого, нажмите ПКМ на иконке «Этот компьютер» и выберите «Управление».
- В панели управления выберите папку «Пользователи» и раскройте ее.
- Встаньте на строку с именем пользователя, написанном кириллицей.
- Нажмите ПКМ.
- Выберите «Переименовать».
Применение DISM. exe и SFC. exe
DISM. exe («Система обслуживания образов») и SFC. exe («Средство проверки системных файлов») восстанавливают поврежденные системные файлы, удаляют, настраивают и обновляют системные компоненты. Они запускаются через приложение «Выполнить».
- Нажмите комбинацию клавиш Win+R.
- В командную строку введите « DISM. exe/Online/Cleanup-image/Restorehealth ».
- После завершения работы первой команды, введите « Sfc/scannow ».
Использование Windows PowerShell
Перед использованием PowerShell необходимо закрыть все браузеры и приложения. Запустить программу можно через «Диспетчер задач».
- Нажмите Ctrl+Shift+Esc.
- В управляющем меню нажмите «Файл» и «Запустить новую задачу».
- Установите параметр «Создать задачу с правами администратора».
- В строку «Открыть» введите «PowerShell».
- В появившемся окне «PowerShell» вставьте строку – Get-AppXPackage — AllUsers | Foreach
. - После выполнения команды, перезагрузите систему.
Совет! Самое простое и правильное решение – переустановить Windows и установить заново все приложения.
Ошибка при запуске браузеров Google Chrome, Mozilla Firefox, Internet Explorer
При появлении ошибки в одном из интернет-браузеров, за исключением Edge (для него следует попробовать способы из первого раздела инструкции, только в контексте браузера по умолчанию, плюс перерегистрация приложений), выполните следующие шаги:
- Зайдите в параметры — Приложения — Приложения по умолчанию (или Система — Приложения по умолчанию для Windows 10 до версии 1703).
- Внизу нажмите «Задать значения по умолчанию по приложению».
Дополнительные действие по исправлению ошибки для Internet Explorer:
- Запустите командную строку от имени администратора (начните набирать в поиске на панели задач «Командная строка», при появлении нужного результата, нажмите по нему правой кнопкой мыши и выберите «Запустить от имени администратора» в контекстном меню).
- Введите команду regsvr32 ExplorerFrame. dll и нажмите Enter.
По завершении действий, проверьте, была ли исправлена проблема. В случае с Internet Explorer, перезагрузите компьютер.
Для сторонних браузеров, если способы, приведенные выше не сработали, может помочь удаление браузера, перезагрузка компьютера и последующая повторная установка браузера (или удаление разделов реестра HKEY_CURRENT_USER\ SOFTWARE\ Classes\ ChromeHTML\, HKEY_LOCAL_MACHINE\ SOFTWARE\ Classes\ ChromeHTML\ и HKEY_CLASSES_ROOT\ ChromeHTML (для браузера Google Chrome, для браузеров на базе Chromium название раздела может быть, соответственно, Chromium).
Универсальный способ
Указанный ниже метод может сработать вне зависимости от ситуации, в которой появилось сообщение об ошибке:
- Нажмите Win+R, выполните «dcomcnfg».
- Раскройте раздел «Службы компонентов», далее зайдите в «Компьютеры» – «Мой компьютер».
- Откройте каталог «Настройка DCOM».
По некоторым данным, причиной появления ошибки может являться установка iCloud для Windows, а также поврежденный реестр. Если никакие способы не помогают избавиться от неполадки, можно просто сбросить Windows 10 с сохранением или без сохранения данных.
Исправление в службе компонентов Windows 10
Этот способ может сработать вне зависимости от контекста появления ошибки «Класс не зарегистрирован», как и в случаях с ошибкой explorer. exe, так и в более специфичных, например, когда ошибку вызывает twinui (интерфейс для планшетов Windows).
- Нажмите клавиши Win+R на клавиатуре, введите dcomcnfg и нажмите Enter.
- Перейдите к разделу Службы компонентов — Компьютеры — Мой компьютер.
- Дважды кликните по «Настройка DCOM».
- Если после этого вам будет предложено зарегистрировать какие-либо компоненты (запрос может появиться несколько раз), согласитесь. Если таких предложений не появится, то данный вариант в вашей ситуации не подходит.
- По завершении, закройте окно службы компонентов и перезагрузите компьютер.
Дополнительная информация
Если предложенные способы не помогли, следующая информация может оказаться полезной:
- По некоторым сведениям, установленное ПО iCloud для Windows в некоторых случаях может вызывать указанную ошибку (попробуйте удалить).
- Причиной «Класс не зарегистрирован» может быть поврежденный реестр, см. Восстановление реестра Windows 10.
- Если прочие методы исправления не помогли, есть возможность сбросить Windows 10 с сохранением или без сохранения данных.
На этом завершаю и надеюсь, что в материале нашлось решение для исправления ошибки в вашей ситуации.
Регистрация классов вручную
Иногда в исправлении ошибки 0x80040154 может помочь ручная регистрация всех библиотек DLL и компонентов OCX, находящихся в системных папках. Для её выполнения: запустите командную строку от имени администратора, введите по порядку следующие 4 команды, нажимая Enter после каждой (процесс регистрации может занять продолжительное время).
for %x in (C:\Windows\System32\*.dll) do regsvr32 %x /s for %x in (C:\Windows\System32\*.ocx) do regsvr32 %x /s for %x in (C:\Windows\SysWOW64\*.dll) do regsvr32 %x /s for %x in (C:\Windows\SysWOW64\*.ocx) do regsvr32 %x /s
Последние две команды — только для 64-разрядных версий Windows. Иногда в процессе может появиться окно с предложением установить недостающие компоненты системы — сделайте это.
Решение проблемы класс не зарегистрирован Windows 10
При попытке открыть файлы различных форматов, приложения с магазина или браузеры пользователи могут получить ошибку класс не зарегистрирован в Windows 10. Проблема не зарегистрированного класса с ошибкой 0x80040154 может появиться из-за множества причин, начиная от простого обновления операционной системы и заканчивая установкой не безопасных для системы приложений.
Данная статья покажет решение проблемы класс не зарегистрирован Windows 10. В соответствии с причиной возникновения данной ошибки пользователю необходимо выбирать способ её устранения. Проблема также состоит в том, что не возможно предложить пользователю универсальный вариант решения проблемы без переустановки операционной системы.
Что значит класс не зарегистрирован Windows 10
В зависимости от среды возникновения ошибки пользователю нужно будет выбрать подходящее решение проблемы. Сейчас можно встретить несколько вариантов, после которых пользователю выводится ошибка класс не зарегистрирован:
- запуск различных Интернет браузеров;
- открытие изображений различных форматов;
- открытие параметров и меню пуск;
- запуск доверенных приложений с Магазина.
Множество способов позволяющих решить проблему с ошибкой не зарегистрированного класса 0x80040154 требует выполнения после каждого с ниже представленных вариантов решений перезагрузки компьютера. А также вместо полного перезапуска достаточно будет перезапустить проводник в Windows 10.
Как исправить ошибку класс не зарегистрирован 0x80040154
При открытии изображений
Чаще всего встречается ошибка класс не зарегистрирован при попытке открыть изображения различных форматов. В такой ситуации пользователю будет достаточно настроить или вовсе сбросить ассоциации файлов в Windows 10.
- Перейдите в раздел: Пуск > Параметры > Приложения > Приложения по умолчанию.
- Дальше в пункте просмотра фотографий укажите нормально работающее приложение (приложение Фотографии рекомендуется для Windows 10). alt=»ошибка 0x80040154 класс не зарегистрирован» width=»799″ height=»437″ />
При необходимости можно вернуть стандартное средство просмотра фотографий в Windows 10. Если же у Вас доверенное приложения магазина для просмотра фотографий не работает, воспользуйтесь способами представленными в инструкции: Не открываются фотографии на Windows 10.
При запуске браузеров
Если же ошибка класс не зарегистрирован появляется после попытки запустить Интернет браузер, рекомендуем изменить браузер по умолчанию Windows 10. Установив правильные ассоциации файлов и указав нужные значения по умолчанию по приложению можно решить проблему не зарегистрированного класса.
- Перейдите по пути: Пуск > Параметры > Приложения > Приложения по умолчанию.
- Дальше в пункте веб-браузер укажите любой работающий браузер (приложение Microsoft Edge рекомендуется для Windows 10).
- Теперь перейдите в раздел Задать значения по умолчанию по приложению, и выбрав нужный браузер установите все значения браузера для типа файла и сопоставления протоколов.
Если же ошибка не зарегистрированного класса наблюдается при попытке запуска браузера Internet Explorer, можно отключить Internet Explorer или в командной строке зарегистрировать нужный класс. Достаточно запустить командную строку от имени администратора и открывшемся окне выполнить команду: regsvr32 ExplorerFrame. dll.
При открытии параметров или меню пуск
Иногда ошибка выводится при попытке запуска параметров или простого открытия меню пуск (это и касается к запуску доверенных приложений с магазина). Об каждом доверенном приложении из магазина можно говорить отдельно, но зачастую во всех случаях пользователю достаточно выполнить перерегистрацию стандартных приложений.
- Нажмите правой кнопкой мыши на Пуск, и в открывшемся контекстном меню выберите пункт Windows PowerShell (администратор).
- В открывшемся окне оболочки выполните команду: Get-AppXPackage — AllUsers — Name windows. immersivecontrolpanel | Foreach
Дополнительно можете ознакомиться с вариантами решения проблемы, когда не работает кнопка Пуск в Windows 10. Там также мы использовали возможность выполнения перерегистрации стандартных приложений.
А также зачастую пользователям помогает регистрация недостающих компонентов в окне служб компонентов.
- Откройте окно служб компонентов выполнив команду dcomcnfg в окне Win+R.
- Дальше перейдите по пути: Службы компонентов > Компьютеры > Мой компьютер > Настройка DCOM.
- В открывшемся окошке подтвердите соглашение на запрос регистрации недостающих компонентов.
После завершения процесса перезагрузите компьютер. Если же у Вас такого окна не появилось, вышеуказанный вариант Вам не подходит. Вместе с текущим способом рекомендуем дополнительно проверить и восстановить целостность системных файлов Windows 10.
В итоге получаем одну ошибку не зарегистрированного класса 0x80040154 и множество способов решения. Какой вариант подойдет именно для Вашей версии операционной системы и компьютера в целом сказать сложно. В зависимости от среды возникновения ошибки рекомендуем выбирать и способ решения проблемы.
https://habr. com/ru/sandbox/33155/
https://brit03.ru/programmy/klass-ne-zaregistrirovan-windows-10.html
https://windd. ru/reshenie-problemy-klass-ne-zaregistrirovan-windows-10/