新增目錄物件

若要加入新的目錄物件,請使用 Children 屬性 (在 DirectoryEntry 類別中)。此屬性會傳回 DirectoryEntries 物件,此物件會公開 Add 方法。

若要加入物件,請繫結到此物件將加入的容器,新增物件之後,請呼叫 CommitChanges 將物件從快取儲存至目錄中。下列程式碼範例示範如何使用 Add 方法來加入新物件。

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);
}

加入新物件之後,請使用 Exists 方法來確認目錄中的項目。此方法提供於 DirectoryEntry 類別中。下列程式碼範例示範如何使用 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");

請參閱

參考

System.DirectoryServices
DirectoryEntry
DirectoryEntries

概念

建立、刪除、重新命名和移動物件

Send comments about this topic to Microsoft.

Copyright © 2007 by Microsoft Corporation.All rights reserved.