PDA

Показать полную графическую версию : Msiexec - список ключей и свойств


Страниц : [1] 2

volk1234
11-02-2009, 20:15
Статья по теме - Использование ключей и свойств установщика Windows для автоматизаци (http://oszone.net/9008)

Предлагаю собрать здесь список ключей для msiexec в коммандной строке которые незадокументированы в справке (http://technet.microsoft.com/ru-ru/library/cc759262.aspx)


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

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


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

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

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

Muzman
12-02-2009, 18:56
А чего это вы полезли в справку на technet'е? msiexec является дефолтным интерпретатором для msi пакетов, но не единственным. Поэтому, более корректным будет вопрос по нахождению всех параметров для Windows Installer.
Все параметры для него можно найти тут (http://msdn.microsoft.com/en-us/library/cc185688(VS.85).aspx).
Мануал есть тут (http://www.appdeploy.com/articles/Working_with_Windows_Installer.pdf).
Если есть более подробные вопросы, спрашивайте. Возможно я знаю ответ на них.

Vadikan
12-02-2009, 20:04
Muzman, на technet указаны параметры командной строки для msiexec - это стандартные параметры для установки пакетов установщика Windows. А уж какие свойства (properties) (http://msdn.microsoft.com/en-us/library/aa370905(VS.85).aspx) заложил создатель пакета, зависит только от него. Другими словами, использование этих свойств имеет смысл только в том случае, если они заложены в пакет и работают. А у Msiexec работают все параметры командной строки.

Muzman
12-02-2009, 20:52
С помощью параметров коммандной строки можно поменять практически все параметры БД msi. И эти параметры не только для msiexec'а но и для других интерпретаторов (например я иногда ещё встречаю av_exec, хотя последнее время все реже и реже). И конешно это неудобно делать с помощью командной строки. Намного удобнее это делать с помощью mst файлика, который можно создать любым упаковщиком/перепаковщиком (я пользуюсь WISE Studio).
И к сожалению technet не является лучшей помощью в освоении Windows Installer'а и иже с ним же msiexec'а. Намного больше информации можно найти тут (http://www.appdeploy.com/) (особенно если искать по нужным пакетам и форуму). А общая информация (и о том же msiexec'е) есть на MSDN'е (точнее (http://msdn.microsoft.com/en-us/library/aa367988(VS.85).aspx)).
Поэтому никаких недокументированных возможностей, по сути нет.

Vadikan
12-02-2009, 22:21
С помощью параметров коммандной строки можно поменять практически все параметры БД msi. »
Параметров командной строки чего? msiexec или свойств установщика Windows?
И к сожалению technet не является лучшей помощью в освоении Windows Installer'а и иже с ним же msiexec'а »
Да никто его тут не осваивает - форум не по созданию MSI-пакетов, а по автоустановке приложений. 90% нужд автоматической установки MSI - это /qn и /qb. Намного больше информации можно найти тут (особенно если искать по нужным пакетам и форуму). »
На appsdeploy могут быть указаны особенные свойства пакета того или иного приложения. Но тихая установка - это все равно /qn или /qb. А по каждому приложению есть отдельная тема.

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

volk1234
13-02-2009, 11:28
Просто хотелось бы собрать общие для большинства приложений ключи.
Например Targetdir очень иногда помогает.

volk1234
01-03-2009, 23:17
Опубликовал статью по теме ветки. Спасибо Vadikan за редакторскую правку статьи !!!!

Guman
09-12-2010, 16:33
а можно ли с помошью команд изменить путь ярлыка в пакете мси???

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

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

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

volk1234
06-02-2011, 01:18
команда работает как обычно. Просто все зависит от пути который вы ей укажите.
Т.е. можно указать
TARGETDIR="C:\Temp"
можно
TARGETDIR="%temp%"
а можно (при условии, что команда в бат файле и батфайл запущен из C:\Temp)
TARGETDIR="%~dp0\"
Соответственно уровень ниже дописать имя папки, уровень выше кажись
..\

zeroua
06-02-2011, 23:39
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
Ну да, собственно почему я и занялся изысканиями и даже небольшую статью набросал - мой "универсальный" конструктор аддона не был универсальным, а Properties придают ему гибкость. В принципе можно обойтись даже без MST-файлов завдав все параметры в ком.строке. И любой сможет ее изменить под себя легко.

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

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

Iska
18-09-2012, 00:06
Проверьте, есть ли в пакете свойство TARGETDIR (http://msdn.microsoft.com/en-us/library/windows/desktop/aa372064(v=vs.85).aspx). Если есть — используйте его.

бУРов
18-09-2012, 00:45
Да, это проходит. Я вообще-то думал, что это параметр для временной папки.
Проходит, но только если запускать из командной строки.
Из BAT-файла не работает.
А если, к примеру, убрать "тихую" установку, получаю такое сообщение об ошибке:
[Window Title]
Установщик Windows

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

[ОК]

Iska
18-09-2012, 01:55
Из BAT-файла не работает. »
Работает.

бУРов
18-09-2012, 06:18
Работает. »У меня не работает. На десктопе и ноуте пробовал. Подскажите, может у меня не правильно запускается?

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

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

Iska
18-09-2012, 09:25
Для "тихой" установки:
<пакет>.MSI / Q TARGETDIR=c\tmp »
1. Пробел внутри параметра.
2. Пропущено двоеточие.

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




© OSzone.net 2001-2012