Debugging Tools for Windows

!session

在Windows 2000中,!session命令显示一个或多个用户会话,或者显示运行在多个用户会话中的指定进程。

在Windows XP和之后版本Windows中,!session用于控制会话上下文。也可以显示所有用户会话的列表。

语法

Windows 2000的语法

!session [SessionID [2 Image]] 

Windows XP和之后的语法

!session 
!session -s DefaultSession 
!session -? 

参数

SessionID
(仅Windows 2000) 指定要显示的会话ID。如果为-1或者省略,则显示所有会话。
2 Image
(仅Windows 2000) 指定进程的映像名。SessionID指定的会话中所有具有这个名字的进程都会显示出来。如果省略Image,则显示csrss.exe进程。省略该参数可以很容易的列出所有用户会话,因为每个用户会话中都有且只有一个csrss.exe进程。
-s DefaultSession
(Windows XP和之后) 会话上下文设置为指定值。如果DefaultSession是-1,则将会话上下文设置为当前会话。
-?
(Windows XP和之后) 在调试器命令窗口中显示该扩展命令的帮助文本。

DLL

Windows 2000 Kdextx86.dll
Windows XP和之后 Kdexts.dll

注释

这实际上是两个不同的扩展命令。Windows 2000上的!session用来显示某个用户会话的信息。

Windows XP和之后系统上的!session用于控制会话上下文。不带参数使用!session会显示目标机上活动会话的列表。使用!session /s DefaultSession会把会话上下文改变成新的默认值。

设置会话上下文时,进程上下文也会自动切换成该会话中的活动进程。这时总是应该使用.cache forcedecodeptes

关于会话和会话上下文相关的命令,查看改变上下文

附加信息

关于用户会话和会话管理器(smss.exe)的信息,查看Mark Russinovich 和David Solomon 编写的Microsoft Windows Internals

Build machine: CAPEBUILD