首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows会话问题

Windows会话问题
EN

Stack Overflow用户
提问于 2020-04-16 15:58:45
回答 1查看 101关注 0票数 0

我正在开发一个应用程序(AppRunner),它使用登录到用户令牌(CreateProcessAsUser)的控制台执行另一个应用程序( app )。AppRunner应该能够从任何会话/用户组合执行APP,包括会话0+系统或标准用户会话/用户名。

由于这个话题对我来说是新的,所以我有几个关于会话的问题,在谷歌搜索之后我没有找到答案:

  1. 可以有多个活动会话吗?
  2. 有可能没有任何活动会话吗?
  3. 是否存在用户系统无法获取活动会话的用户令牌的情况?(WTSQueryUserToken)
  4. If I使用WTSEnumerateSessions枚举会话,但找不到活动会话,使用WTSGetActiveConsoleSessionId有什么意义吗?或者WTSGetActiveConsoleSessionId只是WTSEnumerateSessions?

的包装。

非常感谢!

EN

Stack Overflow用户

回答已采纳

发布于 2020-04-16 18:01:07

  1. 可以有多个活动会话吗?

WTSActive状态一次可以有多个会话,是的。这些代表与登录用户的会话,包括本地用户(在物理机器上)和远程用户。不过,每次只有一个本地会话将被附加到物理键盘/鼠标/监视器(KMM)。该会话就是您在屏幕上看到的内容,它可能有或可能没有用户登录到它。本地用户可以任意切换多个本地会话,或登录/退出它们,从而影响在任何给定时刻将哪个会话附加到KMM。远程登录的用户将登录到自己的会话,但这些会话将永远不会附加到KMM。

  1. 可以不使用任何活动会话吗?

是的,如果没有用户登录。

  1. 是否有用户系统无法获得活动会话的用户令牌的场景?(WTSQueryUserToken)

是。如果没有用户登录到请求的会话,WTSQueryUserToken()将失败,GetLastError()将返回ERROR_NO_TOKEN。此外,即使您查询有登录用户的远程会话,WTSQueryUserToken()也可能会失败,也可能不会失败,这取决于用户如何登录会话。

  1. 如果我使用WTSEnumerateSessions枚举会话,但找不到活动会话,那么使用WTSGetActiveConsoleSessionId有什么意义吗?或者WTSGetActiveConsoleSessionId只是WTSEnumerateSessions?

的包装。

WTSGetActiveConsoleSessionId()返回当前附加到KMM的会话。该会话可能有或可能没有用户登录,但它仍然可以显示UI。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61254653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档