Dizin hizmetlerini ve Visual C sharp'ı kullanarak yerel sisteme kullanıcı ekleme

Bu makalede, yerel sisteme kullanıcı ve Visual C# içinde bir grup eklemek için ad alanının nasıl kullanılacağı DirectoryServices açıklanmaktadır.

Orijinal ürün sürümü: Visual C#
Özgün KB numarası: 306273

Özet

Bu adım adım makale, yerel sisteme ve gruba kullanıcı eklemek için ad alanını nasıl kullanacağınızı DirectoryServices gösterir.

Örneği Oluşturma

  1. Visual Studio .NET 2003, Visual Studio 2005 veya Visual Studio 2008'i başlatın ve ardından yeni bir Visual C# Konsol Uygulaması projesi oluşturun.

  2. Çözüm Gezgini'da Başvurular'a sağ tıklayın ve ardından Başvuru Ekle'ye tıklayın.

  3. Derlemeye System.DirectoryServices.dll bir başvuru ekleyin.

  4. Class1.cs dosyasındaki kodu aşağıdaki kodla değiştirin.

    Not

    Visual C# 2005 veya Visual C# 2008'de , Class1.cs dosyası Program.cs dosyasıyla değiştirilir.

    using System;
    using System.DirectoryServices;
    
    class Class1
    {
        static void Main(string[] args)
        {
            try
            {
                DirectoryEntry AD = new DirectoryEntry("WinNT://" +
                Environment.MachineName + ",computer");
                DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user");
                NewUser.Invoke("SetPassword", new object[] {"#12345Abc"});
                NewUser.Invoke("Put", new object[] {"Description", "Test User from .NET"});
                NewUser.CommitChanges();
                DirectoryEntry grp;
    
                grp = AD.Children.Find("Guests", "group");
                if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});}
                Console.WriteLine("Account Created Successfully");
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadLine();
            }
        }
    }
    
  5. Projeyi derleyin ve çalıştırın.

  6. Hesabın oluşturulduğunu ve Konuk grubuna eklendiğini doğrulamak için Windows 2000 tabanlı bir bilgisayarda şu adımları izleyin:

    1. Başlat menüsünde Programlar'ın üzerine gelin, Yönetimsel Araçlar'ın üzerine gelin ve bilgisayar yönetimi'ne tıklayın.
    2. Yerel Kullanıcılar ve Gruplar düğümünü genişletmek için tıklayın. Yeni hesap, Kullanıcılar düğümü altında ve Konuk grubunun düğümü altında görünmelidir.

    Hesabın oluşturulduğunu ve Konuk grubuna eklendiğini doğrulamak için Windows XP tabanlı bir bilgisayarda şu adımları izleyin:

    1. Başlatmenüsünden Denetim Masası'e tıklayın.
    2. Kullanıcı Hesapları'nı çift tıklatın. Yeni kullanıcı hesabı , Kullanıcı Hesapları iletişim kutusunda görünmelidir.

    Önemli

    Testi tamamladıktan sonra yeni oluşturulan kullanıcı hesabını sistemden kaldırın.

Yeni Dizin Girdisi Oluşturma

Bu örnekte dizin girdisini oluşturduğunuzda, sistemin Windows NT, Windows 2000 veya Windows XP çalıştırıldığı varsayılır.

Not

Oluşturucuya DirectoryEntry geçirilen dize ile "WinNT://"başlar. Dizin Hizmetlerini diğer üçüncü taraf işletim sistemlerinde de çalıştırabilirsiniz.

DirectoryEntry AD = new DirectoryEntry("WinNT://" + SystemInformation.ComputerName + ",computer");

Dizin Ağacına Dizin Girdisi Ekleme

Aşağıdaki kod Active Directory ağacına değerine TestUser1 sahip türde bir DirectoryEntry kullanıcı ekler.

DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user");

Yeni Kullanıcı Hesabı için Parola ve Açıklama ayarlama

Aşağıdaki kod, nesnesinin ve Put yöntemlerini DirectoryEntry çağırmak SetPassword için Invoke yöntemini çağırır. Bu, parolayı ayarlar ve kullanıcı hesabına bir açıklama atar. Bu kod, değişiklikleri kaydetmek için yöntemini de çağırır CommitChanges .

NewUser.Invoke("SetPassword", new object[] {"#12345Abc"});
NewUser.Invoke("Put", new object[] {"Description", "Test User from .NET"});
NewUser.CommitChanges();

Hesabı Gruba Ekleme

Hesabı bir gruba eklemek için şu adımları izleyin:

  1. türünde DirectoryEntrybir değişken tanımlayın.
  2. Find değişkeni doldurmak için sınıfının üyesinin ActiveDirectory yöntemini Children çağırın. Bu durumda, aramanın hedefi Konuk grubudur. Bu kod, yöntemin Find döndürdüğü değeri sınar ve grubun bulunup bulunmadığını belirler. Grup bulunursa, yeni kullanıcı hesabı gruba eklenir.
DirectoryEntry grp;
grp = AD.Children.Find("Guests", "group");
if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});}

Sorun giderme

Bu makaledeki kod, kullanıcı hesabı oluşturmak için yeterli ayrıcalıklara sahip olmadan kodu çalıştırmayı denerseniz başarısız olur. Kodun başarıyla tamamlanması için, şu anda oturum açmış olan kullanıcının Administrators grubunun üyesi olması veya kullanıcının kullanıcı hesapları oluşturmasına izin veren belirli izinlere sahip olması gerekir.