运行 作为本地系统处理

Run process as Local System

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

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

请哪位大侠指教。我的搜索让我不停地兜圈子。

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

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