显示当前进程的登录用户、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
whoami 用户名相同,但 /groups 不同:UAC 拆分令牌会让普通窗口中的管理员组变成“仅用于拒绝”;看完整性级别和组属性判断是否真的提升。whoami 显示 SYSTEM 不代表你登录成了 SYSTEM:计划任务、服务或以 SYSTEM 运行的工具才是;用 /all 和父进程确认。%USERNAME% 与 whoami 不一致:环境变量可能从父进程继承(例如提权工具或 runas),以令牌输出为准。whoami /upn 报 ERROR: Unable to get User Principal Name:本地账户或没有 UPN 的账户会出现,改用 /user 看 SID,不代表账户损坏。whoami /priv 列出但状态为“已禁用”的特权不能直接使用;启用需要相应 API/工具,且受令牌类型限制。whoami 的结果决定文件权限和网络访问身份;映射盘和 UNC 凭据按该身份计算,不要假设是登录用户。DOMAIN\user,本地账户显示 COMPUTER\user;同名账户要看前缀,避免改错 ACL。whoami — Linux 同名命令,只输出用户名id — Linux 查看 UID/GID 和组sudo — Linux 提权上下文对照合上页面,先回答,再展开对照。
whoami 和 echo %USERNAME% 哪个更可靠?为什么?/groups 输出不同?whoami /upn 报错是否说明账户无效?应该改用什么?whoami 更可靠,它读取进程令牌;环境变量可能从父进程继承或被修改。whoami /user 查看 SID 和账户名。
小程序版
微信扫码,随时查命令