次の方法で共有


ディレクトリ オブジェクトの追加

新しいディレクトリ オブジェクトを追加するには、DirectoryEntry クラスの Children プロパティを使用します。このプロパティは、Add メソッドを公開する DirectoryEntries オブジェクトを返します。

オブジェクトを追加するには、オブジェクトを追加するコンテナにバインドし、オブジェクトを追加した後に、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.