【问题标题】:How to deploy MSI that installs to localappdata, via GPO, system session?如何通过 GPO 系统会话部署安装到 localappdata 的 MSI?
【发布时间】:2021-01-28 17:54:13
【问题描述】:

我需要将我的应用程序安装到活动控制台会话的本地应用程序数据中,甚至安装到机器的所有用户中。
但在通过 GPO 部署时,系统会话是运行 MSI 的会话。
那么如何通过 WiX 工具集创建一个 MSI 来实现该目的?

我尝试使用本指南:https://docs.microsoft.com/en-us/windows/win32/msi/msiinstallperuser
所以我在 wxs 文件中设置了这些属性:

<Property Id='ALLUSERS' Value='2' />
<Property Id='MSIINSTALLPERUSER' Value='1' />

而目录结构是:

<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="LocalAppDataFolder">
        <Directory Id="APPLICATIONFOLDER" Name="MyApp">

然后,我使用 psexec 通过系统会话运行 msi,但正如日志所述:

PROPERTY CHANGE: Adding APPLICATIONFOLDER property. Its value is 'C:\WINDOWS\SysWOW64\config\systemprofile\AppData\Local\MyApp\'.

它会尝试安装到默认的本地应用数据

我尝试了其他几种方法,例如通过 c# 自定义操作更改 APPLICATIONFOLDER,或者通过 c# 自定义操作修改数据库,但我仍然没有找到可行的解决方案。

任何帮助将不胜感激

【问题讨论】:

  • 我不使用GPO / AD deployment - 此安装是否在用户登录时运行?还是以其他方式运行?这是什么操作系统?
  • @SteinÅsmul windows 10. 安装会在某个时间运行,你不知道什么时候,它不会基于登录/登录/重启等事件运行。
  • 我还没有测试过这种部署方法——在这种情况下提出任何建议总是很危险的。您可以通过添加/删除或类似的方式自己调用它吗? (see "Publish software" section here)。我想知道这是否会使用登录帐户启动安装并因此参考您的用户配置文件? MSI 实际上是通过系统帐户和用户帐户(分别是文件副本和用户界面)安装的。
  • 我只想提一下MSIX - 新的包装格式。 MSIX App Distribution。在这里:Frequently Asked Questions about MSIX.

标签: wix windows-installer


【解决方案1】:

您对 MSI 所做的事情是正确的。但是,您使用 psexec 来“安装”(而不是 GPO),并且如您所说,“通过系统会话”,因此您获得了系统帐户的本地应用程序数据目录。

您需要将您的 MSI 分配(或者可能发布,但您描述的是分配)您的 MSI 给 GPO 中的用户。然后将根据需要安装 MSI。如果您在 GPO 中分配给计算机,则 MSI 应设置为“per-machine”,在这种情况下,ProgramFiles 将是更好的使用目录(在这种情况下 ALLUSERS 应为“1”)。

Use Group Policy to remotely install software

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    相关资源
    最近更新 更多