【发布时间】:2009-01-03 14:12:11
【问题描述】:
我正在尝试在 Active Directory 中创建嵌套的组织单位,并且我即将完成这项工作。我在下面有一个问题,我需要帮助。我正在检查 OU 是否存在,如果不存在,我需要创建它,strOUArray 包含 OU=Test OU=Test2 和 OU=Test3。我需要代码先创建 OU=Test,然后在下面的 //PROBLEM LINE 上将其用作父 OU,从而允许在 OU=Test 中创建下一个 OU OU=Test2。目前在下面的代码中,所有 OU 都将在根目录中创建,因为我不知道如何在 //PROBLEM LINE 中使用第一个创建的 OU。我试过使用:
parent = new DirectoryEntry("LDAP://" + strOUArray[x-1] + "," + dcSubString); //note x-1
这失败了,因为要在其中创建第一个 OU 的父级不存在。任何帮助真的很感激,我的截止日期很紧,只需要离开这个,所以谢谢你的帮助。
String strOUs = container.Substring(0, container.IndexOf(@",DC="));
int dcIndex = container.IndexOf("DC=");
string dcSubString = container.Substring(dcIndex); //dcSubString = DC=Internal,DC=Net
string[] strOUArray = strOUs.Split(new Char[] { ',' });
for (int x = 0; x < strOUArray.Length; x++)
{
if (DirectoryEntry.Exists("LDAP://" + strOUArray[x] + "," + dcSubString))
{
}
else
{
DirectoryEntry objOU;
DirectoryEntry parent = new DirectoryEntry("LDAP://" + dcSubString); //PROBLEM LINE
objOU = parent.Children.Add(strOUArray[x], "OrganizationalUnit");
objOU.CommitChanges();
}
}
【问题讨论】:
标签: c# active-directory