关于使用 Installshield 2013 (.issuite) 项目文件生成的 Setup.exe 进行静默安装

2023-12-09

我有一个使用 installshield 套件项目 (.issuite) 文件生成的 setup.exe 文件。对于具有足够权限的管理员或普通用户,我们的 IT 管理员之一可以使用以下命令进行静默安装:

setup.exe /silent 

但是,当尝试使用 SCCM(系统中心配置管理器)或 PSEXEC(均使用系统帐户进行​​安装)推送安装时,安装失败。安装存在,退出代码为 3。

我对此做了一些研究,发现系统帐户需要一个 setup.iss (应答/响应)文件来写入/读取。不太明白什么意思。

我也尝试使用 -

setup.exe /r 

但随后没有生成 setup.iss 并且安装失败并弹出消息:

设置命令行无效。安装程序无法继续。

如果我们使用自定义对话框/向导步骤,是否也无法创建 setup.iss 文件?

请让我知道如何使用系统帐户凭据静默安装。


简答

UPDATE: 这是你自己的套房吗?如果是这样,您也许可以改进套件设置中指定的静默运行配置,以允许每个嵌入式设置在静默模式下正确运行。

您用于静默安装的开关是正确的,但我不会尝试静默运行整个套件,而是尝试:

  1. 将套件项目 EXE 文件中的嵌入式设置和组件提取到磁盘位置(详细信息如下)。

  2. 使用您的部署系统(在您的情况下是 SCCM)按照您自己的顺序安装所需的组件,同时消除 SOE 上已有的任何不必要的运行时 - 例如 Visual C++ 运行时等...

为了从套件 setup.exe(或等效的有意义的名称,例如InstallShield2018Premier.exe)运行此命令行:

  • setup.exe /stage_only

您必须指定一个输出位置,从套件 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 文件/vsetup.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 安装程序不配合,请尝试启动它,等待其第一个安装对话框出现,然后在临时文件夹中查找提取的文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于使用 Installshield 2013 (.issuite) 项目文件生成的 Setup.exe 进行静默安装 的相关文章

随机推荐

  • 实现 delaunay 三角剖分的 Bowyer-Watson 算法

    我正在尝试实现以下 Bowyer Watson 算法来实现 Delaunay 三角剖分 function BowyerWatson pointList pointList is a set of coordinates defining t
  • 在 ruby​​ 中使用单引号与双引号相比是否有性能提升?

    您知道在 ruby 中使用双引号代替单引号是否会以任何有意义的方式降低 ruby 1 8 和 1 9 中的性能吗 所以如果我输入 question my question 它比更快吗 question my question 我想象 rub
  • R readHTMLTable 无法加载外部实体[重复]

    这个问题在这里已经有答案了 当我在笔记本电脑上运行该线路时 table500 lt readHTMLTable http en wikipedia org wiki List of S 26P 500 companies 1 它获取数据 当
  • Android:如何处理按钮点击

    在非 Java 和非 Android 领域拥有丰富的经验 我正在学习 Android 我对不同的领域有很多困惑 其中之一是如何处理按钮点击 至少有 4 种方法可以做到这一点 它们被简要列出here 为了保持一致性 我将列出它们 拥有以下成员
  • 有没有人尝试过在 Ubuntu(最好是 Ubuntu 9)上从源代码安装 ruby​​ 和 ruby​​gems?

    Ruby on Rails 网站建议在 Linux 下从源代码安装 Ruby 我在全新安装的 Ubuntu 9 上从源代码构建 ruby 时遇到了许多 C 库问题 我在网上找到的有关在 Ubuntu 上安装 ruby 的所有说明都涉及使用预
  • 如何将日期“缩短”半个月[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 函数 cut 提供了一种按 月 周 季度 剪切日期数据的简单方法 但我想按半个月剪切日期数据 有没有简单的方法可以做到这一点 假设您指的是天文学意义上的半个月 其中第 1 15 天属于
  • 如何将数组存储为 Perl 散列中的值?

    我正在尝试在 Perl 中创建一个散列 其值是数组 就像是 my array split 1 2 my hash a gt array 令人惊讶的是 这个报告 使用 Data Dumper VAR1 a gt 1 2 gt undef 这一
  • Firebase 或 SQLite [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我是 Android 开发新手 目前正在开发一个使用 SQLite 作为数据库的应用程序 问题是 我想与使用该应用程序的其他人共享信息 据我所知 单
  • 如何推迟内联Javascript?

    我有以下 html 代码
  • 停止模式 UIViewController 旋转

    模态UIViewController的父级自动旋转 但是当模态 VC 启动时 我只希望它以纵向显示而不是可旋转 我试过简单地返回 NOshouldAutorotate 在模态VC中 但没有欢乐 支持 iOS 5 非常感谢任何帮助 基本上 如
  • 如何创建类似于 Xcode 属性面板的选项卡式面板

    我正在尝试创建一个类似于 Xcode 属性面板的选项卡式面板 但标准选项卡式面板似乎具有不同的外观和感觉 无法更改它 应使用哪些控件来创建外观相似的选项卡式面板 编辑 我没有使用 NSTabViewController 只是有 TabVie
  • Mongo 用户定义函数和 MapReduce

    mongodb 有没有办法创建用户定义的 Javascript 函数 我在客户端有几个 Map Reduce 函数 我想在其他 MR 函数中使用它们 例如 多个 MR 函数可以计算各种平均值 我希望能够像这样使用它们 function re
  • TypeScript 装饰器和循环依赖

    考虑使用装饰器的相互依赖代码示例 如下 现在考虑以下工作流程 是的 我确实想传递实际导出的类 因为我稍后需要使用它们 应用程序导入并运行Parent ts Test Child 导致应用程序导入Child ts装修时 注 班级Parent代
  • 合并来自 git 存储库外部的更改

    我正在与该国另一边的另一位开发人员合作 他是我们项目的负责人 并且没有使用正式的版本控制系统 就我而言 我正在 git 中跟踪我的所有代码 我最近开始为主项目做出贡献 并且也希望能够跟踪其他开发人员的更新 当我收到他更新的代码时 它通常是
  • 在应用 LIMIT 之前获取结果计数的最佳方法

    当对来自数据库的数据进行分页时 您需要知道将有多少页来呈现页面跳转控件 目前我通过运行查询两次来做到这一点 一次包装在count 确定总结果 第二次应用限制以仅返回当前页面所需的结果 这看起来效率很低 有没有更好的方法来确定之前会返回多少结
  • opencv中的缩放和旋转模板匹配

    I want to use a template image to search target in the another image But the target have scale and rotation change also
  • 使用 jquery 预加载图像数组

    我正在使用 jQuery 从 php 数组构建图像数组 我想循环浏览这些图像 预加载它们 同时显示一些加载 gif 直到加载所有图像 目前 我已经尝试了很多方法来这样做 页面的其余部分似乎总是在继续加载 因此图像正在被预加载 但不是在页面加
  • ApplicationInsights OperationId 为空

    我正在实现自定义 ApplicationInsights 记录器 并且能够在跟踪 异常和请求等写入位置写入所有日志 但跟踪和异常中的 OperationId 为空 昨天我使用相同的代码并在所有表中获取OperationId 之后我玩了多线程
  • Rails 从 JSON 数组中选择

    我有一个从 Foursquare 返回的 JSON 数组 我们就这样称呼它吧 venues 我希望能够通过下拉框 选择 场地 并且我希望它成为表单的一部分 这意味着我希望能够按名称选择特定场地 即本例中为 Hotel Utah Saloon
  • 关于使用 Installshield 2013 (.issuite) 项目文件生成的 Setup.exe 进行静默安装

    我有一个使用 installshield 套件项目 issuite 文件生成的 setup exe 文件 对于具有足够权限的管理员或普通用户 我们的 IT 管理员之一可以使用以下命令进行静默安装 setup exe silent 但是 当尝