Код ошибки 0х80040154 0х90018

В этой статье я расскажу об исправлении одной очень распространенной ошибки 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 на своем ПК прямо сейчас!

Ошибка 0x80040154 в Microsoft Security Essentials: методы решения

Ошибка 0x80040154 может появиться на вашем компьютере без каких-либо предвещающих на то событий. Большинство пользователей утверждают, что до начала сессии с ошибкой, их ПК функционировал нормально. 0x80040154 относиться к работе Microsoft Security Essentials.

При ее появлении, пользователь лишается возможности открывать Microsoft Security Essentials или удалять его. Также нужно упомянуть о том, что данная проблема может возникнуть на любой стадии использования Windows, например, во время открытия какого-нибудь почтового клиента или Skype.

Так из-за чего возникает указанная ошибка? Иногда сторонние антивирусы на вашем компьютере могут создавать конфликты с Microsoft Security Essentials. Даже если вы удалите этот конфликтный антивирус, то он все равно, скорее всего, продолжит вызывать проблему, так как тот оставил за собой некоторые файлы в системе. Еще одной причиной может служить заражение вирусами, которые каким-то образом смогли изменить файлы Microsoft Security Essentials, либо повредить их.

Решаем ошибку

0x80040154

Метод №1 Выполнение Восстановления системы

Сразу же давайте начнем с самого простого – восстановление системы. Если ошибка 0x80040154 является следствием воздействия вирусов или вредоносного ПО, то можно выполнить Восстановление, чтобы вернуть свою систему в более стабильное состояние, т. е. вы отмените те изменение в системе, которые привели к этой ошибке.

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

Метод №2 Удаление сторонних антивирусов

Убедитесь, что вы удалили такие сторонние антивирусы, как Norton или McAfee с вашей системы. Если вы не уверены в их установке, то это можно легко проверить. Для этого сделайте следующее:

Как только избавитесь от стороннего антивируса, то попробуйте запустить Microsoft Security Essentials и проверьте наличие ошибки 0x80040154.

Метод №3 Удаление Microsoft Security Essentials

Если файлы Microsoft Security Essentials подверглись каким-то изменениям или были повреждены, то удаление и повторная их установка должна полностью исправить ситуацию.

Для удаления Microsoft Security Essentials достаточно просто зайти в «Программы и компоненты». Однако, этот привычный способ удаления не всегда может избавиться от всех файлов этого пакета антивирусных приложений.

Подождите окончания процесса. Как только все завершиться, перезагрузите свой компьютер. Затем пройдите на сайт Microsoft и скачайте пакет Microsoft Security Essentials. Установите его, а затем проверьте наличие проблемы в виде ошибки 0x80040154.

Источники:

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

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

https://gamesqa. ru/kompyutery/0x80040154-6683/

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

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