如何在InstallShield Suite/Advanced UI安装日志中隐藏输入的密码值
InstallShield Suite/Advanced UI项目敏感属性日志隐藏解决方案
InstallShield 2015 Premier版本原生支持Suite/Advanced UI项目的敏感属性隐藏功能,可完全实现类似MSI项目MsiHiddenProperties的效果,具体配置步骤如下:
1. 解决属性变更时的明文日志问题
- 打开目标Suite/Advanced UI项目,进入「行为和逻辑 > 属性管理器」
- 找到需要隐藏的敏感属性(如示例中的
ServiceAccountPassword),右键打开属性配置窗口 - 勾选隐藏选项并保存配置
- 配置完成后,Suite引擎在debuglog中输出该属性的所有变更记录时,会自动用
*****替换实际值,不会出现逐字符输入的明文内容
2. 解决传递到MSI子包命令行的明文日志问题
- 先在对应的MSI子包项目中,将接收密码的属性(如示例中的
SERVICEPASSWORD)添加到MsiHiddenProperties列表中,避免MSI自身的执行日志输出明文 - 回到Suite项目的子包配置页,在「命令行」参数配置中,直接引用已经标记为隐藏的Suite属性作为参数值
- 因Suite侧属性已标记为隐藏,日志输出子包最终命令行时,会自动将该属性的实际值替换为
*****,不会输出明文
配置后的日志效果示例:
配置完成后原明文日志会自动替换为如下形式:
10-11-2021[10:58:25 AM]: Engine: property 'ServiceAccountPassword' value now '*****' 10-11-2021[10:59:27 AM]: Final command line: REBOOT=ReallySuppress TRANSFORMS=1033.mst SERVICEPASSWORD="*****" <rest of command line removed>
注意事项
- 不要在自定义脚本中主动调用日志打印接口输出敏感属性的实际值,否则仍会出现明文
- 如果需要通过脚本动态修改敏感属性的值,直接对已标记为隐藏的属性赋值即可,赋值过程不会被日志记录明文
内容的提问来源于stack exchange,提问作者Kahuna
相关产品推荐
相关产品推荐

