我有一个在本地系统帐户的安全上下文中运行的进程。从C#开始,我该如何启动(使用System.Diagnostics.Process.Start)一个将在当前登录用户的安全上下文中运行的进程,而不是系统帐户?获取当前登录用户的身份,而不是系统帐户
0
A
回答
1
您需要获取当前登录用户的令牌并调用CreateProcessAsUser。请记住,使用快速用户切换(FUS)可以有多个用户登录到本机,因此您必须选择要启动过程的用户。
要枚举用户会话,您可以使用WTSEnumerateSessions API。使用它来查找当前的会话标识符。然后调用WTSQueryUserToken获取当前登录用户的令牌。使用此令牌,您可以使用CreateProcessAsUser。
不幸的是,您将需要对所有这些方法调用使用P/Invoke。如果你有用户名和密码,那么你可以简单地使用System.Diagnostics.Process.Start()重载。
0
我相信你需要确定/评估哪个会话在本地登录 - 请参阅WTSEnumerateSessions/WTSQuerySessionInformation/WTSQueryUserToken,我认为你仅限于Win32 API,我不认为它们是托管代码包装。
相关问题
- 1. 获取Adobe Air中当前登录的操作系统用户
- 2. 当以管理员身份运行时获取当前登录的用户
- 3. 如何使用WindowsIdentity.Impersonate来获取用户的登录,而不是ASPNET帐户
- 4. laravel获取使用Eloquent身份验证当前登录用户的ID
- 5. QT获取当前登录用户ID
- 6. 获取当前登录用户PHP
- 7. 获取当前登录用户
- 8. 获取当前登录用户asp.net
- 9. pysvn:获取当前登录用户名
- 10. collection.googleanalytics'找不到当前登录用户的Google Analytics帐户。'
- 11. 获取登录的用户SID而不是提升的用户
- 12. 如何从ASP.NET页面获取当前登录的Windows帐户?
- 13. 从以本地系统帐户启动的程序获取当前用户名
- 14. 如何获取当前登录Windows的用户的图像帐户?
- 15. 用户身份验证和登录系统在JAVA
- 16. 获取当前用户登录自定义身份验证MVC 4
- 17. 获取用户的身份而不进行身份验证
- 18. 如何以当前登录用户的身份发送推文?
- 19. 当前登录用户/管理员不能删除本身(当前登录的)
- 20. fbjs:获取当前的登录用户的用户
- 21. 如何获取当前登录用户的用户对象
- 22. Laravel用户登录系统
- 23. SharePoint 2010 - 所有用户都以系统帐户登录
- 24. 以不同的用户身份登录ASP.MVC不会改变用户身份
- 25. 哪一个是最佳实践:系统中所有登录用户或多个用户帐户的root帐户
- 26. 登录系统,读取身份和密码,然后登录
- 27. 如何从所有登录用户身份列表中获取当前登录请求的userIdentity?
- 28. 通过facebook获取登录用户的标签ID身份证
- 29. 使用Google帐户登录的Firebase身份验证超时
- 30. 使用twilio的电话身份验证系统登录系统
谢谢克里斯。我已经编码并且失败了; Marshal.GetLastWin32Error()将错误代码报告为3(我相信这意味着权限不足)。任何想法可能会导致失败(远射问题)。 – DEH 2009-10-09 17:10:50