1

問題:

以下の資格情報を使用して仮想マシン (RDC) にログインしています。

ユーザーは、teldept と呼ばれるドメイン グループの一部です。

ユーザー:147852 パス:helloworld

Java アプリケーションからユーザーの詳細を取得しようとすると、次のように表示されます: 147852

しかし、上部のスタート メニューをクリックすると、自分の名前が表示されます。

これはどのように行われますか?この名前にJavaアプリケーションからアクセスしたい

以下のスニペットを使用します。

System.getProperty("user.name");

上記のスニペットが私に与えるものは何でも、オラクルのドキュメントとして正しいです。ID: 147852 でログインしています。上記のスニペットで 14852 が表示されますが、Windows ではこの ID:147852 が自分の名前にマップされているため、XP のスタート メニューでのみ、147852 ではなく自分の名前が表示されます。このマッピングが ID と Name の間でどのように行われるか。ドメインまたは私が苦手なネットワークロジックと関係があると思います。

4

2 に答える 2

4

XP のスタート メニューに表示される名前は、ログオン名ではありません。ログオン名に対応するフルネームです。ログインがローカル ログインなのかドメイン ログインなのかわからない。ローカル ログインの場合は、[管理ツール] -> [コンピューターの管理] -> [ユーザーとグループ] -> [ユーザー名 (147852)] に対して、フル ネームが表示されます。ログインがドメイン ログインの場合、同様に Active Directory で自分の名前を検索したり、他の場所で検索したりできます。

これは非常に OS 固有であり、Java では検出できません。JNI と Windows API を使用してこれを行う必要があります - 呼び出しGetUserNameExまたはNetUserGetInfoユーザーの種類によって異なります。

ログオン名 (147852) を取得したいだけの場合com.sun.security.auth.module.NTSystem().getNameは、System.getProperty("user.name")

于 2013-04-25T15:57:53.263 に答える