Get windows users with C#

2019-02-13 06:23发布

How can I get a list of all windows users of the local machine with the usage of .NET (C#) ?

2条回答
Anthone
2楼-- · 2019-02-13 06:34

Here is a blog post (with code) that explains how to do it:

http://csharptuning.blogspot.com/2007/09/how-to-get-list-of-windows-user-in-c.html

The author lists the following code (quoted from the above site):

DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + Environment.MachineName);
DirectoryEntry admGroup = localMachine.Children.Find("users","group");
object members = admGroup.Invoke("members", null);
foreach (object groupMember in (IEnumerable)members)
{
    DirectoryEntry member = new DirectoryEntry(groupMember);
    lstUsers.Items.Add(member.Name);
}

You need to add using System.DirectoryServices at the top of your code. To change machines, you would change the Environment.MachineName to be whatever machine you want to access (as long as you have permission to do so and the firewall isn't blocking you from doing so). I also modified the author's code to look at the users group instead of the administrators group.

查看更多
地球回转人心会变
3楼-- · 2019-02-13 06:48

It depends on what you are really 'after'... if you are on a windows domain (using active directory) then you can query Active Directory IF active directory is being used to limit the users who are "authorized" to use the local machine.

If your requirements are not as stringent then you can inspect the folders in the system UserProfiles where each folder except Default User and All Users represent a user profile that has logged into the local machine. caution this may include system and/or service accounts...

查看更多
登录 后发表回答