问题:
我登录到虚拟机(RDC)使用以下凭证:
用户称为teldept域组的一部分
用户:147852通:的HelloWorld
当我试图从Java应用程序的用户细节它给了我:147852
但是当我在顶部开始菜单点击我可以看到我的名字显示。
如何做到这一点? 我想访问从java应用程序这个名字
我用下面的代码片段:
System.getProperty( “user.name”);
无论上面的代码中给了我是预习甲骨文的文档是正确的。 我登录的ID为147852及以上的片断给了我14852,但一些如何在Windows这个ID:147852是所以只能在开始菜单中的XP映射与我的名字我得到我的名字将会持续显示,而不是147852.我们需要知道这种映射是如何的ID和名称之间进行。 我猜测它是与域名或者我不擅长与一些网络的逻辑。
XP的开始菜单上显示的名称不是登录名。 它的全名对应的登录名。 不知道您的登录名是本地登录或域登录。 如果是本地登录,进入管理工具 - >计算机管理 - >用户和组 - >在这里对您的用户名(147852),你会发现一个全名。 如果登录域登录,您同样可以在Active Directory中查找你的名字 - 或在其他地方进行搜索。
这是非常具体的操作系统,不能在Java中找到。 你需要做到这一点使用JNI和Windows API -调用GetUserNameEx
或NetUserGetInfo
根据类型的用户。
如果你只是想获得你的登录名(147852),调用com.sun.security.auth.module.NTSystem().getName
比使用更好的方法System.getProperty("user.name")
从这个SO问题 ,你可以使用:
System.getProperty("user.name");
返回当前登录的用户。 这将返回用户名字符串。 我相信这是你问什么,但你的问题是相当不明确。