Код ошибки 3 0x80040154 system level

Код ошибки 3 0x80040154 system level

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

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

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

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

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

Наиболее распространенными советы по решению проблемы были

  1. Переустановить Windows Installer — на моей Windows 7 x64 и так стоит Windows Installer 5.0, который нельзя отдельно скачать и переустановить
  2. Перерегистрировать msiexec, что также мне не помогло.
  3. В конце все советы сводились к одному — переустановить Windows.

Подумав о том, какое количество программ мне придется переустанавливать, а также о количестве потраченного на это дело времени, я решил пойти другим путем.

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

Для начала я включил Log-файл установщика Windows. Как включить лог Windows Installer вы можете почитать здесь, или поискать в любом поисковике по ключевому слову "voicewarmup".

Лог-файлы появляются во временной папке пользователя, которая обычно находится по пути C:Usersимя_профиляAppDataLocalTemp. Открыв лог, я увидел следующую ошибку:

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*http://msdl.microsoft.com/download/symbols. В данном случае папка C:Symbols — это хранилище загруженных символов на жестком диске, чтобы отладчик каждый раз не лез в интернет за ними.

Читайте также:  Ctrl enter отправка сообщения

Загрузил я в отладчик файл c:windowssystem32msiexec.exe и задал для него параметры командной строки так, чтобы он открыл .msi файл. В моем случае параметром командной строки было: /i «C:UsersMAVDesktopActivePerl-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_ROOTAppID . Я экспортировал данную ветку реестра в отдельный .reg файл, а затем импортировал его на своей машине:

Windows Registry Editor Version 5.00

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

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

Читайте также:  Ватсап сохраняет фото на телефон андроид

Выводы

  1. В итоге я сэкономил себе массу времени — на поиск проблемы и ее устранение ушло не более двадцати минут, зато на переустановку всех программ на моем компьютере ушло бы минимум два дня.
  2. Не надо спешить переустанавливать Windows по любому чиху. Иногда проблему можно решить довольно просто и быстро.

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

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Ошибка 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_MACHINESYSTEMCurrentControlSetservicesMsMpSvc” /f
  • REG DELETE “HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft Antimalware” /f
  • REG DELETE “HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft Security Client” /f
  • REG DELETE “HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftMicrosoft Antimalware” /f
  • REG DELETE “HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrent VersionRunMSC” /f
  • REG DELETE “HKEY_CLASSES_ROOTInstallerProducts4C677A77F01DD614880F352F9DCD9D3B” /f
  • REG DELETE “HKEY_CLASSES_ROOTInstallerProducts4D880477777087D409D44E533B815F2D” /f
  • REG DELETE “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstallMicrosoft Security Client” /f
  • REG DELETE “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall<774088D4-0777-4D78-904D-E435B318F5D2>” /f
  • REG DELETE “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall<77A776C4-D10F-416D-88F0-53F2D9DCD9B3>” /f
  • REG DELETE “HKEY_CLASSES_ROOTInstallerUpgradeCodes1F69ACF0D1CF2B7418F292F0E05EC20B” /f
  • REG DELETE “HKEY_CLASSES_ROOTInstallerUpgradeCodes11BB99F8B7FD53D4398442FBBAEF050F” /f
  • REG DELETE “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInstallerUserDataS-1-5-18Products4C677A77F01DD614880F352F9DCD9D3B” /f
  • REG DELETE “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInstallerUserDataS-1-5-18Products4D880477777087D409D44E533B815F2D” /f
  • REG DELETE “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInstallerUpgradeCodes11BB99F8B7FD53D4398442FBBAEF050F” /f
  • REG DELETE “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInstallerUpgradeCodes1F69ACF0D1CF2B7418F292F0E05EC20B” /f
  • takeown /f “%ProgramData%MicrosoftMicrosoft Antimalware” /a /r
  • takeown /f “%ProgramData%MicrosoftMicrosoft Security Client” /a /r
  • takeown /f “%ProgramFiles%Microsoft Security Client” /a /r
  • REM Delete the MSE folders.
  • rmdir /s /q “%ProgramData%MicrosoftMicrosoft Antimalware”
  • rmdir /s /q “%ProgramData%MicrosoftMicrosoft 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:WindowsSystem32wbemRepository”
  • sc stop
  • EXIT
  • Сохраните файл и дайте ему имя “mseremoval.bat” (с скобками).
  • Запустите созданный файл.
  • Подождите окончания процесса. Как только все завершиться, перезагрузите свой компьютер. Затем пройдите на сайт Microsoft и скачайте пакет Microsoft Security Essentials. Установите его, а затем проверьте наличие проблемы в виде ошибки 0x80040154.

    При открытии страницы О браузере Google Chrome появляется ошибка:

    На данный момент знаю одно решение:

    1. Откройте Панель управления.

    2. Запустите Программы и компоненты:

    3. Удалите Google Chrome:

    4. Скачайте последнюю версию браузера с официального сайта Google: https://www.google.com/chrome/

    5. Запустите скачанный файл и установите новую версию.

    После этого сообщение должно исчезнуть:

    Если знаете, как решить проблему без переустановки Хрома, напишите в комментариях.

    Возможно, будет интересно:

    Пожалуйста, поделитесь статьей, если она вам понравилась:

    Ссылка на основную публикацию
    Клавиатура на айфоне фото
    Восемь лет назад Стив Джобс анонсировал первый смартфон компании Apple. Одной из главных особенностей iPhone являлась возможность навигации по меню...
    Какие комбинации клавиш необходимы для получения символов
    Здравствуйте! Вы никогда не задумывались, сколько порой приходится тратить времени на обычные операции: выделить что-то мышкой, скопировать, затем вставить в...
    Какие компрессоры стоят в холодильниках бирюса
    С появлением широкого ассортимента импортного холодильного оборудования бытовая техника отечественного производства постепенно отошла на второй план. Однако ошибочно думать, что...
    Клавиатура не отрывая пальца
    Непрерывный ввод — это функция, которая позволяет вводить текст, проведя пальцем по клавиатуре. Это работает следующим образом. Допустим, вам нужно...
    Adblock detector