2014-03-19 38 views
2

我创建了一个msi软件包,它可以将文件和文件夹从生产位置复制到用户计算机,并在本地用户计算机中注册所需的dll。非管理员用户的MSI安装程序

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

我确实无法继续处理此建议。有人能帮我吗 。

感谢, 萨克斯

+0

[如何为有限的(非管理员)用户进行设置工作](http://stackoverflow.com/questions/4080131/how-to-make-a-setup-work-for-limited - 非管理员用户) –

回答

1

如果我理解你的要求,InstallShield将12改为安装InstallScript MSI架构来避免这个问题;如果你可以升级和重建,这个问题应该会消失。

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

如果这些是您没有控制权的第三方安装,堆栈溢出不是正确的论坛。

1

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

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

1

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

1:迈克尔Urman指其中一个INSTALLSCRIPT自定义动作与交互式用户而非启动用户运行,这可以触发,可以使用InstallShield设置发生错误许可问题。如果您使用的是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。这个过程是相似的。

相关问题