C#使用DirectoryEntry启用用户帐户

我想知道是否启用了用户帐户。 我用这个代码:

var usersList = new List(); DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + computerName + ",Computer", Settings.UserName,Settings.UserPassword); DirectoryEntry admGroup = localMachine.Children.Find(Settings.AdministratorsGroup, "group"); object members = admGroup.Invoke("members", null); foreach (object groupMember in (IEnumerable)members) { DirectoryEntry member = new DirectoryEntry(groupMember); var b = member.Properties["userAccountControl"].Value; // <---- value == null usersList.Add(member); } 

我正确地得到了所有成员。
但是member.Properties["userAccountControl"].Value出现了一个错误member.Properties["userAccountControl"].Value 。 我知道使用System.DirectoryServices.AccountManagement namepsace,但我想知道为什么这段代码不起作用。

您使用的是WinNT://提供程序,其function非常有限。 它不支持完整的LDAP://提供程序具有的许多常用属性 – 我认为这可能是此代码设置userAccountControl (这是一个LDAP属性,很可能不存在且不支持的原因)本地用户帐户)不起作用。

有关WinNT://可以做什么(或不能做)的更多信息,请参阅Richard Mueller的文章WinNT vs. LDAP