我正在尝试设置代码以在活动目录中创建新的OU(组织单位)。
目标是从Active Directory中的SSO复制安全结构并自动化用户配置。
我有可以使用PrincipalContext创建组和用户的工作代码。
我连接的域控制器位于不同的域中,因为它是一台测试计算机。我的计算机设置使用此测试控制器进行DNS并在主机文件中有一个条目。
当我运行下面的代码时,我没有错误。但每当我检查活动目录时,都没有证据表明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,否则会出现命名违规错误。
答案 0 :(得分:2)
试试这个:
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(),而不是在父对象中。