这个问题是关于我目前正在处理的权限问题的这个问题的后续和延续。
问题摘要:
我在没有Debug programs (SeDebugPrivilege)权限的域管理员帐户下运行程序,但我需要在本地计算机上使用它。
Klugey 解决方案:
该程序可以将自己安装为本地机器上的服务,并启动该服务。所述服务现在在该SYSTEM帐户下运行,这使我们能够使用我们的SeTCBPrivilege特权创建一个新的访问令牌,该令牌具有SeDebugPrivilege. 然后我们可以使用新创建的令牌重新启动具有提升权限的初始程序。
我个人不喜欢这个解决方案。我觉得应该可以以管理员身份获得必要的权限,而无需进行系统修改,例如安装服务(即使只是暂时的)。
我希望有一种解决方案可以最大限度地减少系统修改,并且最好可以即时完成(即:不需要自行重新启动)。我曾经失败尝试LogonUser的SYSTEM,并试图OpenProcessToken在已知的系统进程(如CSRSS.EXE)(其失败,因为你不能OpenProcess用PROCESS_QUERY_INFORMATION得到的句柄过程中没有特权,我试图获取)。
我只是在我的智慧尽头试图想出一个替代解决方案来解决这个问题。我希望有一种简单的方法可以在主机上获取特权令牌并为该程序模拟它,但我还没有找到方法。
如果有人知道解决这个问题的方法,或者甚至对可能有效的事情有建议,请告诉我。我非常感谢您的帮助,谢谢!