GroupPrincipal重命名组

时间:2012-11-13 17:32:35

标签: c# linq rename principalcontext groupprincipal

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

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。有没有人知道另一个做什么或我是否采取了错误的方式?

1 个答案:

答案 0 :(得分:3)

经过深思熟虑后,我发现让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();