从Java应用程序获取用户名(窗口)(Fetching user name (windows) fr

2019-09-26 04:55发布

问题:

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

用户称为teldept域组的一部分

用户:147852通:的HelloWorld

当我试图从Java应用程序的用户细节它给了我:147852

但是当我在顶部开始菜单点击我可以看到我的名字显示。

如何做到这一点? 我想访问从java应用程序这个名字

我用下面的代码片段:

System.getProperty( “user.name”);

无论上面的代码中给了我是预习甲骨文的文档是正确的。 我登录的ID为147852及以上的片断给了我14852,但一些如何在Windows这个ID:147852是所以只能在开始菜单中的XP映射与我的名字我得到我的名字将会持续显示,而不是147852.我们需要知道这种映射是如何的ID和名称之间进行。 我猜测它是与域名或者我不擅长与一些网络的逻辑。

Answer 1:

XP的开始菜单上显示的名称不是登录名。 它的全名对应的登录名。 不知道您的登录名是本地登录或域登录。 如果是本地登录,进入管理工具 - >计算机管理 - >用户和组 - >在这里对您的用户名(147852),你会发现一个全名。 如果登录域登录,您同样可以在Active Directory中查找你的名字 - 或在其他地方进行搜索。

这是非常具体的操作系统,不能在Java中找到。 你需要做到这一点使用JNI和Windows API -调用GetUserNameExNetUserGetInfo根据类型的用户。

如果你只是想获得你的登录名(147852),调用com.sun.security.auth.module.NTSystem().getName比使用更好的方法System.getProperty("user.name")



Answer 2:

从这个SO问题 ,你可以使用:

System.getProperty("user.name");

返回当前登录的用户。 这将返回用户名字符串。 我相信这是你问什么,但你的问题是相当不明确。



文章来源: Fetching user name (windows) from a java application