PDA

Показать полную графическую версию : Параметры командной строки Windows Installer


Котяра
13-03-2008, 23:13
Наверняка многим будет интересно.
Пакеты MSI (т.е. файлы с этим расширением) устанавливаются программой msiexec.exe в каталоге %windir%\system32.
Для автоматической установки приложений важны параметры командной строки. Вот как их описывает Microsoft (для версии 3.1):


Windows (R) Installer. Версия 3.01.4000.1823

msiexec /Option <обязательный параметр> [необязательный параметр]

Параметры установки
</package | /i> <Product.msi>
Установка или настройка продукта
/a <Product.msi>
Административная установка - установка продукта в сеть
/j<u|m> <Product.msi> [/t <список преобразований>] [/g <код_языка>]
Объявление о продукте: "m" - всем пользователям;
"u" - текущему пользователю
</uninstall | /x> <Product.msi | Код_продукта>
Отмена установки продукта
Параметры отображения
/quiet
Тихий режим, без взаимодействия с пользователем
/passive
Автоматический режим - только индикатор выполнения
/q[n|b|r|f]
Выбор уровня интерфейса пользователя
n - Без интерфейса
b - Основной интерфейс
r - Сокращенный интерфейс
f - Полный интерфейс (по умолчанию)
/help
Вывод справки по использованию
Параметры перезапуска
/norestart
Не перезапускать после завершения установки
/promptrestart
Запрашивать переустановку при необходимости
/forcerestart
Всегда запускать компьютер после завершения установки
Параметры ведения журнала
/l <файл_журнала>
i - сообщения о состоянии
w - сообщения об устранимых ошибках
e - все сообщения об ошибках
a - запуски действий
r - записи, специфические для действия
u - запросы пользователя
c - начальные параметры интерфейса пользователя
m - сведения о выходе из-за недостатка памяти или
неустранимой ошибки
o - сообщения о недостатке места на диске
p - свойства терминала
v - подробный вывод
x - дополнительная отладочная информация
+ - добавление в существующий файл журнала
! - сбрасывание каждой строки в журнал
* - заносить в журнал все сведения, кроме параметров "v" и "x" /log <файл_журнала>
Равнозначен /l* <файл_журнала>
Параметры обновления
/update <Update1.msp>[;Update2.msp]
Применение обновлений
/uninstall <Код_Guid_обновления>[;Update2.msp] /package <Product.msi | код_продукта>
Удаление обновлений продукта
Параметры восстановления
/f[p|e|c|m|s|o|d|a|u|v] <Product.msi | код_продукта>
Восстановление продукта
p - только при отсутствии файла
o - если файл отсутствует или установлена старая версия
(по умолчанию)
e - если файл отсутствует или установлена такая же или старая
версия
d - если файл отсутствует или установлена другая версия
c - если файл отсутствует или контрольная сумма не совпадает
с подсчитанным значением
a - вызывет переустановку всех файлов
u - все необходимые элементы реестра, специфические для
пользователя (по умолчанию)
m - все необходимые элементы реестра, специфические для
компьютера (по умолчанию)
s - все существующие ярлыки (по умолчанию)
v - запуск из источника с повторным кэшированием локальных
пакетов
Настройка общих свойств
[PROPERTY=PropertyValue]

Обратитесь к руководству разработчиков Windows (R) Installer за дополнительными сведениями по использованию командной строки.

(C) Корпорация Майкрософт. Все права защищены.
В некоторых частях программы использованы разработки Independent JPEG Group.


Дам свое краткое описание. Параметры режима:

/i - (англ. install) режим инсталляции/обслуживания. Например,

msiexec /i C:\testfile.msi

Установка testfile.msi в обычном режиме
Вместо пути к файлу можно указать GUID при запуске обслуживания

/x - режим деинсталляции (удаления). Например,

msiexec /x C:\testfile.msi

Удаление testfile.msi с подтверждением ("Вы действительно хотите отменить установку этого продукта?")
Вместо пути к файлу можно указать GUID

/f - (англ. fix) режим исправление.

msiexec /f C:\testfile.msi

Вместо пути к файлу можно указать GUID

/a - режим распаковки (административной установки)

msiexec /a C:\testfile.msi

Если так не выходит, то так:

msiexec /a c:\testfile.msi /qb TARGETDIR=c:\temp\test


Дополнительно к режиму /i (и не только :) ) могут быть применены параметры интерфейса (их надо указывать после имени MSI):
/qn - тихая установка
/qb - показ маленького окна "Windows Installer"
/qr - "сокращенный интерфейс" (я бы назвал его полным, но тихим)
Например,

msiexec /i C:\testfile.msi /qb

или

msiexec /i C:\testfile.msi /qr
.

Что такое GUID?
Это [i]глобальный уникальный идентификатор продукта. Смотреть можно в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. Внимание!!! Не все GUID - Windows Installer'ы. У MSI UninstallString будет msiexec /I{тут GUID}
К EXE-файлами, работающим по технологии Windows Installer (а распознаются они по окну Preparing to install... (Подготовка к установке...)), параметры могут применяться не всегда, да часто и ограниченно. Например, iTunes742Setup.exe "понял" параметры интерфейса, но не режима. Видимо, он передает MSI-шнику параметры так:
msiexec /i C:\путь_к_msi.msi %1
Вот данные о параметрах EXE-файла Advanced Installer (обычно имеет описание "This installer database contains the logic and data required to install имя программы")):
Standard command line switches
You can use all of the command line options that MSIExec accepts. The command line received by the EXE bootstrapper will be passed to MSIExec when launching the main MSI. This command line overrides the one specified in the "Install Options" from the Bootstrapper Page. If you need to specify the package location in the supplied command line, then you can use the // marker and the setup will replace this parameter with the actual path to the MSI package. If this marker is not specified in the command line, the setup will insert "/i path_to_msi" in the command line, which will automatically perform an installation. Example of valid command line options include:

"/q", "/log", "/a //", "/x // /log", etc.Proprietary command line switches
/extract <path>
Extracts the MSI contained by the EXE to the specified location. If the path contains spaces you must enclose it in quotes:

Example

Mypackage.exe /extract:"C:\My work"

This command will extract the Mypackage.msi file in the "My work" folder.

/? and /help

Both these commands will display a help dialog containing the command line options for the EXE setup.

/exenoui
Launches the EXE setup without UI.

/exebasicui
Launches the EXE setup with basic UI.

The UI level set using the above command line options will overwrite the default UI level specified when the package was built.

/listlangs
Lists the languages supported by the EXE setup.

/exelang <langId>
Launches the EXE setup using the specified language. This command line option will have effect only if the EXE setup was build with the language selection dialog

You can use both an UI level and /exelang command line options at the same time.
. Короче говоря:
/listlangs - список языков
/? - вопрос
/extract:папка - распаковка (работает только если в папке с EXE НЕТ msi-файла)
/q(буква) - см. выше
/i //, /x //, /f // - режимы
/i // /qn и прочие подобные - в пояснениях не нуждается :)
Вообще-то, данный тип EXE передает параметры msiexec'у, а // заменяет путь к MSI. Т.е. D:\setup.exe /i // /qn равно msiexec /i путь_к_msi /qn

Котяра
16-03-2008, 19:39
На мой взгляд (не ругайте если ошибаюсь :) ), моя тема достойна прикрепления. Т.к. инсталляторы MSI встречаются довольно часто.

YanTo
05-04-2008, 11:18
Котяра, а какой командой указать MSI-инсталятору на имеющийся конфиг-файл?
Живой пример:
Устанавливаю NOD32v3 командойmsiexec.exe /i "...путь...\NOD32v3.0.650.msi" /qb
Как указать инсталятору на файл mynod.xml?

Спасибо.

Wills
05-04-2008, 12:08
YanTo,
читай в этой теме Автоматическая установка NOD32!!! (http://forum.oszone.net/showthread.php?t=46305&highlight=NOD32)

Котяра
05-04-2008, 20:54
YanTo, параметры конфигурации NOD32 индивидуальны для него. В этой теме речь идет о параметрах, общих для ВСЕХ программ, использующих Windows Installer.

YanTo
06-04-2008, 11:12
Котяра, дык я не спрашиваю про параметры конфигураци для NOD32...
Я интересуюсь какой будет правильный синтаксис команды, чтобы можно было указать MSI-шному инсталятору использовать конфиг-файл.

Например, что-то типа такого
msiexec.exe /i "...путь...\install.msi" /qb parametr="...путь...\config.xml" Ну или как-нибудь так, должно же что-то быть... :)


Wills, это можно было и не писать...

Котяра
08-04-2008, 21:54
YanTo, файлы XML индивидуальны для NOD32!!! Конфигурация стандартного инсталлятора имеет расширение *.mst . А Ваш вопрос уже про параметры конфигурации для NOD32 », поэтому создайте тему в разделе Автоматическая установка приложений

YanTo
09-04-2008, 04:59
Хех, ё-моё.... :)
Котяра, забудем про NOD32, хорошо? Посмотрите внимательно, я не о нём спрашиваю. Если у стандартного msi-шного инсталятора стандартный же конфиг файл имеет расширение *.mst , хорошо, пусть будет так, я этого не знал (xml брал для примера).
Я прошу, если Вы знаете, подсказать какой будет правильный синтаксис команды, чтобы можно было указать MSI-шному инсталятору использовать конфиг-файл. » Пусть это будет config.mst :)
И, если не трудно, приведите, пожалуйста, пример по аналогии с шапкой темы.
Спасибо.

Vadikan
09-04-2008, 05:42
какой будет правильный синтаксис команды, чтобы можно было указать MSI-шному инсталятору использовать конфиг-файл. »
Для этого нужно использовать свойство TRANSFORMS и указывать путь к файлу преобразования. Например,

msiexec.exe /i install.msi TRANSFORMS=install.mst

http://msdn2.microsoft.com/en-us/library/aa372085(VS.85).aspx

korsar77
18-06-2009, 00:14
Vadikan, подскажите что нужно прописать для исправления и запуска службы windows installer

Vadikan
18-06-2009, 01:08
что нужно прописать для исправления и запуска службы windows installer »
Вам сюда Microsoft Windows Installer (Установщик Windows) .:[все вопросы]:. (http://forum.oszone.net/thread-54281.html)

korsar77
18-06-2009, 23:44
Vadikan, Спасибо за помощь решение для меня запуска службы :msiexec /unreg
msiexec /regserver -в безопасном режиме

zeroua
31-01-2011, 06:23
msiexec /a c:\testfile.msi /qb TARGETDIR=c:\temp\test », что нужно в TARGETDIR прописать чтобы установка произошла в тот же каталог с которого происходил запуск *.msi пакета?

volk1234
03-02-2011, 01:37
Я когда то статью набросал, там есть пример
http://oszone.net/9008
ветка
http://forum.oszone.net/thread-131710.html

Mishanya3624
15-08-2014, 12:11
почему кода я пишу:
setup.msi /qn /norestart
он у меня один фиг перезапускает пк?

onis
09-09-2016, 19:28
Здравствуйте подскажите если в msi есть Украинский и Русский язык как сделать нужного языка




© OSzone.net 2001-2012