阅读,添加,删除.NET中的Windows用户

我想使用.NET代码从Windows读取,添加和删除用户。 我怎样才能做到这一点?

Solutions Collecting From Web of "阅读,添加,删除.NET中的Windows用户"

以下是创建Windows用户的一些示例代码:

public static bool CreateLocalWindowsAccount(string username, string password, string displayName, string description, bool canChangePwd, bool pwdExpires) { try { PrincipalContext context = new PrincipalContext(ContextType.Machine); UserPrincipal user = new UserPrincipal(context); user.SetPassword(password); user.DisplayName = displayName; user.Name = username; user.Description = description; user.UserCannotChangePassword = canChangePwd; user.PasswordNeverExpires = pwdExpires; user.Save(); //now add user to "Users" group so it displays in Control Panel GroupPrincipal group = GroupPrincipal.FindByIdentity(context, "Users"); group.Members.Add(user); group.Save(); return true; } catch (Exception ex) { MessageBox.Show("Error creating account: {0}", ex.Message); return false; } } 

添加一个对System.DirectoryServices的引用可以让你阅读所有的Windows用户做这样的事情:

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

一般而言, DirectoryServices命名空间应允许您导航并阅读Active Directory

您将需要使用ActiveDirectory和DirectoryEntry

 Imports System.DirectoryServices.ActiveDirectory Imports System.Collections.DictionaryEntry 

LDAP是我认为WinNT一个选项。

你可以用WinNT访问目录://像这样

  Dim de As New System.DirectoryServices.DirectoryEntry() Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs Handles Button1.Click de.Path = "WinNT://*****".Replace("*****", ActiveDirectory.DomainGetCurrentDomain.Name) 

这里有几个有用的链接,有添加/删除等例子

与用户合作

所以删除用户

另外我还有几个问题涉及ActiveDirectory使用一个月前(所以我不记得深入)。 也许从我的个人资料中的一些东西可以帮助你。 祝你好运

除了绝对有效的其他答案,我们也使用LINQ到AD …

http://linqtoad.codeplex.com/

…在一些可以简单查询的项目上很容易。