2

我创建了一个 msi 包,它将文件和文件夹从生产位置复制到用户机器,并在本地用户机器中注册所需的 dll。

本地用户现在在任何机器上都没有管理员权限。但是我创建的安装程序注册了一些 dll,这就是问题所在。当非管理员用户尝试运行安装程序时,注册逻辑失败。我从我的系统管理员那里得到了一些反馈:“我们需要将 Installsheild 权限从以‘交互式用户’执行更改为‘启动用户’执行。这样,当他 MSI 执行并调用 installscript 服务来启动它时,它将以启动安装程序的用户身份启动,而不是以无权安装软件的登录用户(标准用户)身份启动。”

我真的无法继续这个建议。有人能帮我吗 。

谢谢,萨赫

4

3 回答 3

1

如果我理解您的问题,InstallShield 12 更改了 InstallScript MSI 架构以避免此问题;如果您可以升级和重建,这个问题应该会消失。

如果无法升级,您可以在 Internet 上搜索术语,例如isscript.msi launching user查找有关如何修改 DCOM 服务以作为启动用户运行的建议。不完全支持从相关的 AppId 注册表项中删除“交互式用户”值,但很多人已经成功了。

如果这些是您无法控制的第三方安装,则 Stack Overflow 不是正确的论坛。

于 2014-03-19T12:33:50.653 回答
1

为什么需要 installscript 来注册一个 Dll?有很多方法可以做到这一点,即使您只是使用您使用的任何设置工具将 Dll 放入 MSI 文件的 SelfReg 表中。这甚至不是最好的方法,但它不需要 installscript。

但是,您不能通过让受限用户执行安装来执行受限用户无法执行的操作来违反系统安全性。注册 HKLM 将始终需要管理员权限。组策略可用于推出需要提升到受限用户计算机的设置。如果您希望有限的用户能够安装和使用您的应用程序,您需要重新设计它,以便它不需要创建或修改系统的限制区域,如 avik 所述。这也包括 ProgramFiles 文件夹。

于 2014-03-19T18:33:00.583 回答
1

这里有几个很好的答案,但似乎他们试图回答不同的问题。目前尚不完全清楚真正的问题是什么:

1:Michael Urman 指的是 Installshield 设置可能发生的错误,其中 Installscript 自定义操作与交互式用户一起运行而不是启动用户,这可能会触发权限问题。如果您使用的是新版本的 Installshield,这应该不是问题。有一些较旧的知识数据库文章:Q108324Q108340

2:除非您强制执行所谓的“提升权限” ,否则无法以标准用户身份运行需要对计算机进行管理员访问的设置。实际上,安装时 MSI 对大多数系统的临时写入访问权限,但不是真正的管理员权限。

我猜你真正面临的问题是后者。在较大的公司中,提升的权限通常通过其软件分发系统来执行。例如微软的 SCCM 或 SMS,因为它曾经被称为。但是,有一种更基本的方法可以让设置启动提升,该方法在此处进行了说明:http: //support.microsoft.com/kb/259459/EN-US - 如 Avik 所示。

我没有找到更改 DCOM 设置的正确链接,但这里有一个用于不同产品的链接:http: //msdn.microsoft.com/en-us/library/windows/desktop/ms630816 (v=vs.85 ).aspx。过程类似。

于 2014-03-20T03:00:24.913 回答