Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка приложений (http://forum.oszone.net/forumdisplay.php?f=61)
-   -   Msiexec - список ключей и свойств (http://forum.oszone.net/showthread.php?t=131710)

volk1234 11-02-2009 20:15 1035745

Msiexec - список ключей и свойств
 
Статья по теме - Использование ключей и свойств установщика Windows для автоматизаци

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


Некоторые невыясненные вопросы:
1. Например свойство Transforms равнозначно ли ключу /t ??

Или например ALLUSERS=1 равнозначен обьявлению пакета - /jm ??


2. Вобщем то, интересно максимальное количество ключей которое примет msiexec из коммандной строки, и побольше новых полезных ключей.

================================
Ключи:
см. в статье в начале шапки. Новые и полезные для автоустановки будут добавлятся сюда.

Синтаксис:
Код:

msiexec.exe /i (/a) Имяпакета.msi Свойства /qb(n/r/f)

Muzman 12-02-2009 18:56 1036622

А чего это вы полезли в справку на technet'е? msiexec является дефолтным интерпретатором для msi пакетов, но не единственным. Поэтому, более корректным будет вопрос по нахождению всех параметров для Windows Installer.
Все параметры для него можно найти тут.
Мануал есть тут.
Если есть более подробные вопросы, спрашивайте. Возможно я знаю ответ на них.

Vadikan 12-02-2009 20:04 1036692

Muzman, на technet указаны параметры командной строки для msiexec - это стандартные параметры для установки пакетов установщика Windows. А уж какие свойства (properties) заложил создатель пакета, зависит только от него. Другими словами, использование этих свойств имеет смысл только в том случае, если они заложены в пакет и работают. А у Msiexec работают все параметры командной строки.

Muzman 12-02-2009 20:52 1036747

С помощью параметров коммандной строки можно поменять практически все параметры БД msi. И эти параметры не только для msiexec'а но и для других интерпретаторов (например я иногда ещё встречаю av_exec, хотя последнее время все реже и реже). И конешно это неудобно делать с помощью командной строки. Намного удобнее это делать с помощью mst файлика, который можно создать любым упаковщиком/перепаковщиком (я пользуюсь WISE Studio).
И к сожалению technet не является лучшей помощью в освоении Windows Installer'а и иже с ним же msiexec'а. Намного больше информации можно найти тут (особенно если искать по нужным пакетам и форуму). А общая информация (и о том же msiexec'е) есть на MSDN'е (точнее).
Поэтому никаких недокументированных возможностей, по сути нет.

Vadikan 12-02-2009 22:21 1036836

Цитата:

Цитата Muzman
С помощью параметров коммандной строки можно поменять практически все параметры БД msi. »

Параметров командной строки чего? msiexec или свойств установщика Windows?
Цитата:

Цитата Muzman
И к сожалению technet не является лучшей помощью в освоении Windows Installer'а и иже с ним же msiexec'а »

Да никто его тут не осваивает - форум не по созданию MSI-пакетов, а по автоустановке приложений. 90% нужд автоматической установки MSI - это /qn и /qb.
Цитата:

Цитата Muzman
Намного больше информации можно найти тут (особенно если искать по нужным пакетам и форуму). »

На appsdeploy могут быть указаны особенные свойства пакета того или иного приложения. Но тихая установка - это все равно /qn или /qb. А по каждому приложению есть отдельная тема.

Muzman 13-02-2009 00:09 1036914

Цитата:

С помощью параметров коммандной строки можно поменять практически все параметры БД msi.
Т.е. с помощью Properties которые существуют в Windows Installer.
Думаю что если добавить ALLUSER=1/2 то это покроет 98% всех вопросов.

volk1234 13-02-2009 11:28 1037212

Просто хотелось бы собрать общие для большинства приложений ключи.
Например Targetdir очень иногда помогает.

volk1234 01-03-2009 23:17 1052384

Опубликовал статью по теме ветки. Спасибо Vadikan за редакторскую правку статьи !!!!

Guman 09-12-2010 16:33 1561948

а можно ли с помошью команд изменить путь ярлыка в пакете мси???

zeroua 05-02-2011 23:38 1605588

volk1234, я немного почитал но так и не совсем понял как точно работает команда TARGETDIR. Сейчас я делаю приблизительно так:

mkdir "%temp%\nod32
msiexec /a nod32.msi /qn TARGETDIR="%TEMP%\nod32"

Но мне бы хотелось чтобы TARGETDIR была папка на уровень выше или ниже папки в которой лежит *.msi пакет

volk1234 06-02-2011 01:18 1605642

команда работает как обычно. Просто все зависит от пути который вы ей укажите.
Т.е. можно указать
Код:

TARGETDIR="C:\Temp"
можно
Код:

TARGETDIR="%temp%"
а можно (при условии, что команда в бат файле и батфайл запущен из C:\Temp)
Код:

TARGETDIR="%~dp0\"
Соответственно уровень ниже дописать имя папки, уровень выше кажись
Код:

..\

zeroua 06-02-2011 23:39 1606344

volk1234, грубо говоря я могу использовать все %~ модификаторы

Ага тут я разобрался теперь все понятно:

Код:

ren *.msi nod32.msi
MD "%~dp0\nod32
msiexec /a nod32.msi /qn TARGETDIR="%~dp0\nod32"

З.Ы. если использовать командный файл с таким содержанием,
Код:

@echo on
echo %~dpn0 ::(возвратит значение именем диска, пути и имени файла без расширения. )
ren *.msi %~n0.msi
::MD %~dpn0
::msiexec /a nod32.msi /qn TARGETDIR="%~dpn0"

то вполне можно создать универсальный конструктор для создания простейших аддонов из *.msi пакетов.

volk1234 08-02-2011 01:04 1607287

Ну да, собственно почему я и занялся изысканиями и даже небольшую статью набросал - мой "универсальный" конструктор аддона не был универсальным, а Properties придают ему гибкость. В принципе можно обойтись даже без MST-файлов завдав все параметры в ком.строке. И любой сможет ее изменить под себя легко.

zeroua 08-02-2011 09:30 1607432

volk1234, моя универсальность пока заключается - как я называю *.cmd файл, с таким названием будет и аддон, грубо говоря. Ну скажем у меня есть файл QuakeLiveNP_401.msi, называю *.cmd QLive и получаю административную установку данного файла в формате 8.3.

бУРов 17-09-2012 23:59 1990595

Существует ли способ передать установщику папку, куда будет идти установка)? Для режима "тихой" установки (/Q). Вызываю из BAT-файла.

Iska 18-09-2012 00:06 1990601

Проверьте, есть ли в пакете свойство TARGETDIR. Если есть — используйте его.

бУРов 18-09-2012 00:45 1990614

Да, это проходит. Я вообще-то думал, что это параметр для временной папки.
Проходит, но только если запускать из командной строки.
Из BAT-файла не работает.
А если, к примеру, убрать "тихую" установку, получаю такое сообщение об ошибке:
Цитата:

[Window Title]
Установщик Windows

[Main Instruction]
Не удалось получить доступ к службе установщика Windows Installer. Возможно, не установлен Windows Installer. Обратитесь за помощью в службу поддержки.

[ОК]

Iska 18-09-2012 01:55 1990627

Цитата:

Цитата бУРов
Из BAT-файла не работает. »

Работает.

бУРов 18-09-2012 06:18 1990647

Цитата:

Цитата Iska
Работает. »

У меня не работает. На десктопе и ноуте пробовал. Подскажите, может у меня не правильно запускается?

Для "тихой" установки:
<пакет>.MSI / Q TARGETDIR=c\tmp

Или просто
<пакет>.MSI
(если таким образом, то получаю вышеприведенное сообщение-диалог)

Iska 18-09-2012 09:25 1990686

Цитата:

Цитата бУРов
Для "тихой" установки:
<пакет>.MSI / Q TARGETDIR=c\tmp »

1. Пробел внутри параметра.
2. Пропущено двоеточие.

Код:

<пакет>.MSI /Q TARGETDIR=c:\tmp

бУРов 18-09-2012 11:34 1990759

Да это я здесь, на форуме ошибся.
Так ведь даже если просто пакет пускаю, получаю сообщение об ошибке.

В службах msiexec запускается с ключем "/V". Это нормально? Что это за ключч?

Счас вирусов поищу (АВЗ попробую)

Iska 18-09-2012 11:58 1990772

Цитата:

Цитата бУРов
В службах msiexec запускается с ключем "/V". Это нормально? Что это за ключч? »

Вы с InstallShield'ом не путаете? Приведите скриншот.

бУРов 18-09-2012 13:39 1990821

Цитата:

Цитата Iska
Приведите скриншот »

Попробовал уже на 3-м компе - поведение такое же. Попробовал другой MSI-пакет (7-zip) -- одинаково.

Vitek 07 18-09-2012 15:41 1990877

Цитата:

Цитата бУРов
В службах msiexec запускается с ключем "/V". Это нормально? Что это за ключч? »

абсолютно нормально, у всех так же.

gora 18-09-2012 16:19 1990895

Цитата:

Цитата бУРов
Проходит, но только если запускать из командной строки.
Из BAT-файла не работает. »

Пробовали запустить батник "от имени администратора" ?

бУРов 18-09-2012 16:28 1990899

Да, пробовал. Все так же. Сейчас ищу bat-файлы чтобы пример запуска найти.

Iska 18-09-2012 19:07 1990991

бУРов, я не доглядел, что Вы писали про службу.

Цитата:

Цитата бУРов
Сейчас ищу bat-файлы чтобы пример запуска найти. »

Да. Выкладывайте текст пакетного файла.

бУРов 18-09-2012 20:33 1991042

Фу! Заработало. MSI-пакет кликал из Тотал коммандера. Только когда тотал запустил как администартор, все сработало. Еще отключение UAC помогает.

бУРов 28-09-2012 10:44 1995996

Коды возврата msiexec
 
Где можно найти коды возврата msiexec.
Например, если запрошено удаление

msiexec /x /i <Пакет>.msi

и нажата кнопка [Отмена]

Как это выловить

Iska 28-09-2012 13:58 1996104

В документации:

Command-Line Options
Standard Installer Command-Line Options

Но, полагаю, Ваш случай таков: Msiexec.exe and %errorlevel% - Ars Technica OpenForum.

бУРов 28-09-2012 14:43 1996130

Не работает ключ Setup.exe /v
 
У меня не отрабатывает команда:
set AppPath=c:\tmp
Setup.exe /s /v"/qn INSTALLDIR=%AppPath"
Выскакивает окно справки.
Пробовал и TARGETDIR.

Это у всех так?

Сам msi запускается

msiexec /q /i TranzitSetup.MSI TARGETDIR=%AppPath%

бУРов 28-09-2012 16:47 1996193

Нужно заперетить создание точки восстановления
 
Я делаю msi-пакет для установки ПО. Соответственно, приходится многократно запускать для целей отладки. Только теперь всегда автоматом создаются точки восстановления.
А можно такое поведение установщика запретить?

Iska 28-09-2012 17:22 1996227

Пропущен «%»
Код:

Setup.exe /s /v"/qn INSTALLDIR=%AppPath%"
Чтобы узнать, какую переменную следует (и можно ли) использовать — извлеките пакет *.msi из инсталляции и посмотрите вовнутрь, например, при помощи ORCA.
Цитата:

Цитата бУРов
Сам msi запускается
msiexec /q /i TranzitSetup.MSI TARGETDIR=%AppPath% »

Тогда в чём проблема? На кой ляд Вам сдался *.exe?

Iska 28-09-2012 18:39 1996275

Попробуйте посмотреть здесь: windows - Prevent System Restore Point from being created during Install - Super User.

бУРов 02-10-2012 14:26 1998360

По этой ссылке предлагают отключать "Теневое копирование тома". Это помогает.


Время: 14:03.

Время: 14:03.
© OSzone.net 2001-