试图在活动目录中创建嵌套的安全组

本文关键字:嵌套 创建 安全 活动 | 更新日期: 2023-09-27 18:02:47

我试图在活动目录中创建嵌套的安全组,代码如下:

DirectoryEntry newContainer = dirEntry.Children.Add("CN=" + groupName, "group");
newContainer.Properties["description"].Value = groupId;
GrpType gt = GrpType.GlobalGrp | GrpType.SecurityGrp;
int typeNum = (int)gt;
newContainer.Properties["groupType"].Add(typeNum);
newContainer.Properties["sAMAccountName"].Add(groupName);
newContainer.CommitChanges();

在创建第一级组时没有问题,但是当我尝试在这些组中创建子安全组时,我得到"命名违规"错误,没有进一步的答案。

顺便说一下,我可以手动创建这些安全组

试图在活动目录中创建嵌套的安全组

根据帮助你可以找到:how:(几乎)Everything in Active Directory通过c#

下面是一个使用ADSI的示例:

/* Connection to Active Directory
 */
DirectoryEntry deBase = new DirectoryEntry("LDAP://WM2008R2ENT:389/ou=Monou,dc=dom,dc=fr", "user", "password");
/* Group1 creation
 */
DirectoryEntry aGrp1 = deBase.Children.Add("cn=yourGrp1", "group");
aGrp1.Properties["description"].Value = "The description you want";
aGrp1.Properties["groupType"].Add(ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_GLOBAL_GROUP | ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_SECURITY_ENABLED);
aGrp1.Properties["sAMAccountName"].Add("yourGrp1");
aGrp1.CommitChanges();
/* Group2 creation
 */
DirectoryEntry aGrp2 = deBase.Children.Add("cn=yourGrp2", "group");
aGrp2.Properties["description"].Value = "The description you want";
aGrp2.Properties["groupType"].Add(ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_GLOBAL_GROUP | ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_SECURITY_ENABLED);
aGrp2.Properties["sAMAccountName"].Add("yourGrp2");
aGrp2.CommitChanges();
/* Group2 MemberOf Group1
 */
aGrp1.Properties["Member"].Add(aGrp2.Properties["distinguishedName"].Value);
aGrp1.CommitChanges();

有了Framework .NET 3.5中引入的安全主体,你可以用最短的方式做同样的事情,参见:在。net Framework 3.5中管理目录安全主体

我过会儿再来写也许会有更好的代码