C# DirectoryEntries.Find:“查找”;指定了无效的dn语法";
我正在尝试在当前域中查找用户。代码如下:C# DirectoryEntries.Find:“查找”;指定了无效的dn语法";,c#,active-directory,ldap,C#,Active Directory,Ldap,我正在尝试在当前域中查找用户。代码如下: DirectoryEntry domain = new DirectoryEntry("LDAP://CN-Users, DC=" + Environment.UserDomainName); DirectoryEntries entries = domain.Children; try { // The following line causes t
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,
instaed ofLDAP://CN-Users,
第二件事是DC=“+Environment.UserDomainName
,这可能是错误的,因为通常是这样的:LDAP://OU=Finance,DC=fabrikam,DC=com
(有多个DC)
您可以使用powershell查找所有DC。运行以下命令:
New-Object DirectoryServices.DirectoryEntry
您好,您在LDAP上查找的用户名值是什么?好的,现在我很尴尬…您是对的,CN-是错误。关于域-是的,我知道,我将更改该代码,但同时这已经足够了,因为我们的域名只有一个字。谢谢!