Что может быть причиной того, что MsiInstaller постоянно перенастраивает приложения (EventID 1035)?
У меня есть совершенно новый компьютер, на котором мы только что установили Windows Server 2008 Enterprise около двух месяцев назад. В журнале событий я вижу тысячи зарегистрированных EventID 1035. Это MsiInstaller переконфигурирует около десятка продуктов снова и снова, повторяя их примерно каждые полчаса.
Кто-нибудь видел это? Для начала я выполнил общий поиск в Интернете, и большинство решений основывалось на том, что в качестве виновника был установлен Dell System Center или панель инструментов Google.
У нас не установлен ни один из этих продуктов.
Спасибо за вашу помощь,
Дол
4 ответа
Я могу подтвердить, что проблема вызвана запросами WMI к классу Win32_Product. Но, как описано в этом другом вопросе ниже, вы не можете использовать Win32reg_AddRemovePrograms, если у вас не установлена SCCM/SMS и даже если вам придется использовать Win32reg_AddRemovePrograms64, чтобы получить список 64-битных программ
Ничто из этого не было задокументировано ранее как плохая вещь, фактически как правильный способ сделать это. Я думаю, что выбор Microsoft сделать проверку исправления одновременно с ответом на запрос - это просто плохой дизайн. Запрос никогда не должен вызывать изменения в системе, это должна быть другая "функция" (метод WMI). Разумный дизайн мог бы включать периодическую проверку в их характеристику "обслуживания системы" более новых операционных систем, потому что это также настраивается и имеет смысл для пользователей / администраторов.
Во всяком случае, это был старый сервер, который должен был быть выведен из эксплуатации (Windows 2003 64bit). Но это происходило на всех наших серверах в течение многих лет (теперь это стало серьезным ударом по производительности). Поэтому мне придется проверить еще раз на новых серверах 2008 R2, чтобы увидеть, будет ли это текущая производственная проблема или нет.
Но что мне действительно интересно, так это то, как, черт возьми, я могу объяснить командам упаковщиков и инженерам службы поддержки, что они не должны использовать этот запрос /API WMI. У нас есть сотни сценариев и инструментов, написанных множеством разных людей для 1000 пакетов. Этого никогда не случится. Таким образом, это поведение должно быть исправлено MS как критическая ошибка проектирования, если это все еще происходит в 2008 R2 и других поддерживаемых версиях ОС. Мы, конечно, обострим это, если это все еще имеет место!
ОБНОВЛЕНИЕ:
Установщик Windows имеет функцию "самовосстановления" для установленных приложений. По сути, это означает, что он будет продолжать проверять, соответствуют ли файлы на диске и параметры в реестре тому, что изначально установлен соответствующий пакет. Эти проверки обычно выполняются не для всего, что установлено в пакете, а для того, что называется "ключевыми путями".
В ситуациях, когда самовосстановление выполняется циклично, это обычно означает, что какой-то процесс в системе или другой MSI изменили настройки в системе, и пакет, который впоследствии самовосстанавливался, также изменился. Как сказал парень, это похоже на увлажнитель и осушитель, борющийся с ним в одной комнате - или собака, гоняющаяся за собственным хвостом. Вы не получите ничего, пока конфликт не будет найден и устранен. Файл MSI будет продолжать работать "это мой ресурс, я его изменяю" снова и снова.
Необходимо определить конфликт, о котором ссорятся файлы MSI или системные процессы: http://www.installsite.org/pages/en/msifaq/a/1037.htm.
Есть также другие ошибки проектирования в файлах MSI, которые могут вызвать ту же проблему, например, ключевые пути, для которых заданы жестко заданные пользовательские пути: C: \ Documents and settings \ user1 \ Desktop. Этот путь не будет найден для входа другого пользователя и результатов самовосстановления. Другой пример - ключевые пути, заданные для папок, которые недоступны для записи для системной учетной записи. Еще один пример - путь к ключу, установленный во временный файл (который система в конечном итоге удалит).
Как видите, существует много сценариев, но всегда одна и та же проблема: файл MSI проверяет правильность текущей установки и обнаруживает несоответствие, которое затем пытается исправить.
После тщательного исследования я обнаружил, что в этой статье Microsoft KB указано, что эти сообщения могут быть сгенерированы фильтром групповой политики ИЛИ приложением, запрашивающим класс WMI Win32_Product. К сожалению, сложно определить, какое приложение вызывает проблему.
Старый пост, который я знаю, но может быть полезен для тех, кто ищет ошибку в Google. Мы обнаружили, что агент Qualy вызывает проблему на наших устройствах. Мы передали проблему поставщику.