Котяра
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
Пакеты 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