我有一个作为管理员进程运行的常规程序。但它并不完全具备我需要的所有特权。如何提升此进程以作为本地系统帐户运行?
我不想使用任何外部工具来实现此提升。如果能调用一些Win32的函数来实现就完美了。我也愿意编写并运行 Windows 服务,以便将其权限传递给相关进程。
有人请给我一个线索。我的搜索让我不停地兜圈子。
最佳答案
- 程序向服务发送 session ID
- 服务调用 OpenProcessToken 和 DuplicateTokenEx 来创建本地系统 token
- 服务调用 SetTokenInformation 来更改 token session ID 以匹配程序的
- 服务调用 DuplicateHandle 来创建 token 句柄
- 服务向程序发送句柄
- 程序使用收到的句柄调用 SetThreadToken
该程序将至少有一个具有本地系统权限的线程。这足以满足我的目的。
关于c++ - 作为本地系统运行进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43411059/