Windows installer MSI静默安装不工作

Windows installer MSI静默安装不工作,windows-installer,silent-installer,Windows Installer,Silent Installer,我正在尝试使用以下代码通过PowerShell安装MSI: msiexec /a [MSI File] /qn 根据事件日志,该软件已成功安装,但既不显示在“添加/删除程序”中,也不显示在注册表项中。我在一台没有管理员控制的笔记本电脑上,这就是为什么我使用/a而不是/I。我还尝试了以下代码以获得与以前相同的结果: msiexec /a [MSI File] ALLUSER=2 ARPSYSTEMCOMPONENT=0 /qn 关于为什么会发生这种情况,以及我如何解决这一问题以使软件能够正确安

我正在尝试使用以下代码通过PowerShell安装MSI:

msiexec /a [MSI File] /qn
根据事件日志,该软件已成功安装,但既不显示在“添加/删除程序”中,也不显示在注册表项中。我在一台没有管理员控制的笔记本电脑上,这就是为什么我使用
/a
而不是
/I
。我还尝试了以下代码以获得与以前相同的结果:

msiexec /a [MSI File] ALLUSER=2 ARPSYSTEMCOMPONENT=0 /qn

关于为什么会发生这种情况,以及我如何解决这一问题以使软件能够正确安装,有什么线索吗?

您正在采取的步骤不应该有您预期的结果。正如您简要提到的,
/a
执行所谓的。这不是软件的安装,而是未压缩安装源的创建。这通常供公司使用,以避免必须物理共享安装光盘(回到有安装光盘时)

您的第二个命令行有几个错误:

  • /a
    仍然没有“安装”软件
  • ALLUSER=2
    没有意义,因为属性
    ALLUSER
    没有定义。正确的属性名称为。您可能正在寻找
    alluser=2 msinstallperuser=1
    来调用Windows Installer 5/Windows 7或更高版本的每个用户重定向。请注意,除非安装了软件包,否则可能无法正常工作
  • ARPSYSTEMCOMPONENT=0
    可能与您的预期相反。Windows Installer主要用于定义/未定义(即非空字符串与空字符串)的真值定义,而不是1/0定义。虽然声明将其设置为1将阻止应用程序在ARP中列出,但实现可能会检查任何非空字符串值。(当然,根据第一个项目符号,这并不重要,因为您没有执行正常安装。)

您最好的选择是获得管理权限,在这种情况下,一个简单的
msiexec/i包。msi
将完成这项工作。如果您无法获得管理权限,并且软件包编写正确,则可以使用
msiexec/i package.msi alluser=2 msinstallperuser=1
安装它。在这两种情况下,您也可以传递
/qn
或类似命令来抑制UI,但我建议您在一切正常之前避免这样做。如评论中所述,添加
/l*v verbose.log
可以帮助诊断发生了什么,而不管UI的级别如何

你正在采取的步骤不应该有你期望的结果。正如您简要提到的,
/a
执行所谓的。这不是软件的安装,而是未压缩安装源的创建。这通常供公司使用,以避免必须物理共享安装光盘(回到有安装光盘时)

您的第二个命令行有几个错误:

  • /a
    仍然没有“安装”软件
  • ALLUSER=2
    没有意义,因为属性
    ALLUSER
    没有定义。正确的属性名称为。您可能正在寻找
    alluser=2 msinstallperuser=1
    来调用Windows Installer 5/Windows 7或更高版本的每个用户重定向。请注意,除非安装了软件包,否则可能无法正常工作
  • ARPSYSTEMCOMPONENT=0
    可能与您的预期相反。Windows Installer主要用于定义/未定义(即非空字符串与空字符串)的真值定义,而不是1/0定义。虽然声明将其设置为1将阻止应用程序在ARP中列出,但实现可能会检查任何非空字符串值。(当然,根据第一个项目符号,这并不重要,因为您没有执行正常安装。)

您最好的选择是获得管理权限,在这种情况下,一个简单的
msiexec/i包。msi
将完成这项工作。如果您无法获得管理权限,并且软件包编写正确,则可以使用
msiexec/i package.msi alluser=2 msinstallperuser=1
安装它。在这两种情况下,您也可以传递
/qn
或类似命令来抑制UI,但我建议您在一切正常之前避免这样做。如评论中所述,添加
/l*v verbose.log
可以帮助诊断发生了什么,而不管UI的级别如何

这与PowerShell有什么关系?MSI故障与PowerShell无关。让安装程序实际查看是否有任何问题:
/l*v“install.log”
这与PowerShell有何关系?MSI故障与PowerShell无关。请让安装程序实际查看是否有任何问题:
/l*v“install.log”
第二个命令帮助我输入管理员凭据,但我收到以下错误提示:写入文件时出错:C:\Windows\system32\Drivers\fortiapd.sys。验证您是否有权访问该目录。有什么办法可以解决这个问题吗?不太可能。这似乎是安装驱动程序的(第一步),这显然需要管理权限。因此,这个方案不是双重目的。如果驱动程序不是必需的,也许可以通过转换将其删除,但只有供应商可能知道这种更改的后果。因此,看起来我需要获得管理员凭据。如果要获取凭据,是否可以将它们插入安装命令?第二个命令可以帮助我输入管理员凭据,但出现以下错误:写入文件时出错:C:\Windows\system32\Drivers\fortiapd.sys。验证您是否有权访问该目录。有什么办法可以解决这个问题吗?不太可能。这似乎是安装驱动程序的第一步,这显然需要