Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在active directory中为不同域创建OU_C#_Ldap_Directoryentry - Fatal编程技术网

C# 在active directory中为不同域创建OU

C# 在active directory中为不同域创建OU,c#,ldap,directoryentry,C#,Ldap,Directoryentry,我正在尝试设置代码以在active directory中创建新的OU(组织单位) 目标是复制Active Directory中SSO的安全结构,并自动化用户配置 我有可以使用PrincipalContext创建组和用户的工作代码 我连接到的域控制器位于不同的域中,因为它是一台测试计算机。我已将计算机设置为将此测试控制器用于DNS,并且在主机文件中有一个条目 当我运行下面的代码时,我没有得到任何错误。但每当我检查active directory时,都没有证据表明OU是创建的 public stat

我正在尝试设置代码以在active directory中创建新的OU(组织单位)

目标是复制Active Directory中SSO的安全结构,并自动化用户配置

我有可以使用PrincipalContext创建组和用户的工作代码

我连接到的域控制器位于不同的域中,因为它是一台测试计算机。我已将计算机设置为将此测试控制器用于DNS,并且在主机文件中有一个条目

当我运行下面的代码时,我没有得到任何错误。但每当我检查active directory时,都没有证据表明OU是创建的

public static void CreateOU()
{
    DirectoryEntry domain = new DirectoryEntry("LDAP://testdomain.test.com/DC=test,DC=com", "username", "password");
    domain.Children.Add("AnotherOU", "OrganizationalUnit");
    domain.CommitChanges();
}
如果我输入了无效的ldap路径或删除了testdomain.test.com,我肯定会在查找OU时出现登录错误(连接到错误的域)或其他错误

编辑-正在使用的帐户是域管理员

编辑-添加到下面的答案。我还必须将AnotherOU名称更改为OU=AnotherOU,否则会出现命名冲突错误。

尝试以下方法:

public static void CreateOU()
{
   DirectoryEntry domain = new DirectoryEntry("LDAP://testdomain.test.com/DC=test,DC=com", "username", "password");
   DirectoryEntry newOU = domain.Children.Add("AnotherOU", "OrganizationalUnit");
   newOU.CommitChanges();
}

您必须对新创建的对象而不是父对象调用CommitChanges()。

DirectoryEntry的构造函数中使用的帐户权限如何?该帐户现在是域管理员。我可以登录到控制器并使用Active Directory用户和计算机手动创建OU。使用
PrincipalContext
的示例?