2016-07-27 86 views
0

我已經使用InstallShield做了一個安裝程序。我已經寫了一些自定義操作。
安裝此安裝程序時,這些CustomActions的日誌(執行步驟)將打印在日誌文件中。但我想阻止將一些CustomActions的數據(執行步驟)記錄到日誌文件中。我不想讓用戶知道自定義操作爲安全目的做了什麼。如何防止在InstallShield中記錄自定義操作的執行步驟?

那麼我如何防止一些CustmAction將其執行步驟記錄到日誌文件中?我想防止整個CustomAction的日誌。
或者我們可以在安裝InstallShield的同時暫停一段時間的日誌記錄嗎?

回答

1

這將提出一個有趣的功能請求!也許可以教InstallShield尊重立即操作時或者計劃推遲操作時非空的(理論上)屬性的價值。但目前尚不可用,並且需要對InstallShield的自定義操作進行基於代碼的更改。

回到現在。 InstallShield不會提供任何選項來抑制其日誌報表,至少超過了幾個方案,它明確地試圖支持,所以你留下了以下選項,可能不包括你的需求:

  • 使用MsiHiddenProperties明確禁止記錄特定屬性的值。請注意,一些操作會對字符串進行格式設置,並因此失去跟蹤哪些屬性包含結果值的情況,因此不要考慮MsiHiddenProperties

  • 例如,使用自定義動作類型標誌0x2000/8192 Custom Action Hidden Target Option來防止記錄延遲動作的CustomActionData屬性的值。同樣,這不會傳播到任何基於自定義操作從此屬性提取的值的進一步日誌記錄。請注意,您必須將8192的值(技術上按位或)添加到CustomAction表的Type列中的現有值;該值的其他位也包含重要信息,例如其base type及其execution options

    (參見沿着這條線的一些更多的建議,其中沒有將幫助這裏的鏈接Preventing Confidential Information from Being Written into the Log File。)

  • 運行從ControlEvent資料自定義操作。這個有點荒謬,對於大多數用途來說絕對是不切實際的,因爲您可能希望隱藏來自修改系統的項目的日誌記錄細節,並且需要使用提升的權限運行。但是如果情況並非如此,那麼DoAction control event中的一個怪癖恰巧會阻止所有日誌消息進入日誌。

作爲一般性評論,我經常看到這個請求關於在另一個文件中以純文本存儲字符串的自定義動作。在這些情況下,我很不清楚爲什麼日誌文件的字符串副本必須被遮蓋。如果數據特別敏感,最好以某種方式加密其值,並僅存儲加密值。然後,可能在MsiHiddenProperties和項目符號中描述的隱藏目標標誌的幫助下,日誌將只包含加密值。

+0

我也有CustomActionData問題。所以我嘗試了你的建議並設置了CusstomAction類型值8192.但是我收到了錯誤「Error 2717.Bad action condition or error calling custom action」 –

+0

對不起,但我沒有得到它。在哪裏添加這個8192值?如何完全做到這一點? –

+0

好酷!它是推遲CA的工作。但我的目標仍然是隱藏IsXMLInstall CustomAction的日誌...你有沒有其他解決方案/解決方法? –

相關問題