我开发了一个软件,需要当前登录的用户名,但在安装过程中,我提供了管理员用户(admin right user),我的应用程序获取了管理员用户,有什么方法可以从注册表中获取当前用户名的详细信息。
我试着从注册表中获取 HKEY_CURRENT_USER但是,它返回的是管理员用户的资料。
我不太清楚为什么你要通过批处理文件从注册表中获取,但如果你只是想在批处理文件中获取,只需看看 %username%
环境变量。 或者,如果你想得到domain/machine的信息,可以检查一下 whoami
. 最后,如果你想获得更多信息,并想对其进行解析,你可以使用 Query user
但那会明显更乱。
C:/Users/myname>echo %username%。
我的名字
或
C:/Users/myname>whoami
域名/姓名
我不知道这是否是你想要的,因为要查询的是 LastUsedUsername
?
@echo off
set "Winlogonkey=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
@for /f "tokens=3 skip=2 delims= " %%a in (
'Reg Query "%Winlogonkey%" /v LastUsedUsername'
) do (
Set "LastUsedUsername=%%a"
)
echo "%LastUsedUsername%"
pause