【问题标题】:GroupPrincipal Rename groupGroupPrincipal 重命名组
【发布时间】:2012-11-02 04:11:59
【问题描述】:

我正在尝试重命名一个组。我的代码如下所示

PrincipalContext context = new PrincipalContext(ContextType.Machine);
GroupPrincipal group = GroupPrincipal.FindByIdentity(context, "GroupName");
group.SamAccountName = "NewGroupName";
group.DisplayName = "NewGroupName";
group.Name = "NewGroupName";
group.Save();

问题是它在group.DisplayName = "NewGroupName"; 崩溃并抛出异常

属性对该商店类型无效。

如果我注释掉该行代码将继续运行,但我想更改显示名称。我做了一些研究,发现 this. 但是我使用的是 Framework 4.0。有谁知道其他人该怎么做,或者我会以错误的方式解决这个问题?

【问题讨论】:

    标签: c# linq rename principalcontext groupprincipal


    【解决方案1】:

    经过深思熟虑,我发现让group.Name = "Newname"; 工作的唯一方法是获取 DirectoryEntry 对象,然后对其进行更改。代码如下

    PrincipalContext context = new PrincipalContext(ContextType.Machine);
    GroupPrincipal group = GroupPrincipal.FindByIdentity(context, "GroupName");
    var Groupentry = (DirectoryEntry)group.GetUnderlyingObject();
    Groupentry.Rename("newname");
    Groupentry.CommitChanges();
    

    【讨论】:

    • 解决方案有效,尽管我收到了错误DirectoryServicesCOMException: An invalid dn syntax has been specified。固定为:Groupentry.Rename($"cn={newName}");
    猜你喜欢
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 2017-04-30
    • 1970-01-01
    • 2012-03-05
    • 2018-09-24
    • 2020-05-28
    相关资源
    最近更新 更多