会话,窗口工作站和桌面

会话,窗口站点和桌面。

会话由代表单个用户的login会话的所有进程和其他系统对象组成。 会话包含窗口站和窗口站包含桌面。

以上是来自http://blogs.technet.com/b/askperf/archive/2007/07/24/sessions-desktops-and-windows-stations.aspx

(类似的文章也是这样说的,例如blogs.technet.com/b/askperf/archive/2007/04/27/application-compatibility-session-0-isolation.aspx和blogs.msdn.com/b/ntdebugging/archive /2007/01/04/desktop-heap-overview.aspx)

我一直都明白会话和login会话是一回事。

但是,阅读p。 474,Russinovich和Solomon,Windows Internals,第5版,它说(倒数第二段):

CreateProcessWithLogon函数还通过创build一个具有初始过程的新login会话来创build一个令牌,这是Runas命令在替代令牌下启动进程的方式。

所以Runas创build一个新的login会话。 如果我们使用Runas在不同用户的凭据下运行记事本,我们会看到它出现在桌面上。 所以记事本和其他一切运行在同一个桌面上。 (据我所知,这是Window Station Winsta0中的默认桌面;交互式窗口站)。因此,我们现在有两个login会话与同一会话(包含窗口站)相关联。 所以会话和login会话似乎不是一回事。

有人可以证实这个吗?

困惑

Solutions Collecting From Web of "会话,窗口工作站和桌面"

这里确实有两种类型的会话。 这是我对他们如何工作的理解。

  1. 登录会话 [ 2 ]由本地安全机构 [ 2 ]管理,并管理用户登录的范围。 这些主要由winlogon进程创建,其次由API函数(如LogonUserCreateProcessAsUserCreateProcessWithLogonW )或使用这些函数的应用程序(如runas命令)创建。

    登录会话与任何特定的对象管理器 [ 2 ]概念都没有关系,如窗口站和桌面 。 它基本上只是一个包含登录SID和一些有关帐户的缓存安全信息的信息块。 此登录会话信息块是访问令牌指向的内容。

  2. 另一种类型的会话有时被称为终端服务会话,终端服务器会话, 远程桌面会话 ,登录会话(因为是这样),用户登录会话或用户会话。 但通常情况下,这只是一个“会话”,没有进一步的限制。

    这是您通常会听到的会话类型,也是窗口电台的属性。 这种类型的会话即将支持终端服务(现称为远程桌面 )提供的多种交互式GUI登录,现在也用于支持快速用户切换 。 会话在与每个用户登录关联的对象管理器对象之间提供必要的隔离。

我不花太多时间搞这些东西,所以我对一些细节有点模糊,但我认为这是一个相当公平的整体情况表示。 我希望它能清除一些东西。