2012-03-14 118 views
0

下面将申请(修改)权限递归,尊重当前的权限:如何在WiX中应用文件夹权限,保留现有权限,但无递归?

<util:PermissionEx User="[MYUSER]" Domain="[NT_DOMAIN]" GenericRead="yes" GenericWrite="yes" GenericExecute="yes" Delete="yes" DeleteChild="yes" /> 

但是,我不想递归应用吧!

我想要它非递归,即只是该文件夹,并没有孩子。 (我相信旧元素清除父文件夹的权限继承,这意味着它对我的目的没有好处,因为我必须保留现有的权限)。

有什么办法可以告诉PermissionsEx不递归应用权限吗?我能否以某种方式组合PermissionEx和Permission节点以获得所需的效果?或者,我唯一的选择是向cacls.exe发出自定义操作命令行调用?

+0

只是放弃了,并用于在所述端CACLS: jimasp 2012-04-02 08:06:32

回答

0

我不确定任何三种内置模式(两个来自MSI,另一个来自WiX扩展)处理这种情况。 FWIW,我认为它不是你设置权限的对象的函数,而是所有选择继承的子对象的函数。换句话说,父母并不强制让孩子选择继承。

所以你可能需要对所有的孩子做一些反思,然后设置它们来阻止传播。努力和风险很高,所以我想知道为什么这是真正需要的,如果你不能创建你自己的新的子目录并在那里设置权限,那么你不必担心这个问题。

+0

我想你在这里说的是,在Windows资源管理器中,默认是为文件夹继承父权限,这是有道理的。不过,我相信旧式的WiX权限节点并不是递归的,所以很奇怪,这个新的扩展没有关闭递归的选项。我认为这是与尊重当前权限有关,这可能意味着它也尊重当前的继承权限。 WiX的主要问题似乎是(缺少)体面的文档,浪费了很多开发时间来测试。 – jimasp 2012-04-02 07:58:17

+0

回复:“我想知道为什么这实际上是需要的,如果你不能创建你自己的新的子目录并在那里设置权限”。因为它是根网络目录(我需要授予特定用户权限才能在那里复制app_offline.htm文件),即我没有选择,因为它是决定文件和文件夹位置的MS功能。 – jimasp 2012-04-02 08:04:31

+0

啊,我已经看到与clientaccesspolicy.xml类似的东西。如果你问我,这是MSFT的设计监督。 – 2012-04-02 13:19:31