命令行选项

解释包和安装产品的可执行程序为 Msiexec.exe。 请注意,Msiexec 还会在返回时设置对应于系统错误代码的错误级别。 命令行选项不区分大小写。

下表中的命令行选项适用于 Windows Installer 3.0 及更低版本。 标准安装程序命令行选项也从 Windows Installer 3.0 开始提供。

选项 参数 含义
/I Package|ProductCode 安装或配置产品。
/f [p|o|e|d|c|a|u|m|s|v] Package|ProductCode 修复产品。 此选项将忽略在命令行上输入的任何属性值。 此选项的默认参数列表为“omus”。 此选项共享与 REINSTALLMODE 属性相同的参数列表。
p - 仅当缺少文件时,才重新安装。
o - 如果缺少文件或安装了较旧版本,则重新安装。
e - 如果缺少文件或者安装了同等或较旧版本,则重新安装。
d - 如果缺少文件或安装了其他版本,则重新安装。
c - 如果缺少文件或存储的校验和与计算值不匹配,则重新安装。 仅修复在 File 表的 Attributes 列中具有 msidbFileAttributesChecksum 的文件。
a - 强制重新安装所有文件。
u - 重写所有必需的特定于用户的注册表项。
m - 重写所有必需的特定于计算机的注册表项。
s - 覆盖所有现有快捷方式。
v - 从源运行并重新缓存本地包。 请勿在首次安装应用程序或功能时使用 v 重新安装选项。
/a 管理安装选项。 在网络上安装产品。
/x Package|ProductCode 卸载产品。
/j [u|m]Packageor
[u|m]Package/tTransform List
or
[u|m]Package/gLanguageID
播发产品。 此选项将忽略在命令行上输入的任何属性值。
u - 播发给当前用户。
m - 播发给计算机的所有用户。
g - 语言标识符。
t - 将转换应用于播发的包。
/L [i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] Logfile 将日志记录信息写入指定现有路径的日志文件中。 日志文件位置的路径必须已存在。 安装程序不会为日志文件创建目录结构。 以下标志指明要记录的信息。 如果未指定标志,则默认值为“iwearmo”。
i - 状态消息。
w - 一般错误警告。
e - 所有错误消息。
a - 启动操作。
r - 特定于操作的记录。
u - 用户请求。
c - 初始 UI 参数。
m - 内存不足或严重退出信息。
o - 磁盘空间不足的消息。
p - 终端属性。
v - 详细输出。
x - 额外的调试信息。 Windows Installer 2.0:不支持。 x 选项适用于 Windows Installer 版本 3.0.3790.2180 及更高版本。

+ - 附加到现有文件。
! - 将每一行都刷新到日志中。
"*" - 通配符,记录除 v 和 x 选项之外的所有信息。 若要包含 v 和 x 选项,请指定“/l*vx”。

注意:
有关可用于设置日志记录模式的所有方法的详细信息,请参阅 Windows Installer 日志记录部分中的常规日志记录


/m filename

注意:
文件名的长度不能超过 8 个字符。


生成 SMS 状态 .mif 文件。 必须与安装 (-i)、删除 (-x)、管理安装 (-a) 或重新安装 (-f) 选项一起使用。 ISMIF32.DLL 作为 SMS 的一部分安装,并且必须位于路径上。
状态 mif 文件的字段填充了以下信息:
制造商 - 作者
产品 - 修订号
版本 - 主题
区域设置 - 模板
序列号 - 未设置
安装 - 由 ISMIF32.DLL 设置为“DateTime”
InstallStatus -“成功”或“失败”
说明 - 错误消息按以下顺序排列:1) 安装程序生成的错误消息。 2) 如果无法开始安装或用户退出,则为来自 Msi.dll 的资源。 3) 系统错误消息文件。 4) 格式化消息:“安装程序错误 %i”,其中 %i 是从 Msi.dll 返回的错误。
/p PatchPackage[;patchPackage2 ] 应用修补程序。 若要将修补程序应用于已安装的管理映像,必须组合以下选项:
/p <PatchPackage>[;p atchPackage2 ] /a \<Package>
/q n|b|r|f 设置 用户界面级别
q 、 qn - 无 UI
qb - 基本 UI。 使用 qb! 以隐藏 “取消 ”按钮。
qr - 简化的 UI ,安装结束时未显示模式对话框。
qf - 完整 UI 以及末尾的任何创作 的 FatalErrorUserExit退出 模式对话框。
qn+ - 除了末尾显示的模式对话框外,没有 UI。
qb+ - 基本 UI ,末尾显示模式对话框。 如果用户取消安装,则不显示模式框。 使用 qb+! 或 qb!+ 以隐藏 “取消 ”按钮。
qb- - 没有模式对话框 的基本 UI 。 请注意,/qb+- 不是受支持的 UI 级别。 使用 qb-! 或 qb!- 隐藏“ 取消 ”按钮。
请注意! 选项适用于 Windows Installer 2.0,仅适用于基本 UI。 它对于完整 UI 无效。
/?/h 显示 Windows Installer 的版权信息。
/Y module 调用系统函数 DllRegisterServer 以自注册在命令行上传入的模块。 指定 DLL 的完整路径。 例如,对于当前文件夹中的 MY_FILE.DLL,可以使用:
msiexec /y .\MY_FILE.DLL
此选项仅用于无法使用 .msi 文件的注册表表添加的注册表信息。
/Z module 调用系统函数 DllUnRegisterServer 以注销在命令行上传入的模块。 指定 DLL 的完整路径。 例如,对于当前文件夹中的 MY_FILE.DLL,可以使用:
msiexec /z .\MY_FILE.DLL
此选项仅用于无法使用 .msi 文件的注册表表删除的注册表信息。
/c 播发产品的新实例。 必须与 /t 一起使用。 从 Windows Server 2003 附带的 Windows Installer 版本和具有 Service Pack 1 (SP1) 的 Windows XP 开始可用。
/n ProductCode 指定产品的特定实例。 用于通过更改转换的产品代码来标识使用多个实例支持安装的实例。 从 Windows Server 2003 附带的 Windows Installer 版本和具有 SP1 的 Windows XP 开始可用。

选项 /i、/x、/f[p|o|e|d|c|a|u|m|s|v]、/j[u|m]、/a、/p、/y 和 /z 不应一起使用。 此规则的一个例外是修补管理安装需要使用 /p 和 /a。 选项 /t、/c 和 /g 只能与 /j 一起使用。 选项 /l 和 /q 可与 /i、/x、/f[p|o|e|d|c|a|u|m|s|v]、/j[u|m]、/a 和 /p 一起使用。 选项 /n 可与 /i、/f、/x 和 /p 一起使用。

若要从 A:\Example.msi 安装产品,请安装产品,如下所示:

msiexec /i A:\Example.msi

只能使用命令行修改公共属性。 命令行上的所有属性名称都解释为大写,但值保持区分大小写。 如果在命令行中输入 MyProperty,安装程序将替代 Property 表中 MYPROPERTY 的值,而不是 MyProperty 的值。 有关详细信息,请参阅关于属性

若要安装将 PROPERTY 设置为 VALUE 的产品,请在命令行上使用以下语法。 可以将属性放在选项与其参数之间的任意位置。

正确的语法:

msiexec /i A:\Example.msi PROPERTY=VALUE

错误的语法:

msiexec /i PROPERTY=VALUE A:\Example.msi

作为文本字符串的属性值必须用引号括起来。 在标记之间的字符串中包含任何空格。

msiexec /i A:\Example.msi PROPERTY="Embedded White Space"

若要使用命令行清除公共属性,请将其值设置为空字符串。

msiexec /i A:\Example.msi PROPERTY=""

对于由文本引号分隔的文本部分,请用第二对引号将节括起来。

msiexec /i A:\Example.msi PROPERTY="Embedded ""Quotes"" White Space"

以下示例显示了一个复杂的命令行。

msiexec /i testdb.msi INSTALLLEVEL=3 /l* msi.log COMPANYNAME="Acme ""Widgets"" and ""Gizmos."""

以下示例显示了播发选项。 请注意,开关不区分大小写。

msiexec /JM msisample.msi /T transform.mst /LIME logfile.txt

以下示例演示如何安装要播发的产品的新实例。 此产品旨在支持多个实例转换。

msiexec /JM msisample.msi /T :instance1.mst;customization.mst /c /LIME logfile.txt

以下示例演示如何修补使用多个实例转换安装的产品的实例。

msiexec /p msipatch.msp;msipatch2.msp /n {00000001-0002-0000-0000-624474736554} /qb

将修补程序应用于特定产品时,不能在命令行中同时指定 /i 和 /p 选项。 在这种情况下,可以按如下所示将修补程序应用于产品。

msiexec /i A:\Example.msi PATCH=msipatch.msp;msipatch2.msp /qb

使用 /p 选项时,无法在命令行中设置 PATCH 属性。 如果在使用 /p 选项时设置了 PATCH 属性,则会忽略并覆盖 PATCH 属性的值。