常用软件打包类型及静默安装参数(nsis|msi|InstallShield|Inno)

今天搞了一个装机软件,可以导入第三方软件,在导入的时候提示输入静默参数,于是我就了解了一些,什么是静默参数。

做装机的朋友应该经常需要安装一些环境库和常用软件,一个一个的安装就非常麻烦。其实常用的软件和运行库都提供了静默安装参数,但是不同的文件所加的参数并不一致,比如 VS 的环境库 vcredist_x86.exe (这是32位的环境库)后面加 /q 即可完成静默安装,而 NSIS 打包的文件使用 /q 是不行的,查了相关的资料得使用 /S (这里要大写),其它格式的文件参考下面的内容:

现在常用的制作安装程序的软件有:Microsoft Windows Installer,Windows 补丁包,InstallShield,InstallShield with MSI,WISE Installer,Inno Setup和NullSoft Installation System等。

软件的安装采取全自动或半自动的方式进行。

一、Microsoft Windows Installer

如果软件是用 Windows Installer 打包的,可以在文件夹中看到 *.msi 后缀的文件。这些文件通常可以使用 /QB/QN 参数进行自动安装。

/qb 会在窗口中显示一个基本的安装进程。

/qn 参数则不会显示任何窗口,直接在后台自动安装。

为了阻止某些程序安装成功后自动重启动(例如 Kerio Personal Firewall 4),你可以在 /qn 或者 /qb 参数后使用 REBOOT=Suppress 标记。

例如:安装虚拟光驱

DaemonTools:msiexec /i dtools.msi /qb REBOOT=SUPPRESS

二、Windows 补丁包

有两种情况,一种是类似 IE 增量补丁包,要使之静默安装,只需要在执行文件后加上 /q:a /r:n 参数即可

另种是 Windows 常用的补丁文件,一般情况下加上 /U /N /Z 即可实现静默安装。(对于新的系统补丁,也可使用 /passive /norestart)。这适用于大部分情况,但某些特定的补丁不能用此法进行静默安装。

三、InstallShield  

1、用 InstallShield 技术打包的程序要使用静默的方式安装,首先要在现有的操作系统中创建一个 setup.iss 文件。在命令行窗口中使用 -R 参数(大小写敏感)运行安装程序。

例如:

Setup.exe -R

2、接着会显示常见的安装界面,并且显示一些选项,例如要安装的目录等。有一点非常重要,在安装结束后不能选择“立刻重启动计算机”。如果选了,在批处理文件中的其他命令就会因为计算机重启动而无法执行。

3、在安装程序运行完毕后,打开你的 C:\Windows(或者 C:\WINNT)目录,然后找到 setup.iss 文件,把这个文件和你将要静默安装的程序 setup.exe 保存在同一个目录中。

4、用以下命令进行静默安装:

setup.exe -s [-sms]

或者:

start /wait %systemdrive%installApplicationApplication_nameSetup.exe -s

怎么判断哪个程序是使用 InstallShield 技术打包的?

这类程序的安装文件大部分都可以被压缩软件解压缩,安装文件 setup.exe 的属性对话框中应该有“InstallShield (R) Setup Launcher”或者其他类似的字样。

最后,如果你在保存安装文件的文件夹中看到了一个 setup.iss 文件,那么毫无疑问这是用 InstallShield 打包了!

四、InstallShield with MSI

InstallShield with MSI 制作的安装文件,请使用类似:setup.exe /s /v "/qb" 来安装。

五、WISE Installer

用 WISE 技术打包的软件在安装的时候可以选择使用 /s 参数进行自动安装。

可以使用命令行选项运行wise installation.exe,以自动执行常用任务

更多参数:

/c file.wse 从WISE脚本创建可执行文件

/r 在 SetupCapture 窗口中打开WISE

/u 运行升级向导,检查是否有联机升级

/d compvar=value 在企业版中定义单个编译器变量。多个定义需要多个 /d (/d=文件名-使用文件名来定义编译器变量。文件中的每一行都是compvar=value)

示例:

installbuilder.exe /c /d _MYVAR_="Test" c:mysource ilessetup.wse

WISE 的安装:

/T 测试模式

/X 路径名 将文件提取到路径名中

/Z 路径名 将文件提取到路径名并重新启动

/S 静默安装

/M 提示输入windows、system、temp目录(/M=文件名-指定一个类似于/d的值文件,但对于标准变量)

/M1 与/M加成相同,它在任何自注册的文件之前提示。

/M2 在调试器会话期间保留供WISE内部使用

示例:

setup.exe /T

卸载WISE:

/Z 删除空目录,包括其中包含不明智的目录。

/A 自动模式,除了取消,没有其他用户选择。

/S 无提示模式,无用户选择的自动模式

/R 回滚模式,选择卸载时回滚的选

/U 类似自动模式,但给出除了自定义/自动标题窗口之外的所有选项,标题可以在命令行。

示例:

unwise.exe /S c:myprogramdirectoryinstall.log

注意:values 文件是一个简单的文本文件,以 variable="value" 格式列出了每行一个变量。如果变量在值文件中找到,则使用指定的值;否则,其值不变。包含文件的文件变量最多可达32K。

六、Inno Setup

使用 Inno 技术制成的程序安装包可以使用 /SILENT/VERYSILENT 参数进行静默安装。

/silent 静默安装,但如果又报错,还是会提示,并且有进度条

/verysilent 静默安装,更强制,不过是否报错,都不会有任何提示 (注意:如果需要重启电脑,它会不提示而直接重启)

/suppressmsgboxes 由 suppress(抑制,镇压)和msgboxes(消息框),组成,表示不提示消息框

/norestart 结合1.2使用,这样就不会没有提示而直接重启了

例如:

setup.exe /silent

你会看到一个对话框,询问你是否打算继续安装。

我们可以通过使用一个参数跳过这个对话框:

setup.exe /silent /suppressmsgboxes

有些利用 Inno 技术做作的安装包会在程序安装完毕后自动运行所安装的程序,例如:ISOBuster

不过我们可以使用一个叫做 Taskkill 的系统自带工具杀死相关的进程。

以下是一个可以用于批处理文件安装 Inno 打包的软件的命令的示例:

ECHO.
ECHO 正在安装ISOBuster 1.4
ECHO 请稍候...
start /wait %systemdrive%installApplicationsISOBusterIsoBuster14.exe /VERYSILENT /SP-
ECHO.
ECHO Killing ISOBuster.exe process
taskkill.exe /F /IM isobuster.exe
ECHO.

Inno Setup 制作的安装文件,请使用下面的明显,安装完直接重启:

setup.exe /sp- /silent /norestart

如何判断哪个安装程序是用 Inno 技术打包的?

这种软件在安装时出现的第一个界面,在窗口标题栏左侧的图标上点击鼠标左键,然后再探出菜单上点击“About Setup”可以看见安装类型。

七、Nullsoft SuperPiMP Install System (NSIS)

使用 NSIS(NullSoft Installation System)制作的安装文件,可用 /S (注意大写)来进行静默安装("S"是大小写敏感的)。

例如:

Setup.exe /S

也可以用 /D 参数选择将要安装的目标分区和文件夹:

例如:

Setup.exe /S /D=E:\Software\QQ2019

像 Winamp 和 CDex 这类的软件都会在安装结束后显示一个确认屏幕(CDex)或者一个设置文件关联方式的结束安装屏幕(Winamp)

怎么判断哪个程序是使用 NSIS 技术打包的?

很多用NSIS打包的程序在安装的时候都有类似的窗口,例如 Winamp 和 CDex 。

八、Wise Installation Professional

制作的安装文件,可用 /silent 参数进行静默安装。

无人值守安装光盘最有魅力的地方,就是在安装过程中可以静默安装好预先设计集成的一些常用软件,安装结束以后软件就可以使用。

但是很多朋友发现每个软件以及系统补丁,它们的静默安装参数是不一样的。在本文就和广大爱好者一起研究一下几种常见软件封包形式的静默安装方式,如有遗漏和错误之处,请指出,大家互相交流!




推荐阅读:

HTML页面 用CSS实现禁止选中、复制和右键

联通沃云服务器拒绝连接请求如何开放端口

Discuz X3.4 MySQL数据库连接问题的解决方法

PHP连接MySQL数据库报错:Call to undefined function mysql_connect()的解决方法

HTML img src图片路径不存在,则显示一张默认图片的方法

赞 (3)
分享到: +

评论 沙发

Avatar

换个身份

  • 昵称 (必填)
  • 邮箱 (选填)