Posta kutusu etkin bir alıcı, Visual C# kullanarak oluşturma

Makale numarası: 313114 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu adım adım makalede, bir posta kutusu etkin kullanıcı System.DirectoryServices ad ve CDO kullanarak Exchange Management (CDOEXM) için nasıl oluşturulacağını açıklar.

Gereksinimler

Aşağıdaki listede, gereksinim duyacağınız donanım, yazılım, ağ altyapısı ve hizmet paketleri önerilmektedir:
  • Microsoft Exchange 2000 yüklü olan Microsoft Windows 2000 tabanlı bir etki alanı
  • Microsoft Visual C# 2005 veya Microsoft Visual C# .NET
  • Bu kod çalıştığı bilgisayarda Microsoft Exchange 2000 sistem yönetim araçları

Daha fazla bilgi

Yeni C# program oluşturun.

  1. Visual C# 2005 veya Visual C# .NET, yeni bir C# oluşturma MBTest adlı konsol program.
  2. Solution Explorer'da (Çözüm Gezgini), Başvurular ' ı sağ tıklatın ve sonra Add Reference</a1>'ı tıklatın.
  3. .NET</a0> sekmesinde bir proje başvurusu System.DirectoryServices ad alanını ekleyin.
  4. COM</a0> sekmesinde, Microsoft CDO for Exchange Management başvuru ekleyin.
  5. Class1.cs dosyasındaki kodu aşağıdaki kodla değiştirin.

    Not Visual C# 2005'te program.cs dosyasındaki kod yerine yerini.
    using System;
    using CDOEXM;
    using System.DirectoryServices;
    
    namespace MBTest
    {
         class Class1
         {
              [STAThread]
              static void Main(string[] args)
              {
                   //TODO: Change these items to values for your domain or organization.
                   string defaultNC = "DC=yourdomain,DC=com";
                   string alias = "jsmith"; 
                   string fullName = "Joseph Smith";
                   string password = "TestMb123.";
                   string domainName = "yourdomain.com";
                   string homeMDB = "CN=Mailbox Store (Your Server),CN=Your Storage Group," 
                             + "CN=InformationStore,CN=Your Server,CN=Servers,"
                             + "CN=Your Administrative Group,CN=Administrative Groups,"
                             + "CN=Your Org,CN=Microsoft Exchange,CN=Services,"
                             + "CN=Configuration,DC=Yourdomain,DC=Com";
    
                   DirectoryEntry container, user;
                   CDOEXM.IMailboxStore mailbox;
    
                   //This creates the new user in the "users" container.
                   //Set the sAMAccountName and the password
                   container = new DirectoryEntry("LDAP://cn=users," + defaultNC);
                   user = container.Children.Add("cn=" + fullName, "user");
                   user.Properties["sAMAccountName"].Add(alias);
                   user.CommitChanges();
                   user.Invoke("SetPassword", new object[]{password});
                   
                   //This enables the new user.
                   user.Properties["userAccountControl"].Value = 0x200; //ADS_UF_NORMAL_ACCOUNT
                   user.CommitChanges();
    
                   //Obtain the IMailboxStore interface, create the mailbox, and commit the changes.
                   mailbox = (IMailboxStore)user.NativeObject;
                   mailbox.CreateMailbox(homeMDB);
                   user.CommitChanges();
    
                   return;
              }
         }
    }
    					
  6. Ana işlevi YAPıLACAK bölümünde değişkenleri değiştirir, böylece etki alanınız için doğru değerler içerirler.
  7. Projeyi derlemek ve programı çalıştırın.
  8. Yeni hesabın Active Directory Kullanıcıları ve Bilgisayarları ek bileşenini Microsoft Yönetim Konsolu'nu (MMC) başlayarak etki alanında oluşturulduğunu doğrulayın. Yeni bir kullanıcı <a0>Kullanıcılar</a0> kapsayıcısındaki görürsünüz. Bu kullanıcının posta kutusu etkin olduğunu doğrulamak için <a0></a0>, kullanıcının özelliklerini ve Exchange sekmeler görüntülenir ve Exchange genel</a0> sekmesinde kullanıcının bir posta kutusu deposunun listelenen Not görüntüleyin.

Kod açıklaması

Yeni bir DirectoryEntry oluşturma

(Bu durumda, kullanıcılar kapsayıcısı) bir kapsayıcıya bağlamak ve kapsay?c? içinde yeni bir kullanıcı oluşturmak, bu kodu gösterir. Unutma "cn =" yeni kullanıcı adı için bir giriş.
container = new DirectoryEntry("LDAP://cn=users," + defaultNC);
user = container.Children.Add("cn=" + fullName, "user");
				

Yeni kullanıcı özelliklerini ayarlama

  1. SAMAccountName için bir değer atayın. Bu zorunlu bir özniteliğidir. Bir değer belirtmezseniz, kullanıcı hesabı oluşturulur.
  2. Sağladığınız zorunlu öznitelikleri olduğundan, yeni kullanıcı dizine kaydetmek için CommitChanges arayın.
  3. Parola ayarlamak için IADs::SetPassword arayın. Bunu bir ça?r? CommitChanges sonra yapmanız gerekir.
  4. Kullanıcı, userAccountControl özniteliğinin değiştirerek etkinleştirin.
    user.Properties["sAMAccountName"].Add(alias);
    user.CommitChanges();
    user.Invoke("SetPassword", new object[]{password});
                   
    //This enables the new user:
    user.Properties["userAccountControl"].Value = 0x200; //ADS_UF_NORMAL_ACCOUNT
    user.CommitChanges();
    				

Yeni bir posta kutusu oluşturma

  1. IMailboxStore arabirimi almak için <a0></a0>, bu tür için DirectoryEntry.NativeObject atama. CDOEXM bir bilgisayarda yüklü değilse, bu atama çalışma zamanında başarılı olmaz.
  2. CreateMailbox yöntemini ve geçerli bir ayırt edici ad, Exchange kuruluşunuzdaki bir posta kutusu deposuna geçirmek.
  3. CommitChanges yeni posta kutusu kaydetmek için DirectoryEntry üzerinde çağırın.
    //Obtain the IMailboxStore interface, create the mailbox, and commit the changes.
    mailbox = (IMailboxStore)user.NativeObject;
    mailbox.CreateMailbox(homeMDB);
    user.CommitChanges();
    				

SORUN GİDERME

  • Etki alanındaki bir kullanıcı tarafından ve posta kutusu oluşturmak için uygun izinleriniz olmalıdır. Genellikle, Windows 2000 tabanlı bir etki alanında posta kutusu etkin kullanıcıların oluşturmak için <a0></a0>, etki alanı için Windows 2000 etki alanı yöneticileri grubunun bir üyesi olması gerekir.
  • Bu kod, Exchange 2000 Server tabanlı bir bilgisayarda farklı bir bilgisayarda çalıştırılırsa, Exchange 2000 Sistem Yönetim Araçları yüklü olmalıdır. Bunu yapmazsanız, CDOEXM kullanılamaz ve IMailboxStore arabirimine dönü?türme ınvalidcastexception yanıtının atar:
    Içinde MBTest.exe 'System.InvalidCastException' türünde işlenmeyen bir özel durum oluştu
    Ek bilgi: dönü?türme geçersiz belirtildi.
  • IMailboxStore.CreateMailbox çağrısı bir hata iletisi alırsanız, bu yönteme geçilen parametre bir kuruluşunuzun geçerli posta kutusu deposunda olduğunu doğrulayın. Yüklü değilse, aşağıdakine benzer bir hata iletisi alırsınız:
    Içinde MBTest.exe 'System.Runtime.InteropServices.COMException' türünde işlenmeyen bir özel durum oluştu
    Ek bilgi: sunucuda böyle bir nesne yok.

Referanslar

System.DirectoryServices ad boşluğu hakkında daha fazla bilgi için ziyaret edin, aşağıdaki Microsoft Developer Network (MSDN) Web sitesi:
http://msdn2.microsoft.com/en-us/library/system.directoryservices(vs.71).aspx
CDOEXM hakkında daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/ms876280.aspx

Özellikler

Makale numarası: 313114 - Son Gözden Geçirme: 18 Mayıs 2007 Cuma - Gözden geçirme: 5.4
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Collaboration Data Objects for Exchange Management 1.1
  • Microsoft Exchange 2000 Server Standard Edition
  • Microsoft Exchange 2000 Enterprise Server
  • Microsoft Active Directory Client Extension
  • Microsoft Active Directory Service Interfaces 2.5
Anahtar Kelimeler: 
kbmt kbdswadsi2003swept kbhowtomaster KB313114 KbMttr
Otomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:313114

Geri Bildirim Ver