我正在尝试将新对象添加到Active Directory中的现有组织单位。以下代码用于执行此操作。
它运行没有错误。但是在此之后不会创建新对象。请告诉我这里做错了什么。
using System.DirectoryServices;
using System.DirectoryServices.ActiveDirectory;
namespace TestAdObjectCreation
{
class Program
{
static void Main(string[] args)
{
DirectoryEntry root = new DirectoryEntry("LDAP://servername/OU=Services,OU=PCX,DC=q2q,DC=xenyq,DC=com", "Administrator", "pass");
DirectoryEntry newItem = root.Children.Add("test_node", "valid_schema_class_name");
root.CommitChanges();
root.Close();
root.Dispose();
}
}
}
答案 0 :(得分:0)
你想创造什么样的对象?
首先,所有LDAP对象始终都有前缀,域组件为DC=
,组织单位为OU=
,公共名称为CN=
。
此外,许多LDAP对象对于需要被视为有效的内容的要求最低;例如用户或组必须具有唯一的samAccountName。
再次 - 你想要创造什么?
如果您将创建代码包装到try..catch中 - 您会得到任何例外吗?如果是这样 - 他们是什么?
static void Main(string[] args)
{
DirectoryEntry root = new DirectoryEntry("LDAP://servername/OU=Services,OU=PCX,DC=q2q,DC=xenyq,DC=com", "Administrator", "pass");
try
{
DirectoryEntry newItem = root.Children.Add("CN=test_node", "valid_schema_class_name");
root.CommitChanges();
}
catch(Exception exc)
{
string error = exc.GetType().FullName + ": " + exc.Message;
}
}