Код ошибки 0x80040154 0x90018

Содержание

В этой статье я расскажу об исправлении одной очень распространенной ошибки Windows Installer. Обыскавши Интернет как русскоязычный, так и англоязычный, включая форумы и ньюсгруппы Microsoft, я понял что ошибка довольно распространенная, однако исправить ее, на самом деле никому не удавалось.

Суть проблемы

Как то одним жарким летним вечером я решил установить на свой компьютер ActeiveState ActivePerl. Скачал инсталлятор, который был в .msi файле и запустил его. Каково же было мое удивление, когда вместо привычного инсталлятора я увидел вот это:

image

Как вскоре оказалось, подобная ошибка выпадала при запуске на моем компьютере любого .msi файла.

Недолго думая, я полез в интернет, ввел в поиск появившееся сообщение, и, «О ужас!» — я увидел сотни постов людей с этой проблемой! В русскоязычном и англоязычном сегменте Интернета у множества людей была аналогичная проблема, и никто ее не смог решить по существу.

Решение проблемы

Для начала я включил 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 файлу.

image

Сам по себе отладчик, конечно не решит проблему, нужно ее локализовать. Поразмыслив, какие функции могут создавать COM-объекты, я остановился на CoCreateInstance, CoCreateInstanceEx и CoGetClassObject

Для установки точек прерывания на эти функции вводим в командной строке отладчика:
bp ole32!CoCreateInstance
bp ole32!CoCreateInstanceEx
bp ole32!CoGetClassObject
Если точки останова у вас не ставятся, значит вы неправильно настроили символы.

После запуска приложения (F5), срабатывает точка останова на ole32!CoCreateInstance. Если точка останова не срабатывает, а выпадает окно с параметрами Wndows Installer, то вы неправильно указали параметры командной строки для запуска.

image

Давайте теперь посмотрим, из какого же места кода вызывается создание нашего объекта, для этого мы можем нажать Debug->Step Out (Shift+F11). Мне пришлось нажать указанную комбинацию дважды, для того чтобы выйти в исходную вызывающую функцию.

image

Исходная вызывающая функция называется msi! CreateMsiServerProxy и, очевидно, находится в модуле msi. dll.

Запомнив имя функции, а также примерный вид искомого кода, я открыл дизассемблер IDA Pro, и загрузил в него файл msi. dll. Следует отметить пару особенностей данного отладчика: во первых, IDA любит блокировать доступ к исследуемому файлу, во вторых, она создает в папке с исследуемым файлом несколько своих файлов баз данных, так что я рекомендую копировать исследуемые файлы в отдельную папку. В третьих, IDA не всегда подгружает файлы с символами, поэтому рекомендую в указанную отдельную папку также скопировать файл msi. pdb из вышеуказанной папки C:\Symbols.

После нахождения функции CreateMsiServerProxy, находим знакомые строки кода в ней:
image

Не иначе как функция пытается создать объект по CLSID IID_IMsiServer. Здесь я не буду вдаваться в подробности COM и искать различия между CLSID и IID, важно что я получил зацепку — имя интерфейса ID_IMsiServer и CLSID .

Windows Registry Editor Version 5.00

После импорта ключа реестра я вновь попробовал запустить .msi файл, и, «О чудо!», он запустился, после чего я успешно установил ActivePerl.

image

У вас может быть аналогичная проблема, но при этом отсутствовать другой ключ реестра. Импортировать при этом необходимо те ключи, которых у вас нет.

Выводы

Спасибо за внимание, я очень надеюсь что статья вам понравилась, жду ваших отзывов, а также с удовольствием отвечу на ваши вопросы.

Лучшие хитрости, чтобы исправить ошибку 0x80040154

Решения

Изображение коробки рестороПричины ошибок

Чтобы избежать неудобств при запуске программ на ПК с Windows, рекомендуется устранить ошибку 0x80040154.

Дополнительная информация и ручной ремонт

Вот некоторые из лучших методов, которые вы можете попытаться решить с помощью кода ошибки 0x80040154 на вашем компьютере:

# 1. Используйте Regsvr32.exe для повторной регистрации неисправного компонента COM

Это один из способов решить код ошибки 0x80040154. Regsvr32.exe это программа, которую вы можете использовать для регистрации DLL (Dynamic Link Libraries) и элементов управления ActiveX в реестре.

Чтобы использовать этот файл для повторной регистрации неисправных компонентов COM, просто откройте командную строку с повышенными привилегиями. Если 32-разрядная DLL находится в папке% systemroot% System32, переместите ее в папку% systemroot% SysWoW64.

# 2. Установите и запустите Restoro PC Fixer.

Другой альтернативой является загрузка Restoro. Это новый, продвинутый и инновационный инструмент для ремонта ПК, в котором используется множество утилит, таких как Active X control и class fixer, системный оптимизатор, антивирус и очиститель реестра.

Имеет удобный интерфейс с простой навигацией. Это делает его довольно простым в использовании для всех уровней пользователей. Это безопасно, быстро и совместимо со всеми версиями Windows.

Была основана Активное управление X и утилита класса сканирует весь ваш компьютер, обнаруживает и устраняет все ошибки, такие как 0x80040154, вызывая проблемы ActiveX и ID класса в считанные секунды.

Помимо этого, Restoro предлагает и другие преимущества. Запустив это программное обеспечение в своей системе, вы также можете обеспечить хорошее состояние и производительность ПК, поскольку оно также удаляет антивирусы, устраняет проблемы с реестром, исправляет поврежденные файлы DLL, а также повышает скорость вашего ПК.

DLL-файлы часто могут быть повреждены или повреждены из-за перегрузки данных. Это связано с реестром. Если вы не чистите реестр часто, он перегружается данными и повреждает файлы DLL.

Однако с помощью встроенной в программу утилиты очистки реестра вы можете легко восстановить эти файлы. Очиститель реестра удаляет все ненужные файлы из вашей системы, занимающие дисковое пространство, и одновременно исправляет поврежденные файлы DLL и восстанавливает реестр.

Однако, если файлы DLL повреждены из-за атаки вредоносного ПО, антивирусный модуль позаботится о них. Он удаляет все вредоносное ПО, такое как рекламное ПО, шпионское ПО, вирусы и трояны, и восстанавливает ваши файлы.

Нажмите чтобы загрузить Restoro на свой компьютер и устранить ошибку 0x80040154 на своем ПК прямо сейчас!

Способы самостоятельного решения OLE ошибки «класс не зарегистрирован» с кодом 0x80040154 в операционной системе Windows 7, 8 и 10

Каждый компьютер не застрахован от непредвиденных сбоев. Главной задачей пользователя ПК, попавшего в непредвиденную ситуацию — правильно определить и грамотно подойти к устранению эксцесса.

Класс не зарегистрирован при открытии JPG и других изображений

Наиболее часто встречающийся случай — ошибка «Класс не зарегистрирован» при открытии JPG, а также других фотографий и изображений.

Чаще всего проблема бывает вызвана неправильным удалением сторонних программ для просмотра фото, сбоями параметров приложений по умолчанию Windows 10 и подобными, однако решается это в большинстве случаев очень просто.

Исправить класс не зарегистрирован для JPG

Перезапустить проводник Windows 10

По завершении проверьте, открываются ли файлы изображений теперь. Если открываются, но вам требуется, чтобы с JPG, PNG и иными фото работала сторонняя программа, попробуйте удалить ее через Панель управления — Программы и компоненты, а затем установить заново и назначить используемой по умолчанию.

Примечание: еще один вариант этого же способа: нажать правой кнопкой мыши по файлу изображения, выбрать пункт «Открыть с помощью» — «Выбрать другое приложение», указать работающую программу для просмотра и о.

Если ошибка возникает просто при запуске приложения «Фотографии» Windows 10, то попробуйте способ с перерегистрацией приложений в PowerShell из статьи Не работают приложения Windows 10.

Windows10 Класс не зарегистрирован Фото 6

При запуске приложений Windows 10

При возникновении рассматриваемой ошибки при запуске приложений магазина Windows 10, а также при ошибке 0x80040154 в приложениях, опробуйте способы из статьи «Не работают приложения Windows 10», которая была приведена выше, а также попробуйте такой вариант:

Ошибка explorer. exe «Класс не зарегистрирован» при нажатии на кнопку Пуск или вызове параметров

Еще один распространенный вариант ошибки — не работающее меню Пуск Windows 10, или отдельные элементы в нем. При этом о том, что класс не зарегистрирован сообщает explorer. exe, код ошибки тот же — 0x80040154.

Способы исправить ошибку в данном случае:

Отключение Internet Explorer 11 в Windows 10

Если это не помогло, попробуйте также способ, описанный в разделе про службу компонентов Windows.

Не работает «Пуск»

Для устранения проблем с работой меню «Пуск» есть несколько вариантов действий:

Пуск на Windows 10

Перезапуск «Проводника»

Перезапустить «Проводник» можно через «Диспетчер задач».

диспетчер задач

Совет! Запомните сочетания клавиш: Ctrl+ALT+DEL — останавливает всю систему и выводит диалоговое окно завершения работы Ctrl+Shift+Esc – вызов «Диспетчера задач».

Диспетчер задач, также, позволяет снимать «зависшие» или вредоносные приложения и контролировать работу системы.

Обновление через «Media Creation Tool»

Это один из самых правильных и надежных способов избавиться от ошибок, но иногда, утилита не может обновить Ваш компьютер.

Изменение имя пользователя

Если имя пользователя написано на кириллице, то это может стать причиной ошибки. В таком случае нужно изменить его.

Применение DISM. exe и SFC. exe

DISM. exe («Система обслуживания образов») и SFC. exe («Средство проверки системных файлов») восстанавливают поврежденные системные файлы, удаляют, настраивают и обновляют системные компоненты. Они запускаются через приложение «Выполнить».

Использование Windows PowerShell

Перед использованием PowerShell необходимо закрыть все браузеры и приложения. Запустить программу можно через «Диспетчер задач».

Совет! Самое простое и правильное решение – переустановить Windows и установить заново все приложения.

Ошибка при запуске браузеров Google Chrome, Mozilla Firefox, Internet Explorer

При появлении ошибки в одном из интернет-браузеров, за исключением Edge (для него следует попробовать способы из первого раздела инструкции, только в контексте браузера по умолчанию, плюс перерегистрация приложений), выполните следующие шаги:

Задать умолчания по приложению

Задать программу по умолчанию для протоколов и файлов

Дополнительные действие по исправлению ошибки для Internet Explorer:

По завершении действий, проверьте, была ли исправлена проблема. В случае с Internet Explorer, перезагрузите компьютер.

Для сторонних браузеров, если способы, приведенные выше не сработали, может помочь удаление браузера, перезагрузка компьютера и последующая повторная установка браузера (или удаление разделов реестра HKEY_CURRENT_USER\ SOFTWARE\ Classes\ ChromeHTML\, HKEY_LOCAL_MACHINE\ SOFTWARE\ Classes\ ChromeHTML\ и HKEY_CLASSES_ROOT\ ChromeHTML (для браузера Google Chrome, для браузеров на базе Chromium название раздела может быть, соответственно, Chromium).

Универсальный способ

Указанный ниже метод может сработать вне зависимости от ситуации, в которой появилось сообщение об ошибке:

По некоторым данным, причиной появления ошибки может являться установка iCloud для Windows, а также поврежденный реестр. Если никакие способы не помогают избавиться от неполадки, можно просто сбросить Windows 10 с сохранением или без сохранения данных.

Исправление в службе компонентов Windows 10

Этот способ может сработать вне зависимости от контекста появления ошибки «Класс не зарегистрирован», как и в случаях с ошибкой explorer. exe, так и в более специфичных, например, когда ошибку вызывает twinui (интерфейс для планшетов Windows).

Дополнительная информация

Если предложенные способы не помогли, следующая информация может оказаться полезной:

На этом завершаю и надеюсь, что в материале нашлось решение для исправления ошибки в вашей ситуации.

Регистрация классов вручную

Иногда в исправлении ошибки 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. Иногда в процессе может появиться окно с предложением установить недостающие компоненты системы — сделайте это.

Источники:

https://habr. com/ru/sandbox/33155/

https://errortools. com/ru/outlook/how-to-fix-0x80040154-error-code/

https://brit03.ru/programmy/klass-ne-zaregistrirovan-windows-10.html

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: