Total Pageviews

Sunday, 12 February 2012

小参数实现软件自动安装

       在安装完系统后,还要打一大堆补丁,还要装一大堆软件头疼。特地上网查了下资料,终于解决了这个问题。
以后是习公整理的一些东西:
一、 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
a.要使用静默安装的方式安装用InstallShield技术打包的程序,首先要在现有的操作系统中创建一个setup.iss文件。
在命令行窗口中使用 -R 参数(大小写敏感)运行安装程序。
例如:Setup.exe -R
b. 接着会显示常见的安装屏幕,并且询问你一些问题,例如要安装的目录等有一点是很重要的,在安装结束后你不能选择“立刻重启动计算机”的选项。如果你选了,在批处理文件中的其他命令就会因为计算机重启动而无法执行。
c. 在安装程序运行完毕后,打开你的C:Windows(或者C:WINNT)目录,然后找到setup.iss文件,把这个文件和你将要静默安装的程序setup.exe保存在同一个目录中
d. 用以下命令进行静默安装:setup.exe -s [-sms]
 
我怎么知道哪个程序是使用InstallShield技术打包的?
   大部分这类程序的安装文件都可以被压缩软件解压缩,安装文件setup.exe的属性对话框中应该有“InstallShield (R) Setup Launcher”或者其他类似的字样。
   最后,如果你在保存安装文件的文件夹中看到了一个setup.iss文件,那么毫无疑问这是用InstallShield打包了!
四、InstallShield with MSI
InstallShield with MSI 制作的安装文件,请使用类似:setup.exe /s /v"/qb" 来安装
你的问题:
都仔细看了,有些还是不太懂
例如:DaemonTools:msiexec /i dtools.msi /qb REBOOT=SUPPRESS
为什么要用 msiexec /i ?
还有请问,你测试安装的时候是在虚拟机装还是直接在系统用检测安装装?
答:msiexec是 Windows Installer的一部分。用来帮助Windows Installer package files (MSI)格式的安装文件。
语法:msiexec /i "文件完整路径"
更多Windows Installer参数参看
http://support.microsoft.com/default.aspx?scid=kb;en-us;314881
测试安装,我都试在虚拟机上做的。
反正拿到一个安装程序,大家用各静默安装参数试试就知道了 ([/s] [/S] [/silent [/noreboot]] [/verysilent [/sp-] [/norestart]] [/q] [/qn] [/qb] [REBOOT=SUPPRESS]  [/s /v /qn] [/q:a /r:n] [/u /n /z] [/quiet] [/SilentInstallNoSponsor] [/SilentInstall] [/s /qn] [/s /qd] [-s] [-q] 等)。
无人值守安装光盘最有魅力的地方之一
就是在安装过程中可以静默安装好预先设计集成的一些常用软件,安装结束以后软件就已经可以使用
但是很多朋友发现每个软件以及系统补丁,它们的静默安装参数是不一样的
在本文就和广大爱好者一起研究一下几种常见软件封包形式的静默安装方式
如有遗漏和错误之处,请指出,大家互相交流!
常用的软件封包形式主要有以下几个形式
Inno Setup 
InstallShield 
NSIS
Microsoft Windows Installer
WISE
QUOTE:
一.Inno Setup

使用Inno技术制成的程序安装包可以使用/SILENT 和 /VERYSILENT参数进行静默安装
我不知道这两个参数有什么分别,因为它们实现的功能看上去是一样的
setup.exe /VERYSILENT
你会看到一个对话框,询问你是否打算继续安装:
我们可以通过使用一个参数跳过这个对话框:
setup.exe /VERYSILENT /SP-
有些利用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 技术打包的?
这种软件安装时第一个界面一般如下图所示
在窗口标题栏左侧的图标上点击鼠标左键
然后再探出菜单上点击“About Setup”也可以看见安装类型
更多使用Inno技术打包的软件可用的参数可以在下面看到:
E文好的朋友可以仔细研究研究
With the Inno Setup Extentions in use the following command line switches become available:
SP- 
Disables the This will install... Do you wish to continue? prompt at the beginning of Setup. Of course, this will have no 
effect if the DisableStartupPrompt [Setup] section directive was set to yes. 
/SILENT, /VERYSILENT 
Instructs Setup to be silent or very silent. When Setup is silent the wizard and the background window are not displayed but 
the installation progress window is. When a setup is very silent this installation progress window is not displayed. 
Everything else is normal so for example error messages during installation are displayed and the startup prompt is (if you 
haven''t disabled it with DisableStartupPrompt or the ''/SP-'' command line option explained above) 
If a restart is necessary and the ''/NORESTART'' command isn''t used (see below) and Setup is silent, it will display a 
Reboot now? messagebox. If it''s very silent it will reboot without asking. 
/NORESTART 
Instructs Setup not to reboot even if it''s necessary. 
/LOADINF="filename" 
Instructs Setup to load the settings from the specified file after having checked the command line. This file can be prepared 
using the ''/SAVEINF='' command as explained below. 
/SAVEINF="filename" 
Instructs Setup to save installation settings to the specified file. 
/DIR="x:dirname" 
Overrides the default directory name displayed on the Select Destination Directory wizard page. A fully qualified pathname 
must be specified. If the [Setup] section directive DisableDirPage was set to yes, this command line parameter is ignored. 
/GROUP="folder name" 
Overrides the default folder name displayed on the Select Start Menu Folder wizard page. If the [Setup] section directive 
DisableProgramGroupPage was set to yes, this command line parameter is ignored. 
/NOICONS 
Instructs Setup to initially disable the Don''t create any icons check box on the Select Start Menu Folder wizard page. 
/COMPONENTS="comma separated list of component names" 
Overrides the default components settings. Using this command line parameter causes Setup to automatically select a custom 
type.
QUOTE:


二.InstallShield

要使用静默安装的方式安装用InstallShield技术打包的程序
你首先要在现有的操作系统中创建一个setup.iss文件。
1. 在命令行窗口中使用 -R 参数(大小写敏感)运行安装程序。
例如:
Setup.exe -R
2. 接着会显示常见的安装屏幕,并且询问你一些问题,例如要安装的目录等
  有一点是很重要的,在安装结束后你不能选择“立刻重启动计算机”的选项
  如果你选了,在批处理文件中的其他命令就会因为计算机重启动而无法执行
3. 在安装程序运行完毕后,打开你的C:Windows (或者C:WINNT)目录
  然后找到setup.iss文件,把这个文件和你将要静默安装的程序setup.exe保存在同一个目录中
4. 用以下命令进行静默安装:
start /wait %systemdrive%installApplicationApplication_nameSetup.exe -s
5. 对所有准备进行静默安装,并且使用了InstallShield技术打包的程序重复上面的步骤操作
技术难点:从光盘上的RunOnceEx中安装用Installshield技术打包的程序
如果从光盘上直接执行RunOnceEx,用Installshield打包的应用程序安装将会失败
除非你指定了用于保存日至文件的位置
下面就有一个示例,你可以将这个例子用于你自己的程序的安装(粗体字部分看仔细了):
REG ADD %KEY%45 /VE /D "Kerio Personal Firewall 2.1.5" /f
REG ADD %KEY%45 /V 1 /D "%CDROM%appsKPFSetup.exe -s -f2"%systemdrive%kerio.log"" /f
然后你可以用一个cleanup.cmd文件删除kerio.log文件
DEL "%systemroot%kerio.log"
我怎么知道哪个程序是使用InstallShield技术打包的?
大部分这类程序的安装文件都可以被压缩软件解压缩,安装文件setup.exe的属性对话框中应该有“InstallShield (R) Setup Launcher”或者
其他类似的字样。
最后,如果你在保存安装文件的文件夹中看到了一个setup.iss文件,
那么毫无疑问这是用InstallShield打包了!

QUOTE:
三. Nullsoft SuperPiMP Install System (NSIS)

使用NSIS 打包的安装文件可以用 /S参数进行自动安装(“S”是大小写敏感的):
Setup.exe /S
你也可以用 /D参数选择将要安装的目标分区和文件夹:
Setup.exe /S /D=E:SoftwareCDex
像Winamp 和CDex这类的软件都会在安装结束后显示一个确认屏幕(CDex)
或者一个设置文件关联方式的结束安装屏幕(Winamp)
我还不知道怎样跳过这一步,但是这个屏幕对批处理文件的继续执行不会有任何影响

我怎么知道哪个程序是使用NSIS技术打包的?

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

QUOTE:
四.Microsoft Windows Installer

微软老大的封包形式!
如果某个软件是用Windows Installer打包的,那你就应该能在文件夹中看到*.msi文件。
这是最典型的特征
这些文件通常可以使用 /QB和 /QN参数进行自动安装。
Powertoys使用了 /s /v/qn参数,对于这些软件,你可以依次尝试上面提到的参数
看看哪个是有效的。
/qb 会在窗口中显示一个基本的安装进程
/qn 参数则不会显示任何窗口,直接在后台自动安装
阻止程序安装完成后自动重启动:
为了阻止某些程序安装成功后自动重启动(例如Kerio Personal Firewall 4),你可以在 /qn 或者 /qb参数后使用REBOOT=Suppress标记,例
如:
setup.msi "/qn REBOOT=Suppress"
有些安装程序使用 /s/v/qn参数进行自动安装,因此阻止它们重启动应该用:
setup.exe /s /v"/qn REBOOT=Suppress"

QUOTE:
五.WISE Installer

用WISE技术打包的软件在安装的时候可以选择使用 /s参数进行自动安装:
Setup.exe /s
更多的其他参数:
You can run Wise Installation .EXE with command line options to automate many of the tasks you would normally do in the User 
Interface. The list of options is as follows. 
/c file.wse -- creates executable file from wise script
/r -- opens Wise in SetupCapture window
/u -- runs the upgrade wizard that checks for any upgrades online
/d CompVar=Value -- defines a single compiler variable in Enterprise Edition. Multiple definitions require multiple /d
/d=filename -- uses filename to define compiler variables. Each line in file is CompVar=Value
Example: installbuilder.exe /c /d _MYVAR_="Test" c:mysourcefilessetup.wse
Wise Installations:
/T -- test mode
/X pathname -- extracts files into pathname
/Z pathname -- extracts files into pathname and reboots
/S -- silent install
/M -- prompts for windows, system, temp directories
/M=filename -- specifies a value file similar to /d above, but for standard variables (See NOTE below).
/M1 -- same as /m plus it prompts before any file that is self-registered
/M2 -- reserved for internal use by Wise during debugger sessions
Example: setup.exe /T 
Unwise:
/Z -- remove empty directories, including one with unwise itself in it.
/A -- automatic mode, no user choices other than cancel.
/S -- silent mode, automatic mode with no user choices
/R -- rollback mode, selects option to rollback on uninstall
/U -- like automatic mode, but gives all choices other than custom/automatic title window title can be at the end of the 
command line
Example: unwise.exe /S c:myprogramdirectoryinstall.log
NOTE: The values file is a simple text file with variables listed, one per line, in VARIABLE="VALUE" format. If the variable 
is found in the values file, the specified value is used; otherwise, its value is unchanged. The file containing the 
variables can be up to 32K.
我怎么知道哪些程序是使用Wise技术打包的? 
使用Wise技术打包的大部分程序都会在开始运行的时候显示一个启动界面:

但是也有一些会最小化这个窗口,只显示一个深蓝色的背景,还有安装窗口在屏幕的中央
基本介绍完毕
有人问?绿色软件怎么安装啊?
告诉大家:用RAR做个自解压,这个方法好像是最简单有效的,呵呵

No comments:

Post a Comment