0x80040154 при обновлении windows 10

Исправление ошибки Windows Installer 0x80040154

В этой статье я расскажу об исправлении одной очень распространенной ошибки 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\имя_профиля\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*http://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

Читайте также:  Windows server 2012 r2 x64 dvd 2708010

Для установки точек прерывания на эти функции вводим в командной строке отладчика:
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.

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

Выводы

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

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

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

Обновление Windows 10 ошибка 0x80040154

Пытался обновлять 3 раза, но все 3 раза вылезла именно эта ошибка.Что делать?

Ответы (3) 

Нажмите Win + X, выберите командную строку (администратор). В открытое окно напечатайте, (не забыв пробелы перед слешами)
Dism /Online /Cleanup-Image /RestoreHealth и нажмите Enter.
Наберитесь терпения, дождитесь когда утилита закончит работу.

Читайте также:  Bluestacks эмулятор андроид для windows

Напечатайте sfc /scannow и нажмите Enter.
Результат результата.

Попробуйте удалить папку C: \$ WINDOWS.

BT (если она есть), очистить содержимое папки c: \Windows \SoftwareDistribution \Download \, перезапустить службу обновлений и повторить поиск обновлений. Зайдите в параметры, обновление и безопасность, устранение неполадок. Выберите устранение неполадок Центра обновлений, следуйте указаниям на экране. Когда утилита закончит работу, перезагрузите компьютер.

——————————
Если совет вам помог, вы можете отметить его как ответ.
Это поможет другим участникам форума.

С уважением.
Елена.

1 пользователь нашел этот ответ полезным

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

BT(если она есть), остановить службу обновлений, очистить содержимое папки c:\Windows\SoftwareDistribution\, и повторить поиск обновлений.

1 пользователь нашел этот ответ полезным

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Как исправить ошибку 0x80040154 (класс не зарегистрирован) в Windows 10 / 8 / 7

Одна из распространенных и неприятных ситуаций в Windows – появление ошибки с кодом 0x80040154 («Класс не зарегистрирован»). Описываемая ошибка может возникнуть в разных случаях: при входе в параметры «десятки», при запуске программы из Магазина Microsoft Store, при попытке открыть файл изображения (фото). Сегодня я на конкретном примере расскажу как решить проблему 0x80040154 при открытии настольных и универсальных приложений.

История проста, как и сам метод исправления трабла (англ. trouble – «ошибка»). Инсталлировав на новый ноутбук с Windows 10 1709 один из лучших менеджеров закачек Internet Download Manager (IDM), при попытках скачать ролики с YouTube и других сервисов автор получал сообщение «Класс не зарегистрирован. Код ошибки 0x80040154«.

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

  • Итак, найдите «проблемное» приложение (ярлык на рабочем столе или исполняемый EXE-файл на диске C:\), щелкните по нему правой кнопкой мыши → в контекстном меню выберите пункт «Свойства» → в одноименном окне перейдите на вкладку «Совместимость» и в нижней части отметьте маркером «Запускать эту программу от имени администратора» → «OK«. В моем случае функционал утилиты полностью восстановился (скачивание потокового видео без админских привилегий запрещалось окном «Ваш браузер иIDM настроены для работы с несовпадающими привилегиями (разными уровнями доступа)«).
  • Если система выдает все ту же ошибку, корректно удалите программу с помощью продвинутого деинсталлятора (рекомендую коммерческий Revo Uninstaller либо бесплатный IObit Uninstaller).
  • Почистите ОС силами лучших в своем классе jv16 PowerTools или Wise Registry Cleaner, т.к. причиной появления ошибки 0x80040154 может быть поврежденный реестр.
  • Скачав с официального источника чистый дистрибутив настольного (универсального) приложения, заново установите его в Windows 10 / 8 / 7.

Дмитрий dmitry_spb Евдокимов

Ошибка в программах почта и календарь Windows 10 (0x80040154)

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

В чем может быть проблема? Раньше оба приложения работали нормально.

Ответы (49) 

* Попробуйте выбрать меньший номер страницы.

* Введите только числа.

* Попробуйте выбрать меньший номер страницы.

* Введите только числа.

Попробуйте применить этот фикс.

Был ли этот ответ полезным?

Читайте также:  Adobe color cc для windows

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

Добрый день! К сожалению данное решение не помогло, после применения фикса код ошибки изменился на другой:

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

И по-моему уже давно. У меня неделю назад писало: синхронизация календаря и почты невозможна: «мы работаем над этой проблемой».

Никаких ошибок не было. Наверное они все ещё работают. Проверить не могу, так как вернулся на предыдущую версию ОС. Пусть поработают как следует и над всем остальным тоже.

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

В моем подобном случае удалось решить проблему удалив обновление KB3081444, которое я потом запретил устанавливать.

Вопрос к сотрудникам МС — на сколь критично отсутствие данного обновления?

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

В моем подобном случае удалось решить проблему удалив обновление KB3081444, которое я потом запретил устанавливать.

Вопрос к сотрудникам МС — на сколь критично отсутствие данного обновления?

с сотрудниками МС вообще трудно связаться

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

Проблема массовая и удивляет Microsoft, который до сих пор упорно молчит.

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

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

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Оцените статью