Permissions 如何使用wix安装程序拒绝用户的文件夹权限
我的目标是将我的应用程序安装到一个文件夹:Permissions 如何使用wix安装程序拒绝用户的文件夹权限,permissions,wix,windows-installer,installation,Permissions,Wix,Windows Installer,Installation,我的目标是将我的应用程序安装到一个文件夹: 系统可读写 管理员可读写 没有其他任何人的其他权限 我尝试了wixPermission和PermissionEx元素的各种组合和安排 我最近的尝试是: <CreateFolder> <util:PermissionEx User="Users" GenericRead="no" Read="no"/> <util:PermissionEx User="Everyone" GenericRead="no" Rea
- 系统可读写
- 管理员可读写
- 没有其他任何人的其他权限
Permission
和PermissionEx
元素的各种组合和安排
我最近的尝试是:
<CreateFolder>
<util:PermissionEx User="Users" GenericRead="no" Read="no"/>
<util:PermissionEx User="Everyone" GenericRead="no" Read="no"/>
<util:PermissionEx User="Administrators" GenericAll="yes"/>
</CreateFolder>
在组件
元素内部
我的结果始终相同:用户仍然显示对已安装文件夹的读取、读取和执行权限,以及列表文件夹内容
我的目标与我的非常相似
我也考虑过和。我只是想知道你的总体目标是什么(有几个选项可以应用):
- 目标是防止普通用户运行应用程序吗?(不太好,但应该可以运行。普通用户在应用程序启动时会被要求输入管理员密码。如果他们没有,就我所知,他们无法运行应用程序,除非他们提升的管理员帐户没有密码!)
- 目标是防止普通用户能够列出实际文件夹的内容吗?替换ACL(禁用继承的权限)并仅为您希望能够访问文件夹的用户/用户/组添加访问权限应该可以做到这一点。不需要为普通用户拒绝权限或特定权限。换言之,只需替换现有的ACL,并为管理员添加通用写入权限和系统的完全权限
快速模型 只想添加一个测试权限,我发现。只需在Windows资源管理器中根据需要修改ACL权限。然后启动提升的命令提示符并导航到要捕获其ACL的文件夹。然后去:
cacls.exe foldername /s
这应该表明您可以直接在WiX中转储,以在MSI文件()中使用新的内置LockPermissionEx
表:
该文件夹现在像一些核心操作系统文件夹一样超级隐藏。这样的文件夹不会显示在Windows资源管理器或命令行中,除非您采取特殊步骤使其显示(显示隐藏的OS文件-请参阅上面的链接)。但是,如果用户知道文件夹在那里,则不会锁定该文件夹以供访问。也许你可以将超级隐藏标志与另一种方法结合起来?(隐藏文件夹并将其锁定?)
- “奇怪的黑客”:
WiX似乎不直接支持MsiLockPermissionsEx表,因为似乎没有一种方法可以直接粘贴SDDL字符串以应用于某些内容,除非我在某些地方遗漏了它 谢谢你,斯坦。我的目标是你的第二项。我不希望普通用户阅读此文件夹的内容。您是否有“仅替换现有ACL并为管理员添加通用写入和系统的完全权限”的wix代码示例?谢谢,我已经做了一些测试,因为我担心结果不准确
<Component Feature="ProductFeature">
<File Source="Files\Test.exe" />
<CreateFolder>
<PermissionEx Id="p1" Sddl="D:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1200a8;;;BU)" />
</CreateFolder>
</Component>
attrib +s +h "C:\Folder\"