Tuesday, July 25th, 2017

MSI не хочет устанавливать программу на вашу OC? Orcas поправит это!

Published on Март 2, 2009 by   ·   Комментариев нет

Если вы являетесь тестером Vista или на вашей машине установлена серверная ОС типа Windows Server 2003 или Longhorn server, тогда вы можете столкнуться с проблемой при установке некоторых программ…

Вы запускаете файл установки MSI, а в ответ видите странное сообщение, например:

Не устанавливает msi

Сообщение от Cisco вообще удивительно, т.к программе установки, требуется, чтобы на машине одновременно были загружены «как минимум Windows 2000 Service Pack 3 И Windows XP Service Pack 1» («Windows 2000 Service Pack 3 or greater AND Windows XP Service Pack 1 or greater»). Это полный абсурд! Что же это за программа, для работы которой требуется одновременная работа двух ОС?

Если бы мы использовали псевдокод, то отразили бы это условие следующим образом:
If ((OS is Win2000) AND (SP Level is >= SP3)) AND ((OS is WinXP) AND (SP Level is >= SP1)) THEN INSTALL.

Очевидно, что человек, который писал установщик MSI для данной программы, допустил логическую ошибку. Теперь кто бы ни пытался установить это программное обеспечение, увидит окно, описанное выше, при этом программа никогда не установится.
Что же делать? – спросите вы. Отвечу: эту ошибку можно исправить с помощью утилиты «Orca»!

Orca позволяет разобрать по косточкам базу данных MSI и посмотреть, какие действия, ключи реестра и т.д. задействованы в процессе установки. Но самое важное для нас в данном случае, это то, что Orca позволит увидеть и отредактировать условия, необходимые для начала установки желаемой программы (типа установленной Windows XP с SP2 и т.д.)!

Получить утилиту можно здесь: http://support.microsoft.com/kb/255905/EN-US/
После того, как утилита Orca установлена, мы сможем вручную отредактировать желаемый файл установки необходимой нам программы.

Иногда файл MSI упакован внутри огромного файла типа «setup.exe» или «install.exe». Поэтому, если нужная нам программа поставляется в виде такого файла, сначала нужно распаковать его во временную директорию. После распаковки, во временной директории среди прочих будет и файл MSI.
Теперь откроем файл MSI с помощью Orca. Для примера, возьмем файл MSI программы VistaUpgradeAdvisor.

Не устанавливает msi

Из приведенного рисунка видно, что слева в списке «Tables» есть элемент «LaunchCondition» («Условия запуска установки»). Выберем этот элемент.

На правой панели в колонке «Condition» отобразятся условия, выполнение которых необходимо для запуска установки программы VistaUpgradeAdvisor, а в колонке «Description» содержится сообщение, которое программа установки должна выдать пользователю в случае невыполнения условий. В данном примере, условиями для установки являются: «VersionNT=501 OR VersionNT>502». Так как «VersionNT=501» подразумевает ни что иное, как Windows XP, а «VersionNT=502» — это Windows Server 2003, следовательно условия установки нашей программы таковы: если на компьютере установлена Windows XP или версия Windows более новая, чем Windows Server 2003 (а это ничто иное, как Vista), тогда начать установку программы, в противном случае прекратить установку и выдать сообщение «Sorry. You must run setup on Windows XP or Windows Vista».

Предположим, нам нужно установить VistaUpgradeAdvisor на машину с ОС Windows Server 2003. Для этого изменим условия начала установки, следующим образом: «VersionNT>=501» и нажмем кнопку «Save»

Не устанавливается сервис пак на висту

Теперь наш MSI не будет противиться установке программы VistaUpgradeAdvisor под Windows Server 2003.
Конечно, не совсем понятно, почему в Orca используется нумерация версий Windows 501, 502, а не 51 и 52 и т.д. Ведь если посмотреть на официальную нумерацию, то можно увидеть, что номер версии Windows XP — 5.1.2600, Windows Server 2003 — 5.2.3790, а Windows Vista Beta 2 — 6.0.5384.
Рассмотрим теперь, как выглядит изнутри MSI для новой версии программы Cisco IP Communication (выше я продемонстрировал, что старая версия желает одновременного запуска Windows 2000 и Windows XP).

Установить программу msi

Как видно, требования для начала установки здесь включают не только проверку установленной версии Windows, но и требования к оборудованию. Так, например, для начала установки необходимо наличие процессора не ниже Pentium 3 (строка «Intel>=6») и не менее 120 Мб RAM (строка «PhysicalMemory>=120»). Но это так, к слову.

Нас же будет интересовать следующая строка условий: (VersionNT=501 And WindowsBuild>=2264 And ServicePackLevel >=1) OR (VersionNT=500 And WindowsBuild=2195 And ServicePackLevel>=3).

Понятно, что у человека, который писал это, с логикой все в порядке.
Ясно, что программа начнет установку, если на машине инсталлирована Windows XP (включая Windows XP Beta) с SP1 или SP2 (или SP3, если он выйдет в будущем).
Также установка начнется и в случае, если на компьютере установлена Windows 2000 (VersionNT=500 And WindowsBuild=2195 And ServicePackLevel>=3).

Если вас мучает вопрос, откуда мы узнали, что MSI будет устанавливать Cisco IP Communication под Windows XP Beta SP1(или SP2, или SP3…), то поясню: в строке условий указано — (VersionNT=501 And WindowsBuild>=2264 And ServicePackLevel >=1)…
Понятно, что VersionNT=501 – это Windows XP, а вот следующий параметр WindowsBuild>=2264, указывает на то, что номер сборки может быть и менее, чем 2600 (напомним, что у релиза XP номер сборки 2600). Поэтому условие WindowsBuild>=2264, охватывает и Beta – версии XP, начиная со сборки XP под номером 2264.

Если мы хотим, чтобы MSI устанавливала программу Cisco IP Communication и под Vista, тогда к строке условий, которую мы только что подробно разбирали, нужно просто добавить «OR (VersionNT=600)», тогда получим: (VersionNT=501 And WindowsBuild>=2264 And ServicePackLevel >=1) OR (VersionNT=500 And WindowsBuild=2195 And ServicePackLevel>=3) OR (VersionNT=600). С другой стороны, можно просто проигнорировать все условия, связанные с сервис – паками и номерами сборок и заменить всю эту громоздкую строку на такую: «VersionNT >= 500». Теперь программа установки запустится под всеми версиями Windows, не ниже Windows 2000, включая и Vista.

Итак, я рассказал, каким образом можно снять блокировку MSI. Это может пригодиться, например, тестерам Vista, позволяя установить программы, написанные для XP. Однако, не следует думать, что любая программа будет корректно работать после модификации файла MSI. Конечно, мы можем снять блокировку на процесс установки программы, и установка может пройти успешно. А вот будет ли сама установленная программа корректно работать с DLL или драйверами той платформы, на которую ее установили – это большой вопрос.

quest online homework

Источник: http://windowsconnected.com/











Смотрите также:

Tags: ,

Readers Comments (Комментариев нет)

Comments are closed.

Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]