从java应用程序获取用户名(windows)

从java应用程序获取用户名(windows),java,windows,networking,windows-xp,user-management,Java,Windows,Networking,Windows Xp,User Management,问题: 我正在使用以下凭据登录到虚拟机(RDC): 该用户是名为teldept的域组的一部分 用户:147852密码:helloworld 当我试图从java应用程序获取用户详细信息时,它给出了:147852 但当我点击顶部的开始菜单时,我可以看到我的名字显示出来 这是怎么做到的?我想从java应用程序访问此名称 我使用以下代码段: System.getProperty(“user.name”) 无论上面的代码片段给了我什么,都是正确的oracle文档。 我是用ID:147852和上面的代码段给

问题:

我正在使用以下凭据登录到虚拟机(RDC):

该用户是名为teldept的域组的一部分

用户:147852密码:helloworld

当我试图从java应用程序获取用户详细信息时,它给出了:147852

但当我点击顶部的开始菜单时,我可以看到我的名字显示出来

这是怎么做到的?我想从java应用程序访问此名称

我使用以下代码段:

System.getProperty(“user.name”)

无论上面的代码片段给了我什么,都是正确的oracle文档。 我是用ID:147852和上面的代码段给我14852登录的 但在windows中,该ID:147852如何与我的姓名映射,因此仅在XP的“开始”菜单中显示我的姓名,而不是147852。我们需要知道如何在ID和Name之间进行映射。我猜它与域或某些我不擅长的网络逻辑有关。

从中,您可以使用:

System.getProperty("user.name");
返回当前登录的用户。这将返回用户名字符串。我相信这就是你想要的,但你的问题相当不清楚。

从,你可以使用:

System.getProperty("user.name");

返回当前登录的用户。这将返回用户名字符串。我相信这就是你要问的,但你的问题相当不清楚。

XP的“开始”菜单上显示的名称不是登录名。它是与登录名对应的全名。不确定您的登录是本地登录还是域登录。如果是本地登录,请根据您的用户名(147852)转到管理工具->计算机管理->用户和组->此处,您将找到一个全名。 如果您的登录名是域登录名,您可以在Active Directory中类似地查找您的姓名,或者在其他位置搜索

这是非常特定于操作系统的,Java无法找到。 您需要使用JNI和Windows API执行此操作-根据用户类型调用
GetUserNameEx
NetUserGetInfo


如果您只想获取登录名(147852),那么调用
com.sun.security.auth.module.NTSystem().getName
比使用
System.getProperty(“user.name”)

更好,XP的开始菜单上显示的名称不是登录名。它是与登录名对应的全名。不确定您的登录是本地登录还是域登录。如果是本地登录,请根据您的用户名(147852)转到管理工具->计算机管理->用户和组->此处,您将找到一个全名。 如果您的登录名是域登录名,您可以在Active Directory中类似地查找您的姓名,或者在其他位置搜索

这是非常特定于操作系统的,Java无法找到。 您需要使用JNI和Windows API执行此操作-根据用户类型调用
GetUserNameEx
NetUserGetInfo


如果您只想获取登录名(147852),那么调用
com.sun.security.auth.module.NTSystem().getName
比使用
System.getProperty(“user.name”)

如何获取“147852”?发布那段代码。@user93353我已经编辑了这个问题。我希望我不清楚我的观点。如果您是从命令行运行java程序-USERNAME env变量包含什么-请尝试
echo%USERNAME%
@user93353谢谢您的帮助。当我运行上面的建议时,我得到了147852您是否尝试过我下面的答案-使用新的com.sun.security.auth.module.NTSystem().getName();那意味着什么?你是怎么得到“147852”的?发布那段代码。@user93353我已经编辑了这个问题。我希望我不清楚我的观点。如果您是从命令行运行java程序-USERNAME env变量包含什么-请尝试
echo%USERNAME%
@user93353谢谢您的帮助。当我运行上面的建议时,我得到了147852您是否尝试过我下面的答案-使用新的com.sun.security.auth.module.NTSystem().getName();这给了我们什么?