我的服务正在以本地系统权限运行,并且需要在用户会话中以管理员权限启动应用程序。
我得到的方法如下:
1. 使用WTSGetActiveConsoleSessionID()获取当前活动的控制台会话ID。 2. 使用WTSQueryUserToken为会话ID获取用户令牌。 3. 使用CreateProcessAsUser启动进程。
然而,问题是我需要以管理员身份运行步骤3的进程,但不需要要求用户提供管理员密码。
在Linux系统上,我可以简单地使用“su”命令,但在Windows系统上该怎么做呢?
我得到的方法如下:
1. 使用WTSGetActiveConsoleSessionID()获取当前活动的控制台会话ID。 2. 使用WTSQueryUserToken为会话ID获取用户令牌。 3. 使用CreateProcessAsUser启动进程。
然而,问题是我需要以管理员身份运行步骤3的进程,但不需要要求用户提供管理员密码。
在Linux系统上,我可以简单地使用“su”命令,但在Windows系统上该怎么做呢?
su
的作用,但是在某一时刻,如果没有提供凭据,它是不能用来获取root权限的。接下来,如果登录用户不是管理员,你打算怎么做呢? - David HeffernanCreateProcessAsUser
并传递一个非管理员用户的令牌会有什么帮助呢?我认为您并没有完全理解Windows安全模型。 - David Heffernan