我创建了一个msi包,它将文件和文件夹从生产位置复制到用户计算机,并在本地用户计算机中注册所需的dll。
本地用户现在没有任何计算机的管理员权限。但我创建的安装程序注册了一些DLL,这是问题所在。非管理员用户尝试运行安装程序时,注册逻辑失败。我从系统管理员那里收到了一些反馈给"我们需要更改Installsheild权限,以便作为“交互式用户”执行。作为“启动用户”执行。这样,当他执行MSI并调用installscript服务启动时,它将以启动安装程序的用户启动,而不是作为没有安装软件权限的登录用户(标准用户)。 "
我真的无法继续这个建议。有人可以帮助我。
谢谢, 萨克
答案 0 :(得分:1)
如果我理解您的要求,InstallShield 12更改了InstallScript MSI架构以避免此问题;如果你可以升级和重建,这个问题就应该消失。
如果无法升级,可以在Internet上搜索isscript.msi launching user
等术语,以查找有关如何修改DCOM服务以作为启动用户运行的建议。从相关的AppId注册表项中删除“交互式用户”值并不完全受支持,但很多人都已成功使用它。
如果这些是您无法控制的第三方安装,则Stack Overflow不是正确的论坛。
答案 1 :(得分:1)
为什么需要installscript才能注册Dll?有很多方法可以做到这一点,即使你只是使用你正在使用的设置工具将Dll放在MSI文件的SelfReg表中。这甚至不是最好的方法,但它不需要installscript。
但是,您不能通过让受限用户执行安装来执行限制用户无法执行的操作来违反系统安全性。注册HKLM将始终需要管理员权限。组策略可用于推出需要提升到受限用户计算机的设置。如果您希望有限的用户能够安装和使用您的应用程序,您需要重新设计它,因此它不需要创建或修改系统的限制区域,如avik所述。这也包括ProgramFiles文件夹。
答案 2 :(得分:1)
这里有几个好的答案,但似乎他们试图回答不同的问题。目前还不完全清楚真正的问题是什么:
1:Michael Urman引用了Installshield设置可能出现的错误,其中Installscript自定义操作与交互式用户而不是启动用户一起运行,这可能会触发权限问题。如果您使用的是新版本的Installshield,则不应该出现问题。有一些较早的知识库文章:Q108324,Q108340
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。这个过程很相似。