我有一个非交互式服务作为Windows机器上的特权SYSTEM用户运行,我需要它作为提升的进程启动给定的可执行文件。
我已经设法使用WTSGetActiveConsoleSessionId()启动子进程作为SYSTEM,找到系统进程并复制它的令牌。同样,我可以作为普通用户启动非提升流程。但我需要以普通用户的身份启动该流程,但具有提升的权限 - 这样我就不必显示UAC,但该流程正在以适当的用户身份运行。
我并不想绕过UAC - 因为用户已经同意安装该服务。我正在努力减轻不便。我找到了一个similar, unanswered question - 但是再次问我希望得到答案。
答案 0 :(得分:3)
如果您有交互式用户的过滤令牌 - 例如,通过WTSQueryUserToken()检索到的令牌 - 您可以使用GetTokenInformation检索未过滤的("提升的")令牌使用TokenLinkedToken选项运行。