首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在GroupPrincipal上设置ManagedBy属性

如何在GroupPrincipal上设置ManagedBy属性
EN

Stack Overflow用户
提问于 2010-07-20 18:55:04
回答 3查看 4.9K关注 0票数 6

我正在使用System.DirectoryServices.AccountManagement中的GroupPrincipal类在Active Directory中创建和更新组。在创建和更新时,我还需要能够设置ManagedBy属性,您可以在AD管理控制台的groups属性的Managed By选项卡中设置该属性。

它可以通过编程来完成吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-20 19:32:38

不幸的是,你不能直接做到这一点--但你可以访问底层的DirectoryEntry并在那里完成:

代码语言:javascript
复制
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();
}
票数 8
EN

Stack Overflow用户

发布于 2010-07-20 19:08:02

您可以扩展GroupPrincipal类并使用ExtensionSet方法提供ManagedBy属性。

票数 1
EN

Stack Overflow用户

发布于 2010-07-20 19:03:23

看看this page吧。这是c#中关于AD最好的教程之一。

一些应该可以工作的代码(未经测试):

代码语言:javascript
复制
    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();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3289215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档