Windows是否有相当于Unix“ whoami”命令的Windows?如果是这样,那是什么?

评论

是的,还有whoami

使用命令“查询会话”获取用户当前登录或断开连接的终端服务的列表

#1 楼

从Windows 2000开始,whoami命令已成为标准命令行的一部分(感谢pk清除了注释中的内容!)。
您可以执行以下操作:打开命令提示符并键入“ set”,然后按Enter。这显示了活动的环境变量。当前登录的用户名存储在USERNAME env变量中,您的域存储在USERDOMAIN变量中。
要通过cmd行附带其他答案,请执行以下操作:
echo %USERDOMAIN%\%USERNAME%

将得到您可以使用域\用户名格式的完整登录用户。
您可以使用Powershell通过以下方法执行相同的操作:
write-host $env:userdomain$env:username


评论


+1用于教育方面,包括域和用户名

–tomjedrz
09年5月19日在17:15

@squillman以Sytem用户身份运行命令提示符时,如何使此工作正常进行?导致这种情况的原因是,没有环境变量,例如%USERDOMAIN%或%USERNAME%

– GianT971
2012年6月6日14:40

@ GianT971您的意思是LocalSystem吗?该帐户没有与登录用户关联的方法,因此无法使用。通常,此帐户用于服务,并且当服务作为LocalSystem运行时,它将承担服务控制管理器的安全上下文。

–squillman
2012年3月6日15:47



好。是的,这就是我的意思。也许使用最新版本的PowerShell是可行的,因为在运行.NET应用程序并调用LocalSystem帐户下的Environment.Username时,结果为“ System”。但是我还没有很好地了解PowerShell

– GianT971
2012年6月6日17:00

@ GianT971您可以生成cmd或powershell进程并运行脚本,但不会获得交互式shell。

–squillman
2012年3月6日18:23

#2 楼

它报告了大多数人都在说的大多数相同信息,但是您也可以只键入

SET U

,它将返回任何以U开头的环境变量。

顺便说一句,SET L可以方便地调试登录服务器问题。

评论


有时,您只会看到必须共享的提示,这两个很棒。

–小管
09年5月20日11:00

#3 楼

从命令行?应该执行“ echo%username%”。登录的用户存储在环境变量“用户名”中。

通过图形会话,ctrl-alt-del将为您提供一个屏幕,其中显示了已登录的用户。

#4 楼

回声%USERNAME%

#5 楼

它取决于您的特定操作系统,但是whoami命令可作为Windows 2000资源工具包和Windows XP SP2支持工具的一部分使用。

评论


+1也默认在Vista +中可用

–奥斯卡·杜韦伯恩(Oskar Duveborn)
09年5月19日在17:10

啊哈,我以为我最近在家里的笔记本电脑上使用过whoami,我想它能起作用是因为它具有远景。在这里,我在XP上

–基普
09年5月19日在19:13

#6 楼

上面是操作系统固有的和更好的答案,但是出于完整性的考虑,在2000&XP支持工具中确实存在whoami.exe。如果您在命令中设置了心跳,则以32 kb的速度轻松通过组策略进行部署。

#7 楼

在自动执行程序中或在DOS提示符下,键入提示符%USERDOMAIN%\%USERNAME%$ p $ g,您将显示您的登录身份,并看到典型的提示符,如下所示:DOMAIM \ username C:>