使用msiexec静默安装MSI的问题,可能是语法问题?

时间:2019-04-01 21:08:16

标签: batch-file msiexec

基本上,我想以静默方式安装msi文件,并且可以使用以下行使其工作:

msiexec /i C:\Users\%username%\Downloads\mysqlODBC.msi /passive

我要添加的另一项是在该行的用户名部分添加双引号,以确保正确读取可能包含空格的所有用户名。 ---->“%username%”

问题是添加此文件时msi文件无法安装。在编写带有目录的批处理脚本时,我一直使用此功能。知道如何解决与msiexec一起使用的问题吗?

链接到我正在尝试悄悄安装的MSI文件:

https://dev.mysql.com/downloads/file/?id=484649

2 个答案:

答案 0 :(得分:1)

网络安装点? :对我来说,您还不清楚要实现什么目标。您要在许多计算机上自动安装该MSI吗?如果是这样,您应该创建可通过UNC路径访问的网络安装点,然后运行administrative image提取所有文件并创建可用于所有计算机的网络安装点:

msiexec.exe /i "\\Server\Share\Setup.msi" /QN /L*V "C:\Temp\msilog.log"

如果您具有注入点,则实际上没有理由为每个用户创建一个文件夹。为什么要复制安装文件?当然,您不希望每个用户都下载安装程序吗?您想一次下载,进行恶意软件检查,然后完全依靠一次下载的内容吗?

无论如何,如果您坚持:

msiexec.exe /i "\\Server\Share\%username%\Setup.msi" /QN /L*V "C:\Temp\msilog.log"

快速参数说明

 /i = run install sequence 
 /QN = run completely silently
 /L*V "C:\Temp\msilog.log"= verbose logging at specified path

msiexec.exe :在 msiexec.exe 命令行上,请参见以下答案以获取更多详细信息: {{ 3}} 。它有两种不同的风格-两套不同的开关:旧样式和一些较新的“更友好”版本。我只使用旧式开关。 MSIEXEC what is the difference between qn and quiet


某些链接

答案 1 :(得分:0)

TL;博士:

pushd "C:\Users\%username%\Downloads\"
msiexec.exe /a "mysqlODBC.msi" /quiet /norestart /log "%cd%\msiexec_install.log"
popd

详细信息:

虽然完全合格的路径应该能够放在双引号之间,但是另一种选择是使用pushdpopd从包含MSI的目录移至。 / p>

在上面的示例中,我用/passive替换了进度条(又名/quiet)。我也习惯于使用/a而不是/i-都可以用来安装。并且我包括了一个日志到文件选项,该选项在故障排除中很有用。