c++ - 作为本地系统运行进程

标签 c++ elevation

我有一个作为管理员进程运行的常规程序。但它并不完全具备我需要的所有特权。如何提升此进程以作为本地系统帐户运行?

我不想使用任何外部工具来实现此提升。如果能调用一些Win32的函数来实现就完美了。我也愿意编写并运行 Windows 服务,以便将其权限传递给相关进程。

有人请给我一个线索。我的搜索让我不停地兜圈子。

最佳答案

  1. 程序向服务发送 session ID
  2. 服务调用 OpenProcessToken 和 DuplicateTokenEx 来创建本地系统 token
  3. 服务调用 SetTokenInformation 来更改 token session ID 以匹配程序的
  4. 服务调用 DuplicateHandle 来创建 token 句柄
  5. 服务向程序发送句柄
  6. 程序使用收到的句柄调用 SetThreadToken

该程序将至少有一个具有本地系统权限的线程。这足以满足我的目的。

关于c++ - 作为本地系统运行进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43411059/

相关文章:

c++ - 我应该如何在 C++ 的类方法中正确使用 __attribute__ ((format (printf, x, y)))?

java - 安卓NDK。减小 APK 的大小

react-native - react native 海拔高度和绝对位置

android - 以编程方式设置 CardView 海拔

windows-7 - 需要提升启动注册表项的程序 (Windows 7)

c++ - 尝试重载 "+"运算符时收到错误消息说我的类没有命名类型

stream is false 和 eof() 之间的 C++ 区别

c++ - 如何从数据集中读取特定的字符列

android - 高程/阴影不适用于我的应用程序

openstreetmap - OSM 标高