DirectoryEntries.查找:“指定了无效的dn语法”
本文关键字:无效 dn 语法 查找 DirectoryEntries | 更新日期: 2023-09-27 18:10:42
我正在尝试查找当前域中的用户。代码如下:
DirectoryEntry domain = new DirectoryEntry("LDAP://CN-Users, DC=" + Environment.UserDomainName);
DirectoryEntries entries = domain.Children;
try
{
// The following line causes the exception
DirectoryEntry user = entries.Find("(&(objectCategory=user)(cn=" + userName + "))", ActiveDirectoryEntryType.User.TypeName);
user.DeleteTree();
user.CommitChanges();
}
catch
{}
我得到一个错误:
An invalid dn syntax has been specified.
我也尝试了下面的代码,得到了相同的错误:
DirectoryEntry user = entries.Find(userName, ActiveDirectoryEntryType.User.TypeName);
我无法在帮助文件中找到有关正确语法的信息。有人知道这是怎么做的吗?
语句出错:
DirectoryEntry domain = new DirectoryEntry("LDAP://CN-Users, DC=" + Environment.UserDomainName);
我几乎可以肯定它应该是:LDAP://CN=Users,
而不是LDAP://CN-Users,
第二件事是DC=" + Environment.UserDomainName
,这可能是错误的,因为通常是这样的:LDAP://OU=Finance,dc=fabrikam,dc=com
(有多个DC)
你可以使用powershell找到所有的DC。执行如下命令:
New-Object DirectoryServices.DirectoryEntry