В VB.NET, как вы получаете список всех пользователей на текущей машине Windows? - PullRequest
1 голос
/ 28 января 2009

В VB.NET, как получить список всех пользователей на текущем компьютере с Windows?

Ответы [ 2 ]

1 голос
/ 28 января 2009

Вы можете использовать реестр, который требует немного разбора, но эй, это работает. Вот некоторый код:

C #

 RegistryKey userskey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList");
        foreach (string keyname in userskey.GetSubKeyNames())
        {
                using (RegistryKey key = userskey.OpenSubKey(keyname))
                {
                    string userpath = (string)key.GetValue("ProfileImagePath");
                    string username = System.IO.Path.GetFileNameWithoutExtension(userpath);
                    Console.WriteLine("{0}", username);
                }
        }

VB

Dim userskey As RegistryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList")
For Each keyname As String In userskey.GetSubKeyNames()
    Using key As RegistryKey = userskey.OpenSubKey(keyname)
        Dim userpath As String = DirectCast(key.GetValue("ProfileImagePath"), String)
        Dim username As String = System.IO.Path.GetFileNameWithoutExtension(userpath)
        Console.WriteLine("{0}", username)
    End Using
Next
0 голосов
/ 06 апреля 2013

Вот улучшенная версия Ответ Натана У :

Function GetUsers() As List(Of String)
    Dim ret As New List(Of String)
    Dim userskey As RegistryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList")
    For Each keyname As String In userskey.GetSubKeyNames()
        Using key As RegistryKey = userskey.OpenSubKey(keyname)
            Dim userpath As String = DirectCast(key.GetValue("ProfileImagePath"), String)
            Dim username As String = System.IO.Path.GetFileNameWithoutExtension(userpath)
            'Console.WriteLine("{0}", username)
            ret.Add(username)
        End Using
    Next
    If Not ret.Contains("Guest") Then ret.Add("Guest")
    ret.Sort()

    Return ret
End Function

Эта функция возвращает список всех пользователей текущего домена / компьютера из реестра. За его ответ он не распознает гостевую учетную запись в моей системе. Не знаю почему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...