2016-07-27 3 views
0

Я установил один установщик с помощью InstallShield. Я написал несколько пользовательских действий.
При установке этого установщика журналы (этапы выполнения) этих CustomActions будут распечатаны в файле журнала. Но я хочу предотвратить запись некоторых данных CustomActions (шагов выполнения) в файл журнала. Я не хочу, чтобы пользователь знал, что именно выполняет пользовательское действие для обеспечения безопасности.Как предотвратить выполнение шагов выполнения пользовательского действия в InstallShield?

Так как я могу помешать некоторым CustmAction регистрировать свои шаги выполнения в файлах журналов? Я хочу, чтобы предотвратить все журналы CustomAction.
Или мы можем приостановить ведение журнала в течение некоторого времени во время установки в InstallShield?

ответ

1

Это сделало бы интересный запрос функции! Возможно, InstallShield можно научить уважать ценность (теоретического) ISSuppressLogging свойства, которое не является пустым во время немедленного действия или когда запланировано отложенное действие. Но это не доступно сейчас и потребует изменений на основе кода для пользовательских действий InstallShield.

Назад к настоящему времени. InstallShield не предлагает опцию, чтобы подавить свои лесозаготовительных заявления, по крайней мере, за несколько сценариев, которые он явно пытающейся поддержки, так что вы остались со следующими параметрами, которые, вероятно, не покрывают свои потребности:

  • использование MsiHiddenProperties, чтобы явно запретить ведение журнала значений определенного свойства. Обратите внимание, что несколько действий будут форматировать строки и при этом потерять информацию о том, какие свойства содержат результирующее значение, поэтому не соблюдайте MsiHiddenProperties.

  • Используйте флажок типа пользовательского действия 0x2000/8192 Custom Action Hidden Target Option, чтобы предотвратить регистрацию значения свойства CustomActionData объекта отложенного действия. Опять же, это не распространяется на какие-либо дальнейшие протоколирования, основанные на значениях, которые вызывают пользовательские действия из этого свойства. Обратите внимание, что вы должны добавить (технически побитовое ИЛИ) значение 8192 к существующему значению в столбце «Тип» таблицы CustomAction; другие биты этого значения содержат важную информацию, например, ее base type и ее execution options.

    (см связанный Preventing Confidential Information from Being Written into the Log File для еще несколько предложений по этой линии, ни один из которых поможет здесь.)

  • Выполнить пользовательское действие с ControlEvent. Это немного дикий и определенно нецелесообразен для большинства применений, так как вы, вероятно, хотите скрыть детали ведения журнала от элементов, которые изменяют систему и должны работать с повышенными привилегиями. Но если это не так, возникает ошибка в DoAction control event, которая препятствует тому, чтобы все сообщения журнала поступали в журнал.

Как общий комментарий, я часто вижу этот запрос в отношении пользовательских действий, которые хранят строки в виде обычного текста в другом файле. В таких случаях я не совсем понимаю, почему копия строки журнала должна быть закрыта. Если данные особенно чувствительны, может быть лучше каким-то образом зашифровать его значение и сохранить только зашифрованное значение. Затем, возможно, с помощью MsiHiddenProperties и скрытого целевого флага, как описано в марке, журнал будет содержать только зашифрованное значение.

+0

У меня также проблема с CustomActionData. Поэтому я попробовал ваше предложение и установил значение типа CusstomAction 8192. Но я получаю сообщение об ошибке «Ошибка 2717.Bad действие или ошибка при вызове пользовательского действия» –

+0

Извините, но я не понял. Где добавить именно это значение 8192? как это сделать? –

+0

Хорошо, круто !!это работа для отложенного CA. Но все же моя цель - скрыть журнал IsXMLInstall CustomAction ... У вас есть другое решение/обходное решение для этого? –