2009-12-01 65 views
0

我注意到,在我的Windows 7系统上,常见appdata文件夹中有许多子文件夹和hkey_local_machine下的许多软件。我想知道如何在安装软件时创建条目,以及使程序能够访问它们。.msi常见应用程序数据本地计算机注册表

.msi文件中是否有这些设备可以使这些文件夹和注册表条目建立适当的权限?

回答

0

关于注册表项,MSI文件中的“注册表”表创建注册表项。

关于常见的AppData文件夹,此属性为:“CommonAppDataFolder”是MSI文件用来引用它的内容。

关于权限,“Lock Permissions”表负责设置权限。

理论上,文件/注册表设置的所有者/创建者是显而易见的,您可以在Orca的内部查看相应的MSI文件以查看它是如何创建的。否则,您可能必须启用审核功能,或使用来自Sysinternals的RegMon/FileMon等工具来查看谁在创建条目。

+0

谢谢。我设法使用Orca添加注册表项。没有尝试将文件添加到commonappdata或diddle权限。现在我还有一百多个问题,但会试图将我自己限制在几个问题上。 1)我不明白安装程序如何受现存权限的影响。如果启动安装的用户没有权限执行指定的操作(创建文件或注册表),会发生什么情况? 2)需要这些资源的应用的常见做法是什么?因为ADMIN安装看起来有点极端。要求管理员设置权限b4手或创建它们也很奇怪。 – 2009-12-02 12:20:19

+0

1)在XP和以前,尝试将应用程序安装到没有写权限的区域的非管理员用户(例如Program Files)会导致安装失败。在Vista和Forward中,非管理员用户可以在提升期间输入管理员的凭据,并且安装将继续。 2)一个常见的做法是使用MSI功能“广告”。这允许管理员“祝福”安装包。在非管理员用户试图访问它(通过快捷方式,COM接口等)之前,软件包不会被安装,并且在此时安装会确认管理员的凭证。 – 2009-12-02 16:27:39

+0

@William Leara:使用Orca,我为hkey_local_machine添加了一个密钥,并调整了它的保护。我从MSICREATE制作的一个简单的.msi开始,包含一个.exe,.txt和.chm文件)。创建密钥时,我使用了.exe的COMPONENT ID。然后,我开始了并采取了相同的行动进行了改造。我可以将转换应用(使用orca)转换为.msi的新版本,但是当我重新制作.msi时组件已更改,因此现在我有一个链接到一个不可用组件。有什么方法可以对现有组件进行固定引用或为此创建新组件? – 2009-12-04 17:50:00

相关问题