Windows Installer:如何仅为管理员创建开始菜单快捷方式?
我有一个WSI安装程序包,用于安装我的应用程序。该应用程序本身可以由普通用户运行,但是我有一个配置应用程序,只能由系统管理员运行。因此,我不希望它出现在所有用户的"开始"菜单中,仅显示在管理员中。
有什么方法可以告诉Windows Installer为所有用户创建一些快捷方式,而为管理员创建其他快捷方式?
解决方案
通常,在"所有用户"目录(C:\ Documents and settings \ All Users)中,到处都有快捷方式。如果只希望在Administrator组中,则应将其放在C:\ Documents and settings \ Administrator或者任何用户名中(可能在需要管理权限的安装过程中可以找到它)。
因为我怀疑我们是否会知道每个管理员的名称,并且没有仅管理员的开始文件夹,所以我认为一个更好的解决方案是让我们检查配置应用程序以查看运行它的用户是否是管理员,然后退出如果不是,请优雅地。
编辑:
也许我应该进一步解释为什么我认为仅为管理员添加快捷方式是解决错误问题的情况。以下是一些我认为将说明陷阱的方案:
1)如果我们在本地管理员组中查找并为列出的每个用户添加快捷方式,该怎么办?现在,一周后,我被添加到本地管理员中。我没有捷径。
2)通常,尤其是在企业中,个人不在本地管理员中,组中则是个人。从理论上讲,我们可以:查询AD以查找每个组的成员(在这里甚至不考虑嵌套的组),然后为每个用户添加"文档"和"设置"下的适当文件夹,即使他们可能登录也可能从未登录过此计算机。即使我们做了更改,但如果该组成员的发货发生了变化,那么某些管理员也可以登录并且没有快捷方式。
3)假设我们为每个管理员添加了它。取消我的管理员权限后会发生什么?我仍然有捷径。
通过让MSI安装脚本进行测试,以测试当前用户是否是管理员,以及是否使用脚本,可以解决这些问题。然后将脚本注册为"活动设置"项。然后,无论何时有新管理员登录,他们都会获得快捷方式。但是,如果他们失去了管理员权限,则不会删除快捷方式。
无论如何,如果我了解这种情况,那么都不会阻止任何用户管理员进入或者运行快捷方式指向的任何地方。
因此,我再次要说的是,仅为管理员添加快捷方式可以解决错误的问题。要解决的正确问题是使它成为可能,因此我们必须是管理员才能运行config实用程序。
我们可以将有问题的快捷方式放在子文件夹中,并拒绝非管理员用户访问该文件夹的内容。他们将看到一个空文件夹,管理员将看到一个充满快捷方式的文件夹。这不是理想的解决方案,而是非管理员用户可以在不提升权限的情况下实现的最佳解决方案。