如何确定 Windows 命令 shell 上的用户名

如何确定 Windows 命令 shell 上的用户名

关于如何在不使用的情况下在 Windows 命令 shell 上确定当前用户名,有各种建议whoami,例如这个问题或者这个问题。通用答案似乎是echo %username%。但是,当我这样做时(在 Windows XP 上),shell 回答为%username%。我遗漏了什么吗?

答案1

如果你在渗透测试实验室中执行此操作,则可以使用位于以下位置的 Kali 内置 whoami.exe

/usr/share/windows-binaries/whoami.exe

只需将其复制过来并在 Win XP 机器上运行即可。

答案2

也许你因为某种原因缺少 USERNAME 环境变量。运行 set 命令,它会列出环境变量及其值。我的 XP 有 USERNAME,但我没有添加它,所以 XP 有它。。奇怪的是你的没有。但运行 set 并查看你有什么

一堆环境变量让用户

TEMP=C:\DOCUME~1\User\LOCALS~1\Temp
TMP=C:\DOCUME~1\User\LOCALS~1\Temp
USERNAME=user
USERPROFILE=C:\Documents and Settings\user

添加

在与您所在的示例类似的示例中,我已远程登录到计算机,它运行 bvsshserver(bitvise ssh 服务器,又名 winsshd)(即使从 cygwin 客户端登录,也会提供 windows 命令行),尽管通过 cygwin 的 openssh 服务器提供 bash。您可以使用 cygwin 中的 openssh 客户端登录 bitvise sshd 并获取 windows 命令行

SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\WINSSH~1\LOCALS~1\Temp
TMP=C:\DOCUME~1\WINSSH~1\LOCALS~1\Temp
USERNAME=WinSSHD_VirtualUsers
USERPROFILE=C:\Documents and Settings\WinSSHD_VirtualUsers
VIRTGROUP=Virtual Users
VIRTUSER=user
windir=C:\WINDOWS


C:\>whoami
WinSSHD_VirtualUsers

C:\>

在这种情况下,“VIRTUSER”有用户名,尽管与whoami显示的不同。

您的 XP 机器运行什么 SSH 服务器(或远程登录程序服务器)?

答案3

您没有遗漏任何东西。也许您正在 powershell 中运行它?如果您没有从 cmd 返回正确的值,那么您必须进一步调查。

在 Windows 命令提示符(cmd 而不是 PowerShell)中输入:

echo %username%

在 PowerShell 中输入:

# Returns computername/username
whoami
# Returns username
echo $env:username
# Returns table containing computer/usernem
Get-WMIObject -class Win32_ComputerSystem | select username

相关内容