Получение общественных собственностей из файла MSI

Не по умолчанию не, Вам были бы нужны службы кластеров для этого.

То, что можно сделать, если диапазоны являются достаточно большими, должно выполнить DHCP на обоих серверах и просто разделить объемы через обе машины.

12
задан 1 May 2012 в 16:09
5 ответов

Учитывая, что файл MSI хранит общедоступные свойства во внутренней базе данных, вы можете просто запросить их, используя VBScript и SQL.

Вот пример сценария , который вернет все сохраненные свойства в файле MSI. Для определения общедоступных свойств принято использовать заглавные буквы, поэтому их обычно можно идентифицировать.

1
ответ дан 2 December 2019 в 21:39

Lessmsi предоставляет командную строку, а также интерактивное приложение для получения любого атрибута из файла .msi.

В интерактивном режиме откройте файл .msi, затем перейдите в Табличное представление и выберите или введите «Свойство». Однако, хотя это дает имена свойств, оно не дает действительных значений для указанного свойства. (Или я не нашел подходящего места для поиска.)

Командная строка для вывода таблицы свойств на консоль (к сожалению, не может захватываются с помощью простого > output.csv перенаправления)

lessmsi l -t Property ...\path\to\setup.msi
8
ответ дан 2 December 2019 в 21:39

Я думаю, что сейчас, вероятно, лучший способ сделать это - использовать powershell. Вот сценарий, который отлично справляется со своей задачей: https://gallery.technet.microsoft.com/scriptcenter/Get-MsiDatabaseProperties-09d9c87c

-1
ответ дан 2 December 2019 в 21:39

Я делаю это сейчас с помощью модуля Carbon Powershell. Чтобы установить модуль, введите:

Install-Module -Name 'Carbon' -AllowClobber

Затем просто

msi your_msi_path.msi

Пример:

msi putty-64bit-0.70-installer.msi

ProductName                 ProductVersion Manufacturer ProductCode                         

-----------                 -------------- ------------ -----------                         

PuTTY release 0.70 (64-bit) 0.70.0.0       Simon Tatham 45b3032f-22cc-40cd-9e97-4da7095fa5a2
0
ответ дан 2 December 2019 в 21:39

lessmsi - отличный инструмент, который, безусловно, работает здесь, если вы хотите открыть его графический интерфейс и провести небольшое расследование вручную. Однако я скажу, что следующая команда не представляет достоверно все свойства:

lessmsi l -t Property <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>

Обратите внимание, что может указывать на несуществующий каталог (команда создаст необходимые каталоги или завершится ошибкой).

Если вы ненавидите пользовательский интерфейс установки по какой-либо причине, вы можете добавить параметр / qr , который «сократит» и, возможно, удалит пользовательский интерфейс, не нарушая процесс регистрации свойств. Однако будьте осторожны - если вы опускаетесь «ниже», чем сокращенный пользовательский интерфейс (а именно / qb | / passive или / qn | / quiet ), в вашем могут отсутствовать некоторые свойства.

1
ответ дан 2 December 2019 в 21:39

Теги

Похожие вопросы