- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我提供给 Wix 编译器为我的应用程序构建 MSI 包的 Wix 源代码包含以下 PermissionEx
指令,Windows Installer 应该安装附加的文件组件的一部分(到那些应该默认继承的)权限:
<PermissionEx Sddl="D:AR(A;;FW;;;BU)" />
如您所料,我打算安装包含在其 ACL 中的继承权限(“AR”)的文件,并且最重要的是允许内置用户组(“BU”)的成员被允许(“A") 写入文件 ("FW")。
上面的代码没有达到预期的效果——文件已安装,但只列出了单个显式 ACE,没有应该从父文件夹继承的 ACE。
相比之下,如果我随后从文件中删除所有权限并运行 cacls file/S:D:AR(A;;FW;;;BU)
,即指定完全相同的 SDDL 字符串,它确实按预期工作——来自父级的权限是继承的,并与显式非继承的 ACE 一起构成 ACL 的一部分。
我使用的是 Wix 3.11.1.2318,Windows Installer 版本为 5.0.16299.611,均在 Windows 10 Enterprise 64 位系统上运行。 Orca 告诉我嵌入在我构建的 MSI 文件中的 MsiLockPermissionsEx
表填充了预期的 SDDL 记录。那么,为什么创建的文件没有继承其包含文件夹的权限?
我尝试用“AI”代替“AR”,将两者串在一起,但都没有任何效果。
这是 Windows Installer 的一些已知限制或怪癖吗?我知道人们很久以前就在谈论旧的 LockPermissions
表(为早于 5 的 Windows Installer 版本指定的表)在这个特定方面是不充分的——即继承的权限——但他们也表示微软打算通过新的表格功能解决这个问题。
否则我做错了什么?
最佳答案
鉴于您在这个领域的知识,您可能已经尝试过这个。消除对许可的需求也会好得多,但有两个片段供您使用 - 请注意 Append
属性:
在 Visual Studio 中创建一个 WiX 项目。将 Util 命名空间添加到 WiX 元素:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
在 Visual Studio 项目中,右键单击 References 并添加对 "%ProgramFiles(x86)%\WiX Toolset v3.11\bin\WixUtilExtension.dll"
的引用。
权限文件夹:
<Component Feature="ProductFeature" Id="Test.exe" Guid="PUT-GUID-HERE">
<File Source="C:\Test.exe" />
<CreateFolder>
<util:PermissionEx User="Power Users" GenericWrite="yes" />
</CreateFolder>
</Component>
权限文件:
<Component>
<File Source="C:\Test2.exe">
<util:PermissionEx Append="yes" User="Users" GenericWrite="yes" />
</File>
</Component>
关于wix - 为 Wix/Windows Installer 安装的文件指定权限时如何包含继承权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55145282/
我听说最好不要从您系统的 Perl 版本所在的 CPAN 安装模块。我知道如何使用命令行安装模块,我只是想知道是否有办法将 CPAN 与系统核心 Perl 分开。 我应该: 下载源代码并专门为这些模块
我听说最好不要从系统的 Perl 版本所在的 CPAN 安装模块。我知道如何使用命令行安装模块,我只是想知道是否有办法将 CPAN 与系统的核心 Perl 分开。 我应该: 下载源代码并专门为这些模块
单独安装 electron 与通过 electron-builder 安装有什么区别?我正在使用 React 构建一个 Electron 应用程序,并且已经找到了一些教程。它们安装 Electron
两者安装有什么区别?我按照安装页面上的说明在全局范围内安装了 webpack,然后我转到了入门指南,据说在那里可以在本地安装 webpack-cli。 CLI = Command Line Inter
我在 OS X Yosemite 上用 PHP 安装了默认的 Apache 服务器,安装了 pear,用 brew 安装了 Solr (brew install solr),现在我正在尝试使用 PEC
我解压并编译了 Ruby 2.1 并安装了几个支持工具。 但是当我安装了 libssl-dev 时,OpenSSL 不会安装。 我在支持 openssl 时遇到这个错误: make: *** No r
我在 android studio 2.3.1 和 gradle 3.2 中设计了 2 到 3 个应用程序。当我从它运行应用程序到任何设备或模拟器时,一切都工作正常。但是当我从构建文件夹中获取该 ap
我注意到我正在读一本书提到通过 apt-get 安装 numpy 和 opencv apt-get install python-numpy python-opencv 但我可以通过以下方式在 pip
我正在尝试在 Windows 8.1 上安装 ansicon。我提取了文件并达到了我需要调用 ansicon -i 的级别。当我在 cmd 中输入此内容并运行 python 脚本时效果很好,但是当我通
我有 linux MINT 17.3 Kernel 4.4.0-81 所有更新可用。 (由于不同的原因,我无法迁移到更新版本的 ubuntu/mint) 我已经通过 PPA 安装了 FFMPEG(不是
尝试在本地运行我的应用程序时出现错误: 我只在 chrome 浏览器中收到此错误。我尝试过不同的东西,但我不确定为什么它是 Chrome 特定的。 最佳答案 我怀疑这不是 Firebase 问题,而是
这是我第一次开发 AngularJS 应用程序并使用脚手架工具 Yeoman ( http://yeoman.io/ )。我想对我的一些图标使用 fontawesome ( http://fortaw
我知道您通常“应该”$ pip install 如果包没有 brew ,但如果有一个你想安装的 python 包,你可以使用 $ pip install或 $ brew install为了?例如,通过
我正在尝试通过 RVM 安装 Ruby 1.9.3。然而,当谈到安装 RubyGems 时,我得到了这个: curl: (22) The requested URL returned error: 4
我是真正提出问题的新手,但你去吧。 我一直在尝试按照安装指南添加 dnsname: https://github.com/containers/dnsname https://github.com/c
Studio更新至0.4.0 建筑产量为“需要1.8版Gradle”;将设置设置为1.8 bin目录; 建立 “要求1.9级”;将设置设置为1.9 bin; 建立 “要求1.8级” 啊。不知道该怎么做
我刚刚注意到 kernel.org 因维护而停机。是否有使用不同镜子的不同公式?或者我可以向 Homebrew 软件添加不同的来源(如 bundler ?)? 谢谢你的帮助! 最佳答案 快速解决方法:
当我运行时: peardev install phpunit/PHPUnit 我得到以下信息: No releases available for package "pear.phpunit.de/P
服务器操作系统为Fedora 24. 64bit。 我想安装 Git 2.6.6。 所以下载源码并安装。 此服务器离线。所以我不使用“yum”。 ./configure --prefix=/usr/l
我正在尝试在我自己的服务器(操作系统:Linux Ubuntu Server 12.04)上安装 OpenEdX,但我遇到了同样的错误。谁能帮帮我? TASK: [ insights | insta
我是一名优秀的程序员,十分优秀!