我正在使用GroupPrincipal
中的System.DirectoryServices.AccountManagement
类在Active Directory中创建和更新群组。创建和更新时,我还需要能够在AD管理控制台的组属性中的ManagedBy
选项卡中设置您能够设置的Managed By
属性。
可以以编程方式完成吗?
答案 0 :(得分:8)
不幸的是,您无法直接执行此操作 - 但您可以访问基础DirectoryEntry
并在那里执行此操作:
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "YOURDOMAIN");
UserPrincipal toBeModified = UserPrincipal.FindByIdentity(".....");
UserPrincipal manager = UserPrincipal.FindByIdentity(ctx, "......");
DirectoryEntry de = toBeModified.GetUnderlyingObject() as DirectoryEntry;
if (de != null)
{
de.Properties["managedBy"].Value = manager.DistinguishedName;
toBeModified.Save();
}
答案 1 :(得分:1)
您可以使用ExtensionSet方法扩展GroupPrincipal类并提供ManagedBy
属性。
答案 2 :(得分:0)
看看this page。这是c#中关于AD的最佳教程之一。
一些应该有效的代码(未经测试):
string connectionPrefix = "LDAP://" + ouPath;
DirectoryEntry dirEntry = new DirectoryEntry(connectionPrefix);
DirectoryEntry newGroup = dirEntry.Children.Add
("CN=" + groupName, "group");
group.Properties["sAmAccountName"].Value = groupName;
newGroup.Properties["managedBy"].Value = managerDistinguishedName;
newGroup.CommitChanges();
dirEntry.Close();
newGroup.Close();