将正在运行的程序提升为管理员 (Windows 7)

Cas*_*ash 39 windows-7

有时,您可能希望以管理员身份打开一个程序,但您可能已经不是以管理员身份打开了它。是否可以提升已在 Windows 7 中运行的程序的权限,或者我是否必须以管理员身份关闭并重新启动?

Ste*_*ngs 29

抱歉不行。无法将正在运行的进程提升为管理员权限。我正在寻找更权威的来源,但现在我找到了:

  1. “程序一旦启动就无法提升……”

  2. “代码只能在启动时在进程级别提升,这意味着无法提升正在运行的进程。”

  • @Fopedush 尽管那篇文章将这种技术描述为“自我提升”,但这些示例程序似乎实际上在做的是使用“ShellExecuteEx”和动词“runas”启动进程的新实例。我认为这并不能满足 OP 提升已经在运行的程序的需求(例如,它将失去其所有状态)。 (9认同)
  • 这是绝对不真实的。win32 API 确实支持提升已经在运行的任意应用程序,尽管有问题的应用程序必须公开功能本身。[本文](http://archive.msdn.microsoft.com/KB981778) 和随附的源代码演示了如何实现这一点。可以想象,人们可以编写一个应用程序来选择和提升其他进程...... (3认同)
  • @naxa 我没有使用过 Total Commander,但我愿意打赌“以管理员身份重试”选项实际上会产生一个完全独立的提升进程来执行特权工作。当您选择“显示所有进程的详细信息”时,进程资源管理器会执行此操作,它会启动其自身的新提升副本并关闭未提升的副本。如果是这种情况,则需要专门编写程序以了解如何正确启动第二个进程。 (3认同)