/// <summary> /// 在Users容器下创建一个新的工作组对象。 /// </summary> /// <param name="commonName">表示工作组的公共名称。</param> /// <param name="sAMAccountName">表示工作组的账户名称。</param> /// <param name="groupType">表示工作组的类型。</param> /// <returns>返回一个新的工作组对象。</returns> public DomainGroup CreateNewGroup(string commonName, string sAMAccountName, ADS_GROUP_TYPE_ENUM groupType) { return(CreateNewGroup("CN=Users", commonName, sAMAccountName, groupType)); }
/// <summary> /// 创建一个新的工作组对象。 /// </summary> /// <param name="containerDN">表示工作组的容器DN。</param> /// <param name="commonName">表示工作组的公共名称。</param> /// <param name="sAMAccountName">表示工作组的账户名称。</param> /// <param name="groupType">表示工作组的类型。</param> /// <returns>返回一个新的工作组对象。</returns> public DomainGroup CreateNewGroup(string containerDN, string commonName, string sAMAccountName, ADS_GROUP_TYPE_ENUM groupType) { try { if (string.IsNullOrEmpty(containerDN.Trim())) { throw new Exception("“containerDN”属性不能为空"); } if (string.IsNullOrEmpty(commonName.Trim())) { throw new Exception("“commonName”属性不能为空"); } if (string.IsNullOrEmpty(sAMAccountName.Trim())) { throw new Exception("“sAMAccountName”属性不能为空"); } string groupDN = "CN=" + commonName + "," + containerDN; using (DirectoryEntry container = GetDirectoryEntry(containerDN)) { if (ExistDirectoryEntryByDN(groupDN)) { throw new Exception("已存在公共名称为“" + commonName + "”的对象。"); } container.Children.Add("CN=" + commonName, "group").CommitChanges(); DomainGroup Domaingroup = GetGroup(groupDN); Domaingroup.SAMAccountName = sAMAccountName; Domaingroup.GroupType = ((long)groupType).ToString(); Domaingroup.CommitChanges(); return(Domaingroup); } } catch { return(null); } }