( Примечание : я опубликовал вариант этого ответа на обнаружение параметров MSI для автоматической установки вопрос, который вы упомянули.)
Есть lessmsi , отличный инструмент, который наверняка сработает, если вы захотите использовать графический интерфейс и провести какое-то ручное исследование.
Вы можете попробовать следующую команду:
lessmsi l -tProperty <msi_name>
... Но вряд ли в вышеприведенном будет все, что вы ищете.
Один из способов по существу гарантировать, что вы получите все возможные свойства, - это фактически выполнить установку, восстановление или удаление с помощью файла MSI и зарегистрировать процесс, как указано в ответ Джона Хиса .
Если вы хотите, чтобы меньше текста просеивалось в файле журнала, вы можете установить настройки журнала, чтобы регистрировать только свойства:
<msi_name> /lp! <msi_property_logfile>
или
msiexec /lp! <msi_property_logfile> /i <msi_name>
Я предпочитаю метод, который обходит необходимость установки / удаления / ремонта через «извлечение». Преимущества этого метода по сравнению с lessmsi заключаются в том, что для него не требуется сторонняя утилита (т. Е. lessmsi ) и не требуется возиться с какими-либо установками. Вам необходимо иметь достаточно места на диске для фактической установки программы (и, возможно, для обеспечения дополнительной безопасности). Тогда вы можете сделать что-то вроде:
msiexec /a <msi_name> /lp! <msi_property_logfile> TARGETDIR=<absolute_path_to_extract_to>
Обратите внимание, что <absolute_path_to_extract_to>
может указывать на несуществующий каталог (команда создаст необходимые каталоги или потерпит неудачу).
Если по какой-либо причине вы ненавидите пользовательский интерфейс установки, вы можете добавить опцию /qr
, которая «уменьшит» и, возможно, исключит пользовательский интерфейс без ущерба для процесса регистрации свойств. Однако, будьте осторожны - если вы пойдете «ниже», чем сокращенный пользовательский интерфейс (то есть /qb
| /passive
или /qn
| /quiet
), в вашем <msi_property_logfile>
могут отсутствовать некоторые свойства.
Следующая команда может эффективно создать файл журнала свойств для каждого MSI-файла в некотором каталоге (используйте DIR /B
вместо DIR /B/S
, чтобы не возвращать подкаталоги; удалите команду RD
, если вы хотите сохранить извлеченные файлы) :
cmd /C "FOR /F delims^=^| %G IN ('DIR /B/S "%DirToSearch%\*.msi"') DO msiexec /a "%G" /qr /lp! "%~nG_log.txt" TARGETDIR="%~dpnG_extract" && RD /S/Q "%~dpnG_extract""
и если вы хотите запустить его в PowerShell по какой-либо причине, используйте команду ниже:
cmd /C "FOR /F delims^=^| %G IN ('DIR /B/S ""%DirToSearch%\*.msi""') DO msiexec /a ""%G"" /qr /lp! ""%~nG_log.txt"" TARGETDIR=""%~dpnG_extract"" && RD /S/Q ""%~dpnG_extract"""
Как только процесс завершится, вы просто откроете файл журнала и отметите строки, начинающиеся с Property(S):
/ Property(C):
, как упоминал Джон Хиз.
Вообще говоря, параметры / свойства, которые могут быть установлены для установки, регистрируются во ВСЕХ CAPS; например, ALLUSERS
можно установить ALLUSERS=1
, чтобы установка была для всех пользователей.