所以我有一个程序需要在另一个 OU 下添加一个新的组织单元。格式必须与下面的代码相同。问题是,如果我在名称中添加空格,我会不断收到相同的异常。我可以手动添加带有空格的 OU。我在这里做错了什么?
这是代码:
string ou = "OU=" + "New Company 99999";
try
{
if (DirectoryEntry.Exists("LDAP://" + ou + ",OU=MainOrganizationalUnit,DC=domain,DC=com"))
{
MessageBox.Show(ou + " exists.");
}
else
{
MessageBox.Show(ou + " does not exist. Creating...");
using (DirectoryEntry entry = new DirectoryEntry("LDAP://OU=MainOrganizationalUnit,DC=domain,DC=com"))
{
using (DirectorySearcher searcher = new DirectorySearcher(entry))
{
searcher.Filter = "(" + ou + ")";
searcher.SearchScope = SearchScope.Subtree;
SearchResult result = searcher.FindOne();
if (result == null)
{
/* OU Creation */
DirectoryEntry de = entry.Children.Add(ou, "organizationalUnit");
de.Properties["description"].Value = "This is a Test";
de.CommitChanges();
}
}
}
}
}
catch (Exception Ex)
{
LogWriter.Exception(Ex);
}
当我运行此代码时,我记录了以下错误: System.DirectoryServices.DirectoryServicesCOMException (0x80072037):存在命名冲突。
在 System.DirectoryServices.DirectoryEntry.CommitChanges() 在 MyProgram.MyStaticClass.function()