我遇到过这种情况,许多用户可以提交“setup.exe”以部署到我们所有的用户工作站上。我们使用 SCCM 来执行设置。我们希望这些 setup.exe 能够静默执行并带有日志记录。我们不能指望用户提供这些信息(这是一项要求)。
我现在的想法是,如果我们能够弄清楚创建 EXE 的安装工具是什么(Install Shield、WISE、WIX 等...),我们就可以对参数做出合理的猜测。
答案1
通过在 setup.exe 中搜索文本间接实现,如下所示:
- InstallShield:powershell 命令:
strings.exe .\AcrobatProfessional_7.0_EN\setup.exe | select-string "InstallShield"
如果 Setup.exe 是由“Installshield”创建的,则上面的命令可能会找到如下文本:“此安装程序是使用 InstallShield Developer 的 BETA 版本创建的”
- Inno:powershell 命令:
strings.exe .\AcapelaTexttoSpeechClient_8.2.5.3_EN\setup.exe | select-string "inno"
如果 Setup.exe 是由“Inno Setup”创建的,那么上面的命令可能会找到这样的文本:“此安装是使用 Inno Setup 构建的。”
- 明智:powershell 命令:
strings.exe .\AcapelaTexttoSpeechClient_8.2.5.3_EN\setup.exe | select-string "InstallAware"
如果 Setup.exe 是由“Wise Setup”创建的,则上述命令可能会找到如下文本:“此安装是使用 InstallAware 构建的:http://www.installaware.com“
cmdled select-string 的参数 -pattern 接受字符串数组,因此该命令可以适用于所有测试,如下所示:strings.exe'...path to exe'| Select-String -Pattern @("InstallAware","inno","InstallShield")
字符串.exe -> (https://docs.microsoft.com/en-us/sysinternals/downloads/strings)