命令是干什么的
query user(简写 quser)列出 Windows 上的交互式登录会话:本地控制台、远程桌面、锁屏中的会话各占一行。它读的是远程桌面服务(RDS)的会话表,同一账号在多处登录会出现多条记录,会话 ID 是后续断开或注销的唯一抓手。Windows Server 2008 起至 Windows 11 / Server 2025 均内置。
基本信息
| 适用平台 | Windows 7/10/11 与 Windows Server 2008 及以后 |
|---|---|
| 权限要求 | 查看本机会话普通用户即可;查看他人会话或 /server: 远程查询需管理员 |
| 语法 | query user [用户名] [/server:主机名];quser 为同义简写 |
| 配套命令 | query session 看会话类型;logoff <ID> 注销;tsdiscon <ID> 断开 |
典型使用场景
- 排查“谁还连在服务器上”:变更或交付前确认没有残留会话
- 补丁重启前确认无人登录,避免直接打断他人作业
- 服务器内存被占:锁定会话 ID 后用 tasklist /fi "session eq 3" 看该会话里的进程
- 远程会话到达上限(管理会话默认 2 个)时,找出 Disc 状态的僵尸会话清理
- 登录审计:结合 LOGON TIME 与 IDLE TIME 判断是否存在长期挂机或非工作时间登录
常用示例
常用示例
query user # 列出本机全部交互会话
quser # 同义简写
query session # 含服务会话 0,能看清会话类型
query user /server:srv01 # 远程查看另一台机器(需管理员)
logoff 3 # 注销会话 ID 3(先确认归属)
tsdiscon 3 # 只断开不断销,保留已登录状态输出逐列读法
| 列 | 含义 | 判读 |
|---|---|---|
| USERNAME | 登录账号 | 空白表示无人登录的会话,如服务会话 |
| SESSIONNAME | 会话名 | console 为本地控制台,rdp-tcp#N 为远程桌面 |
| ID | 会话 ID | 0 是服务会话,勿与用户会话混淆 |
| STATE | 会话状态 | Active 活跃、Disc 已断开、Listen 仅监听 |
| IDLE TIME | 空闲时长 | 持续增长说明在挂机,可考虑清理 |
| LOGON TIME | 登录时间 | 与交接班或变更窗口比对,可发现违规登录 |
RDP 断开连接不等于注销:状态变成 Disc 后进程仍在后台运行并占用内存与授权。确认无人使用后再 logoff,否则会丢失未保存内容。
会话 ID 0 是服务会话(系统服务都在其中),用户登录不会出现在这一行;query session 会把它显式列出,便于区分。