我正在尝试重命名一个群组。我的代码如下所示
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。有没有人知道另一个做什么或我是否采取了错误的方式?
答案 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();