gpt4 book ai didi

permissions - CustomAction 以管理员身份运行

转载 作者:行者123 更新时间:2023-12-04 02:45:31 24 4
gpt4 key购买 nike

我创建了一个自定义操作:

<CustomAction Id='AddEventLog' BinaryKey='CustomActionEventLog.dll' DllEntry='AddEventLog' Return="check" Execute="immediate"/>

安装顺序
<Custom Action="AddEventLog" Before="InstallFinalize"  />

我的安装程序确实弹出并说它需要管理员权限才能运行。我授予它。
InstallPrivileges='elevated' InstallScope='perMachine' AdminImage='yes'

但是,当它运行自定义操作时,它不起作用,因为它不是以管理员身份运行。

我什至尝试将以下内容添加到我的自定义操作项目 dll 上的 app.manifest。它没有帮助。
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

我已经搜索了所有关于这个主题的教程和论坛帖子。注意到已经奏效了。

如果有人对此有更好的标签,请随时添加它们,我一整天都在为此苦苦挣扎。

更新澄清:

虽然我的 customAction 与 EventLog 一起工作,但我没有使用 http://schemas.microsoft.com/wix/UtilExtension实用程序:事件源。这是一个普遍的问题,您甚至可以强制以管理员身份运行 customAction 吗?

最佳答案

要以管理员权限运行任何自定义操作,您 必须在安装的服务器部分运行自定义操作。即:它必须是一个延迟的自定义操作。否则,我认为您会收到一个 Consent.exe 消息框,要求您获得管理员权限。

所有 msi 安装都分为两部分,安装的客户端和服务器部分。客户端部分是您看到 UI 和设置属性的地方,这些属性可以确定安装的位置和安装的内容(它们必须标记为安全,安装的服务器部分才能访问它们)。服务器部分实际上是将文件放在您的系统上的部分。这总是 (??) 需要管理员权限,因为它可以将内容写入程序文件和其他 protected 文件位置。

这些自定义操作必须标记为“Execute='deferred'”,并且还必须在 InstallaInitialize 和 InstallFinalize 之间进行调度。

另请注意,如果您想在自定义操作中使用安装中的任何属性的值,您需要使用单独的自定义操作,该操作设置具有特殊格式的特殊命名属性。然后,您在查询 session 对象的 CustomActionData 的自定义操作中获取属性值。你可以找到很多例子。

关于permissions - CustomAction 以管理员身份运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37391137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com