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