简答
UPDATE: 这是你自己的套房吗?如果是这样,您也许可以改进套件设置中指定的静默运行配置,以允许每个嵌入式设置在静默模式下正确运行。
您用于静默安装的开关是正确的,但我不会尝试静默运行整个套件,而是尝试:
将套件项目 EXE 文件中的嵌入式设置和组件提取到磁盘位置(详细信息如下)。
使用您的部署系统(在您的情况下是 SCCM)按照您自己的顺序安装所需的组件,同时消除 SOE 上已有的任何不必要的运行时 - 例如 Visual C++ 运行时等...
为了从套件 setup.exe(或等效的有意义的名称,例如InstallShield2018Premier.exe
)运行此命令行:
您必须指定一个输出位置,从套件 EXE 中提取的内容将放在那里,并且关键地它还会将所有要从 Internet 下载的组件下载到暂存文件夹。
从 Internet 下载组件的功能与通过 SCCM 等部署系统进行的企业部署不兼容 - 对于通过 SCCM 运行的 EXE,任何访问 Internet 的尝试都将失败。
此 Internet 下载问题很可能是您遇到的问题,但如果没有正确的日志文件,则无法判断。您是否通过运行套件创建了正确的日志文件/log
switch?
请在此处查看套件项目的可用命令行开关的完整列表:高级 UI 和 Suite/Advanced UI Setup.exe 命令行参数.
现在提取的嵌入式设置可以有多种类型,每种类型都有自己的静默安装方式,具体取决于它们所采用的技术。详细信息如下。
更多细节
下面的内容变得太长了 - 我相信上述信息应该足以完成您的情况的工作,但我将保留下面的内容,以防它有帮助。也许以后对其他人有用:
什么是setup.exe?
仅供记录:setup.exe
文件可以是很多不同的东西。这里有一些关于它的观察:如何使用 powershell 运行安装程序?它可以是 Installshield 安装程序或套件、高级安装程序安装程序或套件、来自“任何供应商”的专有安装文件、自解压存档(可能基于 zip)、WiX Burn 捆绑包、Inno 安装程序 - 或任意数量的其他类型的可执行文件通常由某种部署工具创建,但它们也可以是完全专有的,本质上只是常规的Windows 可移植可执行文件.
Installshield套件EXE文件
Installshield Suite Projects 能够按顺序安装多个不同类型的安装程序。 MSI 文件、旧版安装程序、自定义运行时安装程序等...
套房被包裹在setup.exe
文件(或等效的有意义的 EXE 名称,例如InstallShield2018Premier.exe
),但它们具有与正常情况不同的一组命令行开关setup.exe
来自 Installshield 的文件(其中包含要安装的单个产品)。
- 套件项目可用命令行开关的完整列表可以在此处找到:高级 UI 和 Suite/Advanced UI Setup.exe 命令行参数.
- 您可以从套件 setup.exe 中提取嵌入式设置,并使用命令行开关在本地缓存套件项目尝试从互联网下载的任何内容:
setup.exe /stage_only
- WiX 工具包和高级安装程序中也有类似的引导程序功能,并且它们创建的结果 setup.exe 文件也可以提取,但那是另一个故事了。
常规 Installshield EXE 文件
除了套件项目之外,Installshield 构建的 setup.exe 文件还有许多其他风格。安装盾setup.exe
也可以是:
-
基于旧脚本的安装程序(在开发 Windows Installer 之前创建的非 MSI 设置)
- 一个 setup.exe 包装安装脚本 MSI(这是一种特殊形式的 MSI 安装程序,具有 Win32 对话框 GUI - 这些设置非常容易出错)
- 一个 setup.exe 包装了一个基本MSI(这是一个带有标准 MSI GUI 的正确 MSI 安装程序)
- 可能还有我不知道的其他口味。
这些不同的 setup.exe 风格具有相似的命令行,并且与套件文件的命令行有很大不同(如上所述)。我相信不同版本的 Installshield 的命令行有一些变化,但这里是迄今为止最新版本的 Installshield 的文档 - 即 Installshield 2018:Setup.exe 和 Update.exe 命令行参数.
Installshield setup.exe 文件的静默安装
现在我们有 Installshield 提供的许多不同类型的 setup.exe 文件。我们有套房项目setup.exe - 实际上是按顺序运行的一组安装文件 - 而不是单个 Installscript 安装程序。然后我们有旧版安装脚本setup.exe 文件不是基于 Windows Installer,而是老式安装程序,越来越少看到使用 Installshield 制作的文件。最后,有两种与 Windows 安装程序相关的 setup.exe 文件:安装脚本 MSI and 基本MSI. 现在,如何以静默模式安装这些不同的 setup.exe 文件?
安装屏蔽套件
可以使用您已经尝试过的安装开关静默部署套件 setup.exe:setup.exe /silent
。但如上所述,它可能会开始从互联网上拉取组件。这不适合企业部署。完全不建议尝试 - 除非您是家庭用户或没有部署解决方案的小型办公室。
安装脚本(非 MSI)
您可以运行旧版本setup.exe
通过记录响应文件来静默文件setup.exe /r
然后你默默地运行安装setup.exe /s
. 这里有一些关于如何执行此操作的详细示例.
安装脚本 MSI
Installscript MSI setup.exe 文件的处理方式与旧版 Installshield setup.exe 文件相同。请参阅上面的命令和链接。
过去你需要添加一个/SMS switch
通过部署系统进行部署时,以确保 setup.exe 不会过早退出。根据2018 Installshield 文档不再需要此开关。
可以从 Installscript MSI 中提取嵌入的 MSI 文件并在没有 setup.exe 启动程序的情况下安装它。这涉及更多一点。一些细节在这里.
基本MSI
基本 MSI setup.exe 文件包含能够在没有响应文件的情况下静默运行的 MSI 文件。一般情况下表现比较好行政形象这样的 setup.exe 来提取嵌入式 MSI 并直接部署该 MSI,而不是使用 setup.exe 包装器。
因此,对于基本 MSI setup.exe 包装器,您可以1)通过在 setup.exe 上运行管理映像,从嵌入式 MSI 中提取文件 - 命令为setup.exe /a
(这是管理设施的更一般的描述),或者你也可以2)通过指定将安装参数传递到嵌入式 MSI 文件/v
setup.exe 的参数:Setup.exe /s /v"/qn INSTALLDIR=D:\Destination"
.
检查完整Setup.exe 和 Update.exe 命令行参数.
从Setup.exe 中提取文件
以下是有关如何从各种 setup.exe 文件中提取内容的详细信息的答案:以编程方式提取 InstallShield setup.exe 的内容.
本质上你使用setup.exe /stage_only
对于套件可执行文件。和setup.exe /a
对于基本 MSI 和 Installscript MSI 可执行文件。和setup.exe /s /extract_all
对于旧版 Installscript 可执行文件。
如果您的 setup.exe 安装程序不配合,请尝试启动它,等待其第一个安装对话框出现,然后在临时文件夹中查找提取的文件。