public int IndexOf(ActiveDirectorySchemaProperty schemaProperty) { }
public void Insert(int index, ActiveDirectorySchemaProperty schemaProperty) {}
// Methods public bool Contains(ActiveDirectorySchemaProperty schemaProperty) { }
public void AddRange(ActiveDirectorySchemaProperty[] properties) {}
public void Remove(ActiveDirectorySchemaProperty schemaProperty) {}
public int IndexOf(ActiveDirectorySchemaProperty schemaProperty) {}
// Methods public int Add(ActiveDirectorySchemaProperty schemaProperty) {}
public bool Contains(ActiveDirectorySchemaProperty schemaProperty) {}
public void CopyTo(ActiveDirectorySchemaProperty[] properties, int index) {}
// Methods public int Add(ActiveDirectorySchemaProperty schemaProperty) { }
public void Insert(int index, ActiveDirectorySchemaProperty schemaProperty) { }
public void Remove(ActiveDirectorySchemaProperty schemaProperty) { }
public static void CreateNewClass() { // specify a common name string newClassCommonName = "new-Class"; // specify an lDAPDisplayName string newClassLdapDisplayName = "newClass"; // specify an OID value. The root name was generated by oidgen.exe string newClassOid = "1.2.840.113556.1.5.7000.111.28688.28684.8.240397.1734810.1181742.544876.1"; string subClassOf = "top"; string possibleSuperior = "organizationalUnit"; // add an optional attribute to the new schema class object // This example adds the new attribute created in the CreateNewAttribute method string newClassOptionalAttribute = newAttributeLdapDisplayName; // create a new class object ActiveDirectorySchemaClass newClass = new ActiveDirectorySchemaClass( adamContext, newClassLdapDisplayName); // set the attribute values for this schema class object newClass.CommonName = newClassCommonName; newClass.Oid = newClassOid; newClass.Type = SchemaClassType.Structural; // assign the parent class newClass.SubClassOf = ActiveDirectorySchemaClass.FindByName(adamContext, subClassOf); // add the previously created attribute as an optional attribute newClass.OptionalProperties.Add( ActiveDirectorySchemaProperty.FindByName(adamContext, newClassOptionalAttribute)); //add an OU as a possible superior so that this class can be //instantiated in an OU newClass.PossibleSuperiors.Add( ActiveDirectorySchemaClass.FindByName(adamContext, possibleSuperior)); // save the new class to the schema try { newClass.Save(); } catch (ActiveDirectoryObjectExistsException e) { // an schema object by this name already exists in the schema Console.WriteLine("The schema object {0} was not created. {0}", newClassLdapDisplayName, e.Message); return; } catch (ActiveDirectoryOperationException e) { // a call to the underlying directory was rejected Console.WriteLine("The schema object {0} was not created. {0}", newClassLdapDisplayName, e.Message); return; } Console.WriteLine("Class \"{0}\" created successfully.", newClassLdapDisplayName); }
private static void createSchemaClass(object domainDCs) { try { if (!DirectoryEntry.Exists("LDAP://CN=nmlsNetworkDriveClass,cn=Schema,cn=Configuration," + domainDCs)) { DirectoryContext ctx = new DirectoryContext(DirectoryContextType.Forest); ActiveDirectorySchemaClass schemaClass = new ActiveDirectorySchemaClass(ctx, "nmlsNetworkDriveClass"); schemaClass.Oid = "1.2.840.113556.1.8000.2554.61823.22188.26389.18272.44952.1599828.8363415.3.1"; schemaClass.SubClassOf = new ActiveDirectorySchemaClass(ctx, "top"); schemaClass.OptionalProperties.AddRange(new ActiveDirectorySchemaProperty[] { ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveA"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveB"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveC"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveD"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveE"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveF"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveG"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveH"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveI"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveJ"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveK"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveL"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveM"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveN"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveO"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveP"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveQ"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveR"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveS"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveT"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveU"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveV"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveW"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveX"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveY"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveZ"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelA"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelB"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelC"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelD"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelE"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelF"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelG"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelH"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelI"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelJ"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelK"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelL"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelM"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelN"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelO"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelP"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelQ"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelR"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelS"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelT"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelU"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelV"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelW"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelX"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelY"), ActiveDirectorySchemaProperty.FindByName(ctx, "nmlsNetworkDriveDelZ") }); schemaClass.Type = System.DirectoryServices.ActiveDirectory.SchemaClassType.Auxiliary; schemaClass.Save(); //schemaClass } else { Console.WriteLine("Class already exists"); } DirectoryEntry userClass = new DirectoryEntry("LDAP://cn=User,cn=Schema,cn=Configuration," + domainDCs); if (!userClass.Properties["auxiliaryClass"].Contains("nmlsNetworkDriveClass")) { userClass.Properties["auxiliaryClass"].Add("nmlsNetworkDriveClass"); userClass.CommitChanges(); } else { Console.WriteLine("User class already has auxiliary class nmlsNetworkDriveClass"); } // Add NMLS class also OU objects. DirectoryEntry ouClass = new DirectoryEntry("LDAP://cn=Organizational-Unit,cn=Schema,cn=Configuration," + domainDCs); if (!ouClass.Properties["auxiliaryClass"].Contains("nmlsNetworkDriveClass")) { ouClass.Properties["auxiliaryClass"].Add("nmlsNetworkDriveClass"); ouClass.CommitChanges(); } else { Console.WriteLine("OU class already has auxiliary class nmlsNetworkDriveClass"); } } catch (Exception e) { Console.WriteLine(e.ToString()); } }