Ошибка 0x80040154 может появиться на вашем компьютере без каких-либо предвещающих на то событий. Большинство пользователей утверждают, что до начала сессии с ошибкой, их ПК функционировал нормально. 0x80040154 относиться к работе Microsoft Security Essentials.
При ее появлении, пользователь лишается возможности открывать Microsoft Security Essentials или удалять его. Также нужно упомянуть о том, что данная проблема может возникнуть на любой стадии использования Windows, например, во время открытия какого-нибудь почтового клиента или Skype.
Так из-за чего возникает указанная ошибка? Иногда сторонние антивирусы на вашем компьютере могут создавать конфликты с Microsoft Security Essentials. Даже если вы удалите этот конфликтный антивирус, то он все равно, скорее всего, продолжит вызывать проблему, так как тот оставил за собой некоторые файлы в системе. Еще одной причиной может служить заражение вирусами, которые каким-то образом смогли изменить файлы Microsoft Security Essentials, либо повредить их.
Решаем ошибку
Метод №1 Выполнение Восстановления системы
Сразу же давайте начнем с самого простого – восстановление системы. Если ошибка 0x80040154 является следствием воздействия вирусов или вредоносного ПО, то можно выполнить Восстановление, чтобы вернуть свою систему в более стабильное состояние, т. е. вы отмените те изменение в системе, которые привели к этой ошибке.
- Нажмите кнопки Win+R.
- Копируйте и вставьте rstrui. exe и нажмите Enter.
- В появившемся окне «Восстановление системы», нажмите «Далее».
- Выберите нужную вам точку восстановления(подумайте, может какой-то установленное ПО является причиной ошибки 0x80040154) и нажмите «Далее».
- Затем кликните «Завершить» и «ОК».
Теперь вашему компьютеру потребуется перезагрузка и немного времени на выполнение Восстановления системы.
Метод №2 Удаление сторонних антивирусов
Убедитесь, что вы удалили такие сторонние антивирусы, как Norton или McAfee с вашей системы. Если вы не уверены в их установке, то это можно легко проверить. Для этого сделайте следующее:
- Нажмите правой кнопкой мыши на Пуск и выберите «Программы и компоненты».
- Найдите в списке ваших программ указанные сверху антивирусы или любые другие, о которых вы не знали(такое может происходить из-за того, что некоторое ПО предлагать вместе со своей установкой еще и сторонний антивирус, тулбар или что-то похожее).
- Нажмите правой кнопкой мыши на свою находку и выберите «Удалить».
Как только избавитесь от стороннего антивируса, то попробуйте запустить Microsoft Security Essentials и проверьте наличие ошибки 0x80040154.
Метод №3 Удаление Microsoft Security Essentials
Если файлы Microsoft Security Essentials подверглись каким-то изменениям или были повреждены, то удаление и повторная их установка должна полностью исправить ситуацию.
Для удаления Microsoft Security Essentials достаточно просто зайти в «Программы и компоненты». Однако, этот привычный способ удаления не всегда может избавиться от всех файлов этого пакета антивирусных приложений.
Вам нужно создать батник с набором определенных команд, которые отключают и удалят Microsoft Security Essentials с вашего компьютера. Для создание этого. bat, сделайте следующее:
- Найдите правой кнопкой мыши на Рабочем столе и выберите «Создать→Текстовый документ».
- Откройте созданный текстовик и вставьте в него этого набор команд:
- cd /d “%ProgramFiles%\Microsoft Security Client”
- setup. exe /x
- TASKKILL /f /im MsMpEng. exe
- TASKKILL /f /im msseces. exe
- net stop MsMpSvc
- sc delete MsMpSvc
- REG DELETE “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MsMpSvc” /f
- REG DELETE “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware” /f
- REG DELETE “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Security Client” /f
- REG DELETE “HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Microsoft Antimalware” /f
- REG DELETE “HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\Run\MSC” /f
- REG DELETE “HKEY_CLASSES_ROOT\Installer\Products\4C677A77F01DD614880F352F9DCD9D3B” /f
- REG DELETE “HKEY_CLASSES_ROOT\Installer\Products\4D880477777087D409D44E533B815F2D” /f
- REG DELETE “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Security Client” /f
- REG DELETE “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\<774088d4-0777-4d78-904d-e435b318f5d2>” /f
- REG DELETE “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\<77a776c4-d10f-416d-88f0-53f2d9dcd9b3>” /f
- REG DELETE “HKEY_CLASSES_ROOT\Installer\UpgradeCodes\1F69ACF0D1CF2B7418F292F0E05EC20B” /f
- REG DELETE “HKEY_CLASSES_ROOT\Installer\UpgradeCodes\11BB99F8B7FD53D4398442FBBAEF050F” /f
- REG DELETE “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\4C677A77F01DD614880F352F9DCD9D3B” /f
- REG DELETE “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\4D880477777087D409D44E533B815F2D” /f
- REG DELETE “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\11BB99F8B7FD53D4398442FBBAEF050F” /f
- REG DELETE “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\1F69ACF0D1CF2B7418F292F0E05EC20B” /f
- takeown /f “%ProgramData%\Microsoft\Microsoft Antimalware” /a /r
- takeown /f “%ProgramData%\Microsoft\Microsoft Security Client” /a /r
- takeown /f “%ProgramFiles%\Microsoft Security Client” /a /r
- REM Delete the MSE folders.
- rmdir /s /q “%ProgramData%\Microsoft\Microsoft Antimalware”
- rmdir /s /q “%ProgramData%\Microsoft\Microsoft Security Client”
- rmdir /s /q “%ProgramFiles%\Microsoft Security Client”
- REM Stop the WMI and its dependency services
- sc stop sharedaccess
- sc stop mpssvc
- sc stop wscsvc
- sc stop iphlpsvc
- sc stop winmgmt
- REM Delete the Repository folder.
- rmdir /s /q “C:\Windows\System32\wbem\Repository”
- sc stop
- EXIT
Подождите окончания процесса. Как только все завершиться, перезагрузите свой компьютер. Затем пройдите на сайт Microsoft и скачайте пакет Microsoft Security Essentials. Установите его, а затем проверьте наличие проблемы в виде ошибки 0x80040154.
Исправление ошибки 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 будет скрыт псевдонимом.
Источники:https://gamesqa. ru/kompyutery/0x80040154-6683/
https://habr. com/ru/sandbox/33155/