我正在努力使用下面的代码为Active Directory创建一个OU.
strPath = "OU=TestOU,DC=Internal,DC=Com" DirectoryEntry objOU; objOU = ADentry.Children.Add(strPath, "OrganizationalUnit"); objOU.CommitChanges();
问题是strPath包含完整路径'OU = TestOU,DC = Internal,DC = net'所以使用.Children.Add使ldap路径'OU = TestOU,DC =内部,DC = net,DC =内部,DC = net'导致错误,因为域显然不存在.
我的问题是我可以在strPath
没有使用的情况下创建OU .Children.Add
吗?
我不熟悉AD,这是我从我之前的那个人那里继承的.
试试这个
using System; using System.DirectoryServices; namespace ADAM_Examples { class CreateOU { ////// Create AD LDS Organizational Unit. /// [STAThread] static void Main() { DirectoryEntry objADAM; // Binding object. DirectoryEntry objOU; // Organizational unit. string strDescription; // Description of OU. string strOU; // Organiztional unit. string strPath; // Binding path. // Construct the binding string. strPath = "LDAP://localhost:389/O=Fabrikam,C=US"; Console.WriteLine("Bind to: {0}", strPath); // Get AD LDS object. try { objADAM = new DirectoryEntry(strPath); objADAM.RefreshCache(); } catch (Exception e) { Console.WriteLine("Error: Bind failed."); Console.WriteLine(" {0}", e.Message); return; } // Specify Organizational Unit. strOU = "OU=TestOU"; strDescription = "AD LDS Test Organizational Unit"; Console.WriteLine("Create: {0}", strOU); // Create Organizational Unit. try { objOU = objADAM.Children.Add(strOU, "OrganizationalUnit"); objOU.Properties["description"].Add(strDescription); objOU.CommitChanges(); } catch (Exception e) { Console.WriteLine("Error: Create failed."); Console.WriteLine(" {0}", e.Message); return; } // Output Organizational Unit attributes. Console.WriteLine("Success: Create succeeded."); Console.WriteLine("Name: {0}", objOU.Name); Console.WriteLine(" {0}", objOU.Properties["description"].Value); return; } } }