以当前LocalSystem用户的默认权限运行进程

问题描述

一个 MSI 自定义操作可以启动外部进程。但是,在 Windows 7(也可能是 Vista)上,在 LocalSystem 帐户下运行的自定义操作没有 SE_BACKUP_NAME 权限。我正在启动的外部进程在某个阶段需要此特权。但是,它没有获得特权,因为父级(运行 MSI 自定义操作)没有特权。这是 Vista/7 上的一个已知问题,因为如果自定义操作(例如 MSI)作为本地系统帐户运行,Microsoft 已取消对 msiexec.exe 进程的此权限。 IMO,这个问题不需要关于 MSI 的更多信息。

我尝试了 logonUserSetTokeninformation添加新权限)、设置和更新链接令牌、DuplicatetokenEx 和最终 CreateProcessAsUser 的组合。但是,无论我如何尝试,创建的进程都不会启用备份权限。

我的简单问题是:

  • 如何使用本地系统帐户将拥有的所有权限运行外部进程?

为什么 Windows 坚持使用受限令牌?

我知道一旦创建了令牌,就不能再添加任何权限了。 SetTokeninformation 将失败。我想知道如何将特权添加到令牌(尚未使用)!

相关:

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)