首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从提升的程序中使用用户权限启动程序

从提升的程序中使用用户权限启动程序
EN

Stack Overflow用户
提问于 2013-06-18 00:52:05
回答 2查看 311关注 0票数 1

我有一个需要提升权限的应用程序(它有点像自定义安装程序)。在这个应用程序中,我使用ShellExecute()显示一个PDF文件。Adobe Reader似乎是以与调用应用程序相同的权限启动的。我希望Adobe Reader能够以标准的用户权限启动,而不是被提升。

我有什么办法可以做到这一点吗?(它可能是在Delphi中实现的,但是对于这个问题,语言可能并不重要)。

EN

回答 2

Stack Overflow用户

发布于 2013-06-18 03:58:07

不幸的是,没有真正简单的方法来做到这一点。

执行此操作的一种方法是使用Task Scheduler -使用当前登录用户的非提升凭据,使用ITaskService界面安排任务立即运行。

票数 0
EN

Stack Overflow用户

发布于 2013-06-18 04:06:35

您试图实现的目标不是很容易实现的,也不受支持。然而,使用少量的黑客攻击是可能的。Aaron Margosis写了一篇article,描述了一种技术。

要引用相关部分,您需要执行以下步骤:

在当前令牌中启用访问令牌获取代表桌面外壳的HWND (GetShellWindow)

  • Get与该窗口(GetWindowThreadProcessId)

  • Open关联的进程的进程ID (PID) (OpenProcess)

  • Get (OpenProcessToken)

  • Make (DuplicateTokenEx)

  • Start (CreateProcessWithTokenW)

  1. (GetWindowThreadProcessId)
  2. Open(OpenProcess)
  3. Get(OpenProcessToken)
  4. Make(DuplicateTokenEx)
  5. Start(CreateProcessWithTokenW)
  6. (GetWindowThreadProcessId)
  7. Open(OpenProcess)
  8. Get(OpenProcessToken)
  9. Make(DuplicateTokenEx)
  10. Start(CreateProcessWithTokenW)
  11. (GetWindowThreadProcessId)
  12. Open(OpenProcess)
  13. Get(OpenProcessToken)
  14. Make(DuplicateTokenEx)
  15. Start(CreateProcessWithTokenW)
  16. SeIncreaseQuotaPrivilege

这篇文章包含了一些演示Delphi源的下载链接,它应该足够简单,以便翻译成C++。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17152790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档