Adding Directory Objects

To add new directory objects, use the Children property of the DirectoryEntry class. This property returns a DirectoryEntries object that exposes the Add method.

To add an object, bind to the container that the object is to be added to and, after adding the object, call CommitChanges to save the object from the cache to the directory. The following code example shows how to use the Add method to add new objects.

Try
    ' Bind to the Users container, then add a new group and a new contact.
    Dim de As New DirectoryEntry("LDAP://CN=Users,DC=fabrikam,DC=com")

    ' Create a new group object in the local cache.
    Dim newGroup As DirectoryEntry = de.Children.Add("CN=Sales", "group")

    ' Active Directory requires the sAMAccountName property for all
    ' Security Principal objects beginning with Windows Server 2003
    ' servers, the sAMAccountName will automatically be generated when
    ' Commit() is called if no sAMAccountName is provided.
    newGroup.Properties("sAMAccountName").Value = "Sales"

    ' Save the new object to the server.
    newGroup.CommitChanges()

    ' Create and commit a new contact object.
    Dim newContact As DirectoryEntry = de.Children.Add("CN=New Contact", "contact")
    newContact.CommitChanges()

    ' Bind to the Computers container and add a new computer.
    Dim de01 As New DirectoryEntry("LDAP://CN=Computers,DC=fabrikam,DC=com")
    Dim newComputer As DirectoryEntry = de01.Children.Add("CN=New Computer", "computer")
    newComputer.CommitChanges()
Catch COMEx As COMException
        ' If a COMException is thrown, then the following code can catch the text of the error.
        ' For more information about handling COM exceptions, see Handling Errors.
        Console.WriteLine(COMEx.ErrorCode)
End Try
try
{
    // Bind to the Users container, add a new group and a new contact.
    DirectoryEntry de = new DirectoryEntry("LDAP://CN=Users,DC=fabrikam,DC=com");

    // Create a new group object in the local cache.
    DirectoryEntry newGroup = de.Children.Add("CN=Sales", "group");

    // Active Directory requires the sAMAccountName property for all
    // Security Principal objects beginning with Windows Server 2003
    // servers, the sAMAccountName will automatically be generated when
    // Commit() is called if no sAMAccountName is provided.
    newGroup.Properties["sAMAccountName"].Value = "Sales";

    // Save the new object to the server.
    newGroup.CommitChanges();

    // Create and add a new contact object.
    DirectoryEntry newContact = de.Children.Add("CN=New Contact", "contact");
    newContact.CommitChanges();

    // Bind to the Computers container and add a new computer.
    DirectoryEntry de01 = new DirectoryEntry("LDAP://CN=Computers,DC=fabrikam,DC=com");
    DirectoryEntry newComputer = de01.Children.Add("CN=New Computer", "computer");
    newGroup.CommitChanges();
}
catch (COMException COMEx)
{
    // If a COMException is thrown, then the following code example can catch the text of the error.
    // For more information about handling COM exceptions, see Handling Errors.
    Console.WriteLine(COMEx.ErrorCode);
}

After adding a new object, use the Exists method to verify an entry in the directory. This method is provided in the DirectoryEntry class. The following code example shows how to use Exists.

If ds.Exists("LDAP://CN=Sales,CN=Users,DC=fabrikam,DC=com") = True Then
   Console.WriteLine("object exists")
Else
   Console.WriteLine("object does not exist")
End If
if (DirectoryEntry.Exists("LDAP://CN=Sales,CN=Users,DC=fabrikam,DC=com"))
    Console.WriteLine("object exists");
else
    Console.WriteLine("object does not exist");

See Also

Reference

System.DirectoryServices
DirectoryEntry
DirectoryEntries

Concepts

Creating, Deleting, Renaming and Moving Objects

Send comments about this topic to Microsoft.

Copyright © 2007 by Microsoft Corporation. All rights reserved.