4

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

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";并抛出异常

属性对此商店类型无效。

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

4

1 回答 1

4

经过深思熟虑,我发现开始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();
于 2013-01-17T11:21:06.423 回答