web-dev-qa-db-ja.com

Windowsユーザーの表示名を取得する

ログインしているユーザーの表示名を取得するにはどうすればよいですか? ユーザー名ではなく、下のスクリーンショットに示すような表示名であり、Windows Vista/7コンピューターのスタートメニューに表示されます。

enter image description here

私は他の質問からさまざまな提案を試みましたが、それらはすべて表示名ではなくユーザー名を示しています。上記のスクリーンショットでこれらの試行の結果を確認できます。

Imports System.Security.Principal
Imports System.Threading
Imports System.IO
Imports System

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MsgBox("1: " & System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString & vbCrLf & _
               "2: " & Environment.UserDomainName & vbCrLf & _
               "3: " & WindowsIdentity.GetCurrent().Name & vbCrLf & _
                "4: " & Thread.CurrentPrincipal.Identity.Name & vbCrLf & _
               "5: " & Environment.UserName & vbCrLf & _
               "6: " & My.User.Name & vbCrLf &
                "7: " & My.Computer.Name)

    End Sub

End Class
34
Codemunkeee

UserPrincipal.DisplayName を使用する必要があります。

System.DirectoryServices.AccountManagement.UserPrincipal.Current.DisplayName

そのためには、プロジェクトのSystem.DirectoryServices.AccountManagement.dllへの参照を追加する必要があります。

59
Tim