系统学习 Windows 学习路径:从 CMD 到 PowerShell、系统网络,再到 WSL 与 Server

whoami

显示当前进程的登录用户、SID、所属组和特权。

补充说明

whoami 读取当前进程的访问令牌,回答“我现在以谁的身份在跑、属于哪些组、持有哪些特权”。排查权限、UAC 提升、计划任务/服务账户、远程登录时,它比 echo %USERNAME% 可靠,因为环境变量可能从父进程继承或被改写。

边界:它显示的是进程令牌,不是你登录控制台的账户。同一个用户开“管理员”窗口和普通窗口,/groups 的结果不同;它不列出其他登录会话,也不显示进程。要看登录会话用 query user,要看令牌特权是否启用要结合 whoami /priv 的“状态”列。

Windows 10/11 一致。PowerShell 调用的是同一个 whoami.exe,另外可用 $env:USERNAME(易受继承影响)或 [Security.Principal.WindowsIdentity]::GetCurrent()(拿对象和组)。Linux 的 whoami 只输出用户名,Windows 版信息更接近 id。

常用示例

# 1. 当前身份,格式通常是 域\用户名 或 计算机名\用户名
whoami

# 2. 看 SID:排查 ACL、组策略筛选和账户迁移时用
whoami /user

# 3. 看所属组和完整性级别,确认是否真的在高完整性上下文
whoami /groups

# 4. 看令牌特权及启用状态,排查备份、调试、改时间等权限
whoami /priv

# 5. 一次拿到用户、组、特权,附到工单里
whoami /all

# 6. 用列表格式输出全部信息,便于粘贴到工单
whoami /all /fo list

# 7. 查 UPN/FQDN(域账户更常用;本地账户可能报错)
whoami /upn
whoami /fqdn

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. whoami 和 echo %USERNAME% 哪个更可靠?为什么?
  2. 为什么普通 CMD 和管理员 CMD 的 /groups 输出不同?
  3. whoami /upn 报错是否说明账户无效?应该改用什么?
答案
  1. whoami 更可靠,它读取进程令牌;环境变量可能从父进程继承或被修改。
  2. UAC 拆分令牌:普通令牌中的管理员组仅用于拒绝,完整性级别也不同。
  3. 不一定,本地账户或没有 UPN 时正常;改用 whoami /user 查看 SID 和账户名。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令