Makale numarası: 912918 - Son Gözden Geçirme: 08 Mayıs 2012 Salı - Gözden geçirme: 1.0

Kullanıcılar bir taşınabilir aygıttan veya Exchange 2000 Server ve Exchange Server 2003'te bir paylaşılan posta e-posta iletisi gönderemiyor

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Microsoft Exchange içinde bir e-posta iletisi göndermeye çalıştığınızda 2000 Server veya Microsoft Exchange Server 2003 e-posta gönderemezsiniz. ileti. Ayrıca, aşağıdaki hata iletilerinden birini alabilirsiniz veya Aşağıdaki teslim edilemedi raporları (NDR) birini.

Hata iletileri

  • Erişim engellendi
  • Yeterli izniniz yok Bu işlemi bu nesne üzerinde gerçekleştirmek için. Klasörü kişi ya da sistem Bkz. Yönetici.
  • Listelenmeyen ileti Hata
  • MAPI_E_NO_ACCESS -2147024891
  • Posta iletisi gönderilemedi user KullanıcıAdı (hresult:-2147024891) kullanıcıadı kullanıcısı. (Güvenlik hatası- Kullanıcının posta kutusuna erişemiyor.)
  • Kaynak yok Bulundu
Not Kaynağı"ya da"erişim reddedildi"hata iletisini alıyorsunuz Siz olarak oturum açtığınızda Microsoft Outlook Web Erişimi'nden bulunamadı"hata iletisi bir Hesap temsilcisi.

NDR'ler

  • Bu alıcıya teslim için izniniz yok. İçin Yardım için sistem yöneticinize başvurun.
  • İleti kutunuz kullanılarak gönderilemedi. Bunu belirlenen kullanıcı adına ileti gönderme izniniz yok.

Etkilenen ürünler

Bu sorun, aşağıdaki üçüncü taraf etkilediği bilinmektedir Ürünler:
  • Araştırma Motion (RIM) BlackBerry Enterprise Server (bes)
  • İyi Technology GoodLink Wireless Messaging
Bu sorun ayrıca özel MAPI veya ortak verileri etkileyebilir Nesneleri (cdo)-tabanlı e-posta iletileri programlar.

Diğer e-posta iletileri göndermek için hizmet hesaplarını kullanan üçüncü taraf ürünler de olabilir etkilenmiş. Bu tarafından etkilenen bir üçüncü taraf ürünü çalıştırıyorsanız sorun, bu çözümleme konusunda yardım için satıcıya başvurun öneririz sorun.

Ancak, onaylanan, aşağıdaki üçüncü taraf ürünlerin bu sorundan etkilenmez:
  • Cisco bütünlüğünü Birleşik Mesajlaşma
  • Exchange için Quest Migration Suite
  • Exchange için Microsoft ExMerge yardımcı programı

Neden

Bu sorun, aşağıdaki koşullardan biri olduğunda ortaya çıkabilir TRUE:
  • E-posta iletileri olarak gönderme izniniz yok posta kutusu sahibi olarak e-posta göndermek için kullandığınız hesap ileti.
  • Microsoft Exchange 2000 Server hizmet paketi çalıştıran 3 (SP3) ile birlikte çok veya sonraki sürümü eşit bir Store.exe dosya sürümü 6619.4. 6619.4 Sürümü ilk aşağıdaki Microsoft kullanıma sunuldu Bilgi Bankası makalesi:
    915358  (http://support.microsoft.com/kb/915358/ ) Exchange 2000 Server'da Tam posta kutusu erişimi izninin davranışını değiştiren bir düzeltme kullanılabilir
  • ' E eşit veya daha sonraki sürümden bir Store.exe dosya sürümü ile birlikte Microsoft Exchange Server 2003 SP1 çalıştıran 7233.51.
  • Exchange Server 2003 SP2 ile birlikte bir Store.exe çalıştırıyorsanız dosya sürümü çok ya da daha sonra 7650.23 sürümü eşittir. 7650.23 Sürümü öncelikle aşağıdaki Microsoft Bilgi Bankası'ndaki kullanıma sunuldu makale:
    895949  (http://support.microsoft.com/kb/895949/ ) "Farklı Gönder" iznindeki davranış değişikliği Exchange 2003
    Bu değişiklik Exchange Server 2003 SP2 ile birlikte gelmez. Bu değişikliği içeren Store.exe dosyasının Exchange Server 2003 SP1 sürümünü çalıştıran ve Exchange Server 2003 SP2'ye yükseltme, yeni davranışı korumak için bu düzeltmenin SP2 sürümünü yüklemeniz gerekir. Bu değişiklik, Microsoft Exchange Server 2003 SP3'te eklenecektir.

GÜVENLİK KONULARI

Listelenen Store.exe dosyası sürümlerinden önce "Örtülü olarak tam posta kutusu erişimi izni verme bölümünde, neden" posta kutusu sahibi olarak ileti gönderme izni. Bu, o başka bir hesap geliyordu Tam posta kutusu erişimi izni görünen e-posta iletileri gönderebilir vardır. posta kutusu sahibi tarafından gönderilmiş gibi.

Birçok Microsoft Exchange müşterilerin Farklı Gönder izninin tam erişimden ayrılması istediniz. Posta kutusu erişimi izni için aşağıdaki iki nedenden dolayı:
  • E-posta Sızdırma durumlarını ayırt etmek.
  • Emin olmak için e tarafından gönderilen iletileri bir Temsilci her zaman açıkça gönderilen e-posta iletilerinden ayırt gerçek posta kutusu sahibi tarafından.
Exchange Deposu yeni sürümleri şimdi olur e-posta iletileri olarak göndermek için Farklı Gönder izni açıkça gerektirir posta kutusu sahibi. Ancak, aşağıdaki üç özel durum listeler gereksinim:
  • Posta kutusu sahibi hesabı açık Farklı Gönder gerektirmez. kendi posta kutusu için izinleri.
  • Posta kutusunun ilişkili dış hesabı yok açık Farklı Gönder izinleri olması gerekir.
  • Tam posta kutusu erişimi olan bir temsilci hesabı izni açıkça Farklı Gönder izni gerektirmez.
Bu özel durumlar hakkında daha fazla bilgi için bkz: "daha Bilgileri"bölümü.

Çözüm

"Neden" bölümünde açıklanan dışında bir posta kutusuna kısmi veya tam erişim hakkı olan tüm hesapları artık açıkça Farklı Gönder iznini posta kutusu sahibi hesabının posta kutusu sahibi olarak göndermek için verilmelidir. Bu, mobil aygıt kullanıcıları için e-posta gönderme gibi işlevleri uygulama hizmeti hesaplarını içerir.

Farklı Gönder izni olmayan veritabanında depolanan posta kutusu içeriği için bir Active Directory kullanıcı nesnesinin kimliği için geçerlidir. Bu nedenle, bir posta kutusunun sahibi olan her kullanıcı nesnesindeki hizmet hesabına Farklı Gönder izni verilmesi gerekir. E-posta iletileri gönderildiğinde, bunlar belirli bir posta kutusu veya veritabanı ancak kullanıcı ve gönderilmiyor. Kullanıcı, posta kutusu sahibi veya Farklı Gönder izni bulunan başka bir hesap olabilir.

Farklı Gönder iznini Exchange Server çalıştıran bir sunucu veya veritabanı nesnesinde vermek ve veritabanındaki tüm posta kutuları için Farklı Gönder izni verme etkisini elde etmek. Exchange veritabanı nesnesinde Farklı Gönder izni verme veritabanına izin verir. İzin veritabanındaki tüm posta kutularına tarafından devralınır. Ancak, bunu size kim Farklı Gönder izinleri ve kimin veritabanındaki posta kutularına sahip kullanıcılara izin vermez.

Not Olan bir Exchange veritabanı farklı Al izni verme işlevsel karşılığının tüm tam posta kutusu erişim izni verme Veritabanı posta kutularına. Bu gönderme davranışından farklıdır İzni.

Nasıl bir hesaba Farklı Gönder izinleri

Açıkça posta göndermek için başka bir hesap izni vermek için sahibi, şu adımları izleyin:
  1. Active Directory Kullanıcıları ve bilgisayarları yönetim Başlat Konsol.
  2. Üzerinde Görünüm menü, emin olunGelişmiş özellikleri seçeneği seçilir. Bu seçenek ise Seçili güvenlik sayfası için kullanıcı hesabı görünmez nesneler.
  3. Sahibi olan kullanıcı hesabının özelliklerini açın posta kutusu.
  4. ' I tıklatın Güvenlik sekmesini tıklatın.
  5. Hesap grubu ya da kullanıcı listesinde değilse Bunun için Farklı Gönder izni olması gereken hesap adları, ekleme Kullanıcı.
  6. İçinde İzinler kutusuna "Farklı Gönder" izin verme uygun hesabı izni.
  7. ' I tıklatın TAMAM.
  8. Microsoft Exchange Bilgi Deposu hizmetini yeniden başlatın Etkilenen Exchange server.
Not Microsoft Exchange bilgi deposu yeniden Hizmet, Microsoft Exchange Bilgi Deposu hizmeti güncelleştirilir, izinler önbelleğe yeni izinler göre etkili Aşağıdaki kayıt defteri alt anahtarında ayarlı değere:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem

Değer adı: posta kutusu önbelleği yaşlandırma sınırı
Değer türü: reg_dword
Sayı tabanı: ondalık
Değer verisi: Dakika olarak posta kutusu bilgileri önbelleği yaşlandırma sınırı.
Bu kayıt defteri girdisinin varsayılan değeri 120 (iki dakikadır saat). Bu kayıt defteri girdisini değiştirirseniz, Microsoft yeniden Exchange Bilgi Deposu hizmeti.

Not Zaman aşımı değerlerini çok küçük bir değere ayarlarsanız, olabilir Sunucu performansını etkileyebilir.

Farklı Gönder iznini birden çok hesaba nasıl

Örnek komut dosyası, bir posta kutusu için Farklı Gönder izni olmadan Tam posta kutusu erişimi izni olan hesaplar için Active Directory service etki alanı arama yapar, bu makalenin sonunda sağlanır. Bu güvenlik değişikliğinden etkilenecek hizmetin veya kaynak hesabın özellikleri bunlar. Komut dosyasını gözden geçirebilir, düzenleyebilir ve bu izni gerektiren hesaplara Farklı Gönder izni vermek için yeniden alın bir verme dosyası oluşturabilir.

Ayrıca, Active Directory etki alanı veya kapsayıcısındaki her kullanıcı nesnesine devralma yoluyla Farklı Gönder izni verebilirsiniz. Farklı Gönder iznini bu yöntemle verirseniz, hedeflemediğiniz nesneler için izinleri. Ayrıca, kapsayıcıdan taşınmış nesneler için izinlerini kaybedebilir. Bu nedenle bu yöntem tercih edilmez ve uygulamadan önce dikkatle incelenmesi gereken güvenlik etkilerine sahip olabilir.

Farklı Gönder iznini bu yöntemle verirseniz, devralınan Farklı Gönder izni hesaplar makalenin sonunda başvurulan komut algılanamaz. Bu hesapları daha sonra komut dosyasını kullanarak işlemek için ilk olarak devralınan Farklı Gönder iznini kaldırmalısınız.

Kalıtım kullanarak, bir Active Directory etki alanı veya kapsayıcısındaki tüm kullanıcı hesaplarında tek bir hesaba Farklı Gönder izni vermek için aşağıdaki adımları izleyin:
  1. Active Directory Kullanıcıları ve bilgisayarları yönetim Başlat Konsol.
  2. Üzerinde Görünüm menü, emin olunGelişmiş özellikleri seçeneği seçilir. Bu seçenek ise Seçili güvenlik sayfası için etki alanı ve kapsayıcı görünmez nesneler.
  3. Etki alanı veya kapsayıcı özelliklerini açın ve sonra Güvenlik sayfasını tıklatın.
  4. ' I tıklatın Gelişmiş.
  5. İzin gerektiren hesap zaten listede yoksa ' ı tıklatın Eklemeve sonra hesabı seçin. Aksi takdirde, çift tıklatın düzenleme için hesap.
  6. İçinde Üzerine uygulanır. tıklatınKullanıcı nesneleri.
  7. ' % S'hesabına Farklı Gönder izni verin.
  8. ' I tıklatın TAMAM çıkıncaya ve kaydedilen kadar tüm değişiklikleri.

AdminSDHolder korumalı hesapları için özel kurallar

Etki alanı yöneticisi olan bir posta kutusu sahibine Farklı Gönder iznini atamak için komut dosyasını kullanırsanız, Farklı Gönder izni geçerli olmaz. Size posta kutusunu-kullanıcı hesapları, etki alanı yönetici hakları olan veya adminSDHolder korumalı olan etkinleştirmemenizi öneririz.

AdminSDHolder nesnesi, geniş Active Directory yönetim hakları olan hesaplara yönelik bir şablondur. İstenmeyen ayrıcalık engellemek için adminSDHolder nesnesi tarafından korunan bir hesabın, adminSDHolder nesnesinin kendisinde listelenen uygun izinleriniz olmalıdır.

Hak veya korumalı hesabın adminSDHolder nesnesi üzerinde izinleri değiştirirseniz, bir arka plan görevi tarafından değişiklik birkaç dakika içinde geri alır. Örneğin, bir uygulama hizmeti hesabının etki alanı yöneticisi nesnesinde Farklı Gönder izni verirseniz, arka plan görevi otomatik olarak izni iptal.

Bu nedenle, adminSDHolder nesnesi tarafından korunan bir uygulama hizmet hesabına adminSDHolder nesnesinin kendisi değiştirilmediği sürece Farklı Gönder izni alamazsınız. AdminSDHolder nesnesini değiştirirseniz, tüm korumalı hesapların erişim izinlerini değiştirir. Size yalnızca adminSDHolder nesnesi bir tam sonucunda oluşabilecek güvenlik uygulamalarını gözden sonra değiştirmelisiniz.

Posta kutusu firma ile ilişkilendirmek için Korunan adminSDHolder nesnesi tarafından aşağıdaki adımları izleyin:
  1. Active Directory Kullanıcıları ve bilgisayarları yönetim Başlat Konsol.
  2. Üzerinde Görünüm menü, emin olunGelişmiş özellikleri seçeneği seçilir. Bu seçenek ise Seçili güvenlik sayfası için kullanıcı hesabı nesneleri görünür olmaz.
  3. Posta kutusu davranmasını normal bir kullanıcı hesabı oluşturma sahibi.
  4. Normal kullanıcı hesabını bir bir Exchange posta kutusuna atayın. Sunucu.
  5. Yeni posta kutusu sahibi hesabının özelliklerini açın.
  6. İçinde Exchange Gelişmiş kutusunda, verme Tam posta kutusu erişimi iznini korumalı yönetici Hesap.
  7. Güvenlik sayfasında, Farklı Gönder izni korumalı yönetici hesabına.
  8. ' I tıklatın TAMAM özelliklerinden çıkmak için posta kutusu sahibi nesnesinde.
  9. Posta kutusu sahibi hesabı nesnesini sağ tıklatın ve sonra ' ı tıklatın Hesabı devre dışı bırak tüm oturumlar için hesabı devre dışı bırakmak için.
AdminSDHolder korumalı hakkında daha fazla bilgi için hesapları, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
907434  (http://support.microsoft.com/kb/907434/ ) "Active Directory Kullanıcıları ve Bilgisayarları'nda"Farklı Gönder"hakkı yapılandırıldıktan sonra hakkı kullanıcı nesnesinden kaldırılır Farklı Gönder" Exchange Server eklentisi
318180  (http://support.microsoft.com/kb/318180/ ) AdminSDHolder iş parçacığı dağıtım gruplarının geçiş üyelerini etkiliyor
817433  (http://support.microsoft.com/kb/817433/ ) Temsilci olarak atanan izinler kullanılamıyor ve devralma otomatik olarak devre dışı bırakılır
306398  (http://support.microsoft.com/kb/306398/ ) AdminSDHolder nesnesi geçmiş Yönetici hesaplarının Denetim Temsilcisi etkiler.

BlackBerry Enterprise Server için özel görevler

Görev 1: BlackBerry Enterprise Server ayrı ve benzersiz bir hesap çalıştığından emin olun

BlackBerry Enterprise Server olarak çalıştığından emin olun bir Yönetimsel görevler için özel olarak oluşturulmuş bir hesabı ayırın. Tarafından Varsayılan olarak bu hesap "BESAdmin" olarak adlandırılır

Ayrı bir varsa BlackBerry Enterprise Server'ı yönetmek için hesap, 2 numaralı göreve gider.

Ayrı bir hesap yoksa ayrı bir hesap oluşturun. Daha sonra yönetimsel görevleri gerçekleştirmek için bu hesabı kullanın. BlackBerry Enterprise Server 4.0 veya BlackBerry Enterprise Server 4.1 çalıştırıyorsanız, bunun nasıl yapılacağı hakkında yönergeler için BlackBerry Enterprise Server Yükleme Kılavuzu'na bakın.  BlackBerry Enterprise Server 3.6 çalıştırıyorsanız bu, bunu yapma hakkında yönergeler için bkz: BlackBerry Enterprise Server 2000/2003 yüklemesini ve Başlarken Kılavuzu.

Görev 2: BlackBerry Enterprise Server hizmet hesabının uygun izinleri olduğundan emin olun.

BlackBerry Enterprise Server hizmet hesabının olduğunu doğrulayın uygun izinleri.

Not Bir etki alanı hesabıysa, hesap olduğundan emin olun. yalnızca etki alanı kullanıcıları grubunun bir üyesi. Hesap bir etki alanı denetleyicisi Yerleşik Yöneticiler grubunun üyesi olmanız gerekir.
  1. BlackBerry Enterprise Server üzerinde aşağıdaki adımları izleyin:
    1. Hesap, yerel bir üyesi olduğundan emin olun Administrators grubu.
    2. Atama "Yerel olarak oturum aç" ve "bir hizmet olarak oturum" Hesap izinleri.
  2. GRANT Exchange sadece görüntüleme yönetici izinleri Yönetimsel grup düzeyi. Bunu yapmak için şu adımları izleyin:
    1. Exchange Sistem Yöneticisi'ni sağ ilk Exchange Server yönetim grubu adını tıklatın ve sonra Temsilci Denetim.
    2. Dikkat BlackBerry Enterprise Server hizmet hesabı Exchange sadece görüntüleme yöneticisi rolüne sahip olarak listelenir.
  3. Verin "Farklı Gönder" "Farklı Al" ve "bilgi yönetmek Her bir Exchange sunucusu için sunucu düzeyinde izinler store". Bunu yapmak için Bu, aşağıdaki adımları izleyin:
    1. Exchange Sistem Yöneticisi'ni sağ ilk Exchange Server yönetim grubu adını ve genişletin Sunucuları Grup.
    2. Exchange server'ı sağ tıklatın,'ı tıklatın Özelliklerve ardından Güvenlik.
    3. BlackBerry Enterprise üst bölmede seçin Server hizmet hesabını. Emin olun alt bölmede, "Farklı Gönder" "Farklı Al" ve "Bilgi deposunu Yönet" izinlerini ayarlanmıştır İzin ver.
    4. Adımları 3b ve 3 c her değişimi için yineleyin. Sunucu.
  4. Verin "Farklı Gönder" "Farklı Al" ve "bilgi yönetmek Posta kutusu deposu için izinleri store". Bunu yapmak için şu adımları izleyin:
    1. Exchange Sistem Yöneticisi'ni sağ ilk Exchange Yönetim grubu adını ve genişletin Sunucuları Grup.
    2. İlk posta kutusu deposu grubunu genişletin, her sağ tıklatın posta kutusu deposunu tıklatın Özelliklerve ardından Güvenlik.
    3. BlackBerry Enterprise üst bölmede seçin Server hizmet hesabını. Emin olun alt bölmede, "Farklı Gönder" "Farklı Al" ve "Bilgi deposunu Yönet" izinlerini ayarlanmıştır İzin ver.
    4. Her her posta kutusu deposu için adımları 4b ve 4 c yineleyin. Exchange server.
  5. Active Directory Kullanıcıları ve Bilgisayarları ek bileşeninde, izleyin Bu adımlar:
    1. Eklemek istediğiniz kullanıcıyı sağ tıklatın. izinleri ve sonra Özellikler.
    2. Üzerinde Güvenlik sekmesinde, Ekle BlackBerry Enterprise Server hizmet hesabı ve ardından Olarak gönder onay kutusunu seçin.
Exchange Server 2003 çalıştırmıyorsanız, görev 3 bakın.

Görev 3: BlackBerry Enterprise Server önbelleğini temizleyin

Exchange Deposu'ndaki izinler önbelleğini temizlemek için yeniden Blackberry ile ilgili hizmetleri ve Microsoft Exchange bilgi yeniden başlatma Depo. Sonra Exchange Deposu yeniden, "BESAdmin" hesabına yeni eklenen Farklı Gönder izni vermek için RIM Blackberry ile ilgili hizmetleri yeniden başlatın Exchange Deposu izni.

Daha fazla bilgi

Exchange posta kutusu ve klasör erişim izinlerini Böl Active Directory ve Microsoft Exchange veritabanları arasında. Ancak, her iki tür İzinler Active Directory kullanıcı yönetim konsolunda ayarlanır, ancak farklı izinler iki ayrı konumda depolanır.

Genellikle, bir nesne için Güvenlik sayfasında bir izin ayarlanırsa, etkin değil. Directory izni. Exchange Gelişmiş posta kutusu hakları üzerinde ayarlarsanız sayfasında, bu bir Exchange veritabanı iznidir.

MsExchMailboxSecurityDescriptor Active Directory özniteliği, etkin posta kutusu hakları kümesini yedek kopyasıdır. Bunu Exchange tarafından çeşitli amaçlar için dahili olarak kullanılır. Buna ek olarak, msExchMailboxSecurityDescriptor özniteliği, geçerli etkin hakları eşleştirmek için güncelleştirilir Yöneticiler hak atamak için desteklenen arabirimler kullanırsa. Bununla birlikte, msExchMailboxSecurityDescriptor özniteliği yönetici tarafından doğrudan, değişiklikleri değiştirilir yok olacak Exchange deposuna yayılır ve değişikliklerin etkili etkisi. Gerçek posta kutusu haklarıyla eşitleneceği garanti edilmez. Siz msExchMailboxSecurityDescriptor özniteliğini posta kutusu haklarını okumak ve yazmak için kullanmamalısınız.
Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
310866  (http://support.microsoft.com/kb/310866/ ) Nasıl yapılır: Exchange Server 2003 ve Exchange 2000 Server posta kutusu hakları bilgi deposunda bulunan bir posta kutusu ayarlayın

Tam posta kutusu erişimi izni olan bir Exchange veritabanı deposu izni. Farklı Gönder izni etkin değil Directory izni. Önce olan Exchange Store.exe dosyası değişiklikleri Bu makalede açıklanan, Exchange Sistem ayarı bakın. Gönderenin zaten Tam posta kutusu erişimi, Farklı Gönder izni izni.

Farklı Gönder izninin eklenmesi Tam posta kutusu erişimi izni Exchange server yöneticileri için etkinleştirilmiş kendileri için bir sunucudaki herhangi bir posta kutusu etkin Farklı Gönder izinleri vermek, yönettikleri. Tarafından Farklı Gönder izninin Tam posta kutusu erişimi izni'den ayıran, Active Directory yöneticileri şimdi engelleme bu işlem nedeniyle Farklı Gönder bir Active Directory izni ve Exchange Deposu iznidir izni. Bu nedenle, işlem mutlaka denetiminde değildir Exchange yöneticileri.

Posta kutusu sahipleri

Posta kutusu sahibi, Active Directory kullanıcı hesabı olarak tanımlanır genel benzersiz tanımlayıcı (GUID), msExchMailboxGUID özniteliği taşır Belirli bir posta kutusu için. Tüm ormanda yalnızca bir hesaba izin verilir GUID, belirli bir posta kutusu yerine getirir. İkinci bir sahip ayarlamaya çalışırsanız aynı GUID, Active Directory değişikliği hata vererek reddeder.

Ne zaman, posta kutusu-firma veya bağlantısı kesilmiş bir bağlandığınızda etkinleştir posta kutusunun Active Directory hesabı için posta kutusu GUID'si otomatik olarak ayarlanır ilgili hesapta. Bu nadiren yöneticilerin gerekli veya önerilen posta kutusu GUID'lerini doğrudan ayarlamaları.

İlişkili dış hesaplar

Ortak bir Exchange yapılandırması, Exchange yüklemektir bir Kaynak ormanı. Kaynak orman farklı bir ormandaki ormandır sistemde posta kutuları olacak, kullanıcı hesaplarından. Bu sunan bir msExchMailboxGUID özniteliği yalnızca aynı ormandaki nesnelerde ayarlanabildiğinden sorun Exchange server.

Posta kutusunu etkinleştirmek için bu sorunun çözümü olan bir Exchange sunucu ormanında bir hesabın. Daha sonra bu posta kutusu etkin bağlantı bir başka bir ormandaki veya Microsoft Windows NT 4 etki alanındaki hesap. Yapabilecekleriniz İlişkili Dış Hesap izni vererek bunu. Yalnızca tek bir hesabın Associated External Account izni verilebilir. Hesap yani başka bir ormandan seçili olmalıdır.

İlişkilendirilmiş ayarlandığında Dış Hesap izni, dış için SID değerini yazarsınız posta kutusu sahibinin msExchMasterAccountSID özniteliği hesap. Bu nedenle, bu değil bir hiç izin, ancak msExchMasterAccountSID özniteliğinin değerini denetlemek için bir yoldur. MsExchMasterAccountSID özniteliği ayarlandıktan sonra external account, SID'ye sahip onu, gerçek posta kutusu sahibi yokmuş gibi Exchange erişimi verilir Hesap.

Not Bu yalnızca Exchange, değil tüm erişim geçerlidir Active Directory erişimi. Ayrıca, posta kutusu sahibi işaretlemelisiniz. Associated External Account ayarladıktan sonra oturumlar için hesabı devre dışı bırakılmış olarak böylece tüm izinler gibi çalışma izni bekleniyor.
Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
300456  (http://support.microsoft.com/kb/300456/ ) İstemci izinleri ve temsilcileri Exchange 2000'de atandıktan sonra geçerli olmaz

Temsilci atama senaryoları

Kısmi erişim izni olan kullanıcı temsilcidir başka bir posta kutusu ve bu posta kutusu adına e-posta iletileri gönderme hakkı sahibi. Temsilci erişim izni vermek için ortak bir temsilci senaryosu ise bir Yönetici Yardımcısı yöneticinin Takvim vermektir. Temsilci seçebilirsiniz. genellikle okuma ve takvimi güncelleştirebilirsiniz. Temsilci ayrıca yanıtlayabilirsiniz herhangi bir e-posta iletilerini üst yönetici adına.

Adına gönder izinlerine temsilci seçmek için aşağıdaki iki arabirim kullanın:
  • Posta kutusu sahibi nesnesinde, Exchange genel izni adına Gönder iletişim kutusu verin.
  • Microsoft Office Outlook'u kullanın. Temsilciler iletişim kutusu.
Bu yöntemler, posta kutusunun publicDelegates özniteliğini ayarlar. Bu öznitelikte listelenen tüm kullanıcılar için posta kutusu sahibinin izni adına gönder vardır. Sahibinin adı vardır, bir e-posta iletisi gönderdiğinizde bu Temsilciler Gelen kutusuna, temsilci ve değil veya posta kutusu sahibi olarak e-posta iletisi gönderilir. E-posta mesaj Gelen Aşağıdaki değer kutusu görüntüler:
Temsilcinin adı> adınaPosta kutusu sahibi>
İçinde Bazı durumlarda, Outlook'taki publicDelegates özniteliğini kuramıyor olabilir. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
329622  (http://support.microsoft.com/kb/329622/ ) Sonra Outlook'ta Erişim Temsilcisi "adına gönder" izni atanmış bir kullanıcı için değil

Posta kutunuza temsilci erişim hakkı verirseniz, posta kutusu klasörleriniz birine erişim vermek değil bile temsilci izni adına gönder kullanabilirsiniz. Olan bir temsilcinin temel izni adına gönder iznidir. Posta kutusu klasörlerinize erişim izinleri ayrıdır ve temsilci izinlerine ek olarak verilmelidir. Genellikle, temsilcilerin Outlook olduğu, bunları izin verdiğiniz klasörlere erişmek için kullanır. Bunu yapmak için tıklatın Açık üzerinde Dosya Outlook ve sonra menüde Diğer kullanıcının klasörü.

Alternatif olarak, Temsilciler, ek posta kutusu olarak listeleyerek posta açabilir Gelişmiş Outlook profillerinin sekmesi. Bu yöntem neden olur temsilcinin Outlook klasör ağacında görünmesini posta. Ayrıca, Bu yöntem posta kutunuzdaki tüm klasörlere erişmek için olanak sağlayan bir temsilci izinleri verildi.

Temsilci için isteyebilirsiniz. Bazen izni adına gönder ve diğer zamanlarda sahip Farklı Gönder izni. Bir temsilci bu iki izinle yapılandırmak için izleyin Bu adımlar:
  • Temsilcinin Tam posta kutusu erişimi izni verin. Bu Outlook ile yapılamaz. Bunun yerine, Active Directory Yöneticisi olmalıdır. Bunun için posta kutusu sahibi hesabı. Üzerinde sahip izinleri verseniz bile Her klasörün tam olarak aynı izni olmayan posta kutunuzda, Posta kutusu erişimi izni.
  • Temsilciye Farklı Gönder izni vermeyin. Varsa, Temsilciye Farklı Gönder iznini, tarafından gönderilen tüm e-posta iletileri atamak Temsilciye Farklı Gönder izni ile yapılır. Temsilci yok artık izni adına gönder kullanamayacaksınız.
Bu senaryoda, izni adına gönder kullanmak isteyen temsilcilerin kendi posta kutularına oturum açmalıdır. Temsilciler yanıtlarken veya iletirken birinde bulunan bir e-posta iletisi, klasörler, e-posta iletisi otomatik olarak sizin adınıza gönderilir. Yoksa Temsilciler sizin adınıza yeni bir e-posta iletisi oluşturmak için adınızı girmeniz gerekir içinde Gelen gönderilecek e-posta iletisi kutusunu sizin adına.

Klasörlerinizi temsilcileri mı açmış olsun veya tüm posta kutunuzu ikinci bir posta kutusu olarak, tüm e-posta iletileri, bunlar kendi olarak uzunlukta izni adına gönder gönderme sizden kullanır geçerli Outlook profili için birincil posta kutusu posta kutusudur.

Ne zaman Temsilciler istediğiniz e-posta iletisi olarak göndermek, oturum açtıklarına, yalnızca kutunuzu açan ayrı bir Outlook profili kullanarak posta kutusu. E-posta Bunlar bu profile oturum açmış durumdayken Temsilciler gönderdiğiniz iletilerin olacaktır. otomatik olarak sizden gönderilmesi.

Farklı Gönder izni olmadan Tam posta kutusu erişimi izni olan hesapları bulma

Bu bölümde açıklanan örnek komut dosyası bir arama Active Directory etki alanı kullanıcı hesapları için aynı anda burada tam posta kutusu Farklı Gönder izni olmadan posta erişim izni verildi.

Önemli İzinleri değiştirmeden önce bkz. "Temsilcileri olan posta kutusu sahipleri hakkında" bölümüne geçebilirsiniz.

Komut dosyasında aşağıdaki üç mod vardır:
  • Dışa aktarma Tam posta kutusu erişimi izni olan kullanıcıların listesini çıkarabilirsiniz. izni olan ancak Farklı Gönder izni. Bu listede daha sonra gözden Not Defteri'ni veya başka bir düzenleyici olmasını istemediğiniz hesapları kaldırmak için Farklı Gönder izni.
  • İçe aktarma Tam posta kutusu erişimi izni olan kullanıcıların listesini alabilirsiniz. kendisine Farklı Gönder izni de verilmesi gereken izni. Not aldığınız Bu komut dosyası, hem tam posta kutusu erişimi iznini kullanamaz ve Farklı Gönder izni. Her hesabın zaten Tam posta kutusu erişimi olmalıdır Farklı Gönder izni verilebilmesi için izni.
  • SetAll Etki alanındaki tüm kullanıcılara Farklı Gönder izni vermek kim zaten belirli bir posta kutusu için tam posta kutusu erişimi izni vardır. A Günlük dosyası, dışa aktarma dosyası ile aynı biçimde oluşturulur. Bu Alma ve verme modlarını düzenlemeden çalıştırma eşdeğer verme dosyası.
Not Bu komut dosyasında geri alma işlevi yoktur.

Komut dosyası için gerekli izinler

İle oturum açarak komut dosyasını çalıştırmak bir aynı yönetim hesabını orman posta kutusu sahibi gelen hesaplardır. Komut dosyası olan bir hesapla çalışmayabilir. Ormanlar arası yönetimsel izinler. Komut dosyası da ne zaman işe yaramayabilir, BT orman farklı bir orman için etki alanına katılan bir iş istasyonundan hangi posta kutusu sahibi hesaplarıyla birleştirilir.

Bu verilen koşullar, birden çok yönetici hesapları ile komut dosyası çalıştırabilir bir RunAs.exe komutunu kullanarak tek oturum. Bu yordam olabilir Active Directory ve Exchange Server izinlerini ayırdıysanız, kullanışlı, ve tüm Exchange sunucularını veya tümünü yönetmek tek hesap yok Active Directory etki alanları. Komut dosyası çalıştırmak için bir komut istemi açabilirsiniz. Her yönetici hesabı. A?a??daki örne?i ele alal?m:
RunAs.exe/user: domain\account cmd.EXE
Not Komut dosyasının birden çok kopyasını aynı anda çalıştırmamalısınız karşı aynı etki alanı.

Verme dosyasında olarak alanlardır izler. Alanlar, verildikleri, sırayla açıklanmıştır verme dosyası.
  • Posta kutusu sahibi hesabının görünen adı

    Olabilir birden fazla satır çıktı dosya aynı posta kutusu sahibini listeler. Bu davranış, birden çok hesap aynı posta kutusuna tam posta kutusu erişimi izni vardır.
  • Tam posta kutusu erişimi izni olan ancak Farklı Gönder izni olmayan hesabın etki alanı ve oturum açma adı

    Boyunca aynı hesap birden çok defa görünebilir Hesap birden çok posta kutularına erişebilir, verme dosyası. Bu Böyle bir uygulama hizmet hesabına ya da bir kişi olası kim birden çok kaynak posta kutusu yöneten.
  • Tam posta kutusu erişimi izni olan ancak Farklı Gönder izni olmayan hesabın görünen adı

    Bu alanına ek olarak sağlanır Oturum açma adıalan, hesabı belirlemenizi kolaylaştırmak için.
  • Posta kutusu sahibinin temsilci durumu

    Posta kutusu sahibinin temsilcileri alan değeri iseHas Delegates. Posta kutusu sahibinin temsilcileri yoksa, alan değeri olarak kullanılır No Temsilciler.
  • Posta kutusu sahibi hesabının durumunu etkin veya devre dışı

    Bu alan kaynak tanımlamak istediğinizde kullanışlıdır hesapları veya ormanlar arası posta hesapları. Tipik olarak, bu hesapları olan devre dışı.
  • Posta kutusu sahibi hesabının Tam ayırt edici adı

    Bu alan tanımlamak istediğinizde kullanışlıdır etki alanı ve posta kutusu sahibi hesabının Kap.
  • Posta kutusu sahibinin posta kutusu veritabanının tam ayırt edici adı

    Bu alan, veritabanı, depolama grubu içerir Sunucu ve posta kutusu yönetim grubu.
Aşağıdaki örnekte, kullanıcının oturum açma adı Tam posta kutusu erişimi izni olan ancak değil Farklı Gönder "NoSendAs" vardır. "Posta kutusu sahibi" posta kutusu için izni:
"" "Posta kutusu sahibi" "" "" "Domain\NoSendAs" "" "" "No göndermek kullanıcı olarak" "" "" "olan temsilciler" "" "" "[ek alanlar atlanmış] etkin" ""

Komut dosyası için yönetici iş istasyonu yapılandırması

Bu komut dosyası, iletişim kurmak için Exchange Yönetim arabirimlerini kullanır. Exchange sunucuları ile. Bu nedenle, bu komut dosyasını bir değişiminden çalıştırmanız gerekir Server veya Exchange Sistem Yöneticisi yüklü olan bir iş istasyonu.

Verme dosyasını düzenleme

Verme dosyası Unicode düz metin olarak bu nedenle, biçimlendirilmiş birden çok dil karakter kümelerinden yerleştirilebilecek. Bazı metin düzenleyicileri doğru görüntülemek veya bu dosyayı düzenlemek ya da dosyayı ANSI kaydedebilir ya da ASCII metin. Itanium tabanlı sistemler için Windows Server 2003, Windows xp ve Microsoft ürünlerindeki Not Defteri Windows 2000 Unicode metin düzgün bir şekilde işler $$$$ Ayrıca, Microsoft Office Excel Unicode metin doğru işleyebilir $$$$

Üçlü ile bir sekmeyle sınırlandırılmış formatta çıktı dosyasıdır her alanın değerleri tırnak işaretleri. Üç tırnak işareti alma ve verme Excel işlemlerinin daha belirli hale getirmek için kullanılır. İçinde Excel, üç tırnak işareti tek tırnak işaretine ve olacaktır Dosya Unicode metin olarak yeniden kaydedildiğinde tırnak işaretine dönmek. Doğru açın ve verme dosyasında kaydetmek için aşağıdaki yönergelere bakın. Excel.

Bir verme dosyasında Excel kullanmadan da süzebilirsiniz Find.exe veya Findstr.exe yardımcı programlarıyla. Bu yardımcı olur Windows ile birlikte gelen. Dosyadaki sözcük aramanıza olanak sağlar ve yalnızca bu sözcükleri içeren satırlardan veya yalnızca içermeyen satırları çıktı Bu sözcükleri. Temsilcileri olan tüm posta kutusu sahiplerinin listesini oluşturmak isterseniz, örneğin, aşağıdaki komutlardan birini bir dosya oluşturmak için kullanın yalnızca dize "Has Delegates" satırlarını içeren:
Find.exe "Has Delegates" OriginalFile.txt > HasDelegates.txt

Findstr.exe/c: "olan Delegates" OriginalFile.txt > HasDelegates.txt
Başka bir örnek olarak, tüm filtre uyguladığınızı varsayalım. posta kutusu sahipleri temsilcileri. /v anahtarı, arama sözcükleriyle eşlenmeyen tüm satırların çıktısını verir. Siz bunlardan birine komutları tümünü bir dosya oluşturmak için kullanın "vardır Delegates"satırlarını:
Find.exe "No Delegates" OriginalFile.txt > NoDelegates.txt

Find.exe /v "olan Delegates" OriginalFile.txt > NoDelegates.txt

Findstr.exe/c: "No Delegates" OriginalFile.txt > NoDelegates.txt

Findstr.exe /v/c: "olan Delegates" OriginalFile.txt > NoDelegates.txt
Bir dosya oluşturmak için bu komutları kullanabilirsiniz bir uygulama hizmeti hesabının Tam sahip olduğu tüm hesapları listeler. Posta kutusu erişimi izni, ancak Farklı Gönder izni yok. /I anahtarı komutu duyarlı hale getirir:
Find.exe /ı "etkialanı\HizmetHesabı" OriginalFile.txt > ServiceAccount.txt

Findstr.exe /ı/c: "etkialanı\HizmetHesabı" OriginalFile.txt > ServiceAccount.txt
Not Filtre uygulanmış bir dosya oluşturmak için Find.exe yardımcı programını kullanırsanız, kaldırmanız gerekir dosyanın başında Find.exe yardımcı programını oluşturacak üstbilgi satırları.

Yapın dosya adları joker karakter kullanma (*. *) Findstr.exe yardımcı programlarıyla birlikte. Joker karakterler kullanırsanız, her satırda bir çıktı dosyası dosya adıyla geçer. Size gereken Find.exe kullanarak filtre uyguladıktan sonra çıktı dosyasını dikkatlice inceleyin veya Findstr.exe filtre yakalanan veya hesapları dışarıda doğrulamak için sizin amaçlanmıştır.

Aşağıdaki örnekte, kullanıcının oturum açma adı Tam posta kutusu erişimi izni, ancak değil Farklı Gönder "NoSendAs" vardır. "Posta kutusu sahibi" posta kutusu için izni.
"""Mailbox Owner""" """Domain\NoSendAs""" """No Send As User""" """Has Delegates""" """Enabled""" [additional fields omitted] 

Temsilcileri olan posta kutusu sahipleri hakkında

Tam posta kutusu erişimi izni olan temsilci (olarak da bilinen bir "süper") genelde Farklı Gönder izni verilmesi değil. Zaman Süper oturum doğrudan posta kutusu sahibinin posta kutunuza temsilci sahibi olarak gönderebilirsiniz. Temsilci Outlook'un temsilci özelliklerini (kullandığındaEk Posta kutuları açma veya Diğer kullanıcının klasörünü aç), iletiler adına sahibine gönderilen.

Yalnızca istiyorsanız bir süper Farklı Gönder izni verin. Temsilci her zaman posta kutusu sahibi olarak göndermek ve hiçbir zaman adına gönder posta kutusu sahibi. Verme dosyasında "olan metin aramak öneririz Temsilciler,"ve süper biri olan olup olmadığını belirleyin listelenen gerçekte posta kutusu sahibinin temsilcileri var.

Yalnızca Süper verme dosyasında listelenmiştir. Normal temsilcilerin sahip. Tam posta kutusu erişimi izni. Ayrıca, ne zaman, Farklı Gönder izni sıradan bir temsilciye temsilci her zaman posta kutusu sahibi olarak gönderir. Hatta normal temsilcinin Tam posta kutusu erişimi izni yok bu geçerlidir. İstemeden değil, bir temsilciye Farklı Gönder izni vermek izni daha sonra kolayca iptal edebilirsiniz.

Verme dosyasını Excel'de açmak için

  1. Verme dosyasını açmadan önce Excel'i başlatın.
  2. Dosyayı Excel'de metin dosyası türünde açın. Metin Alma Sihirbazı'nı başlatır.
  3. Metin Alma Sihirbazı'nda, değiştirmek veya aşağıdaki kabul ayarları:
    • Özgün veri türü: Ayrılmış
    • Veri alma başlangıç satırı: 1
    • Dosya kaynağı: Unicode (utf-8)
    • Sınırlayıcılar: Yalnızca sekme
    • Ardışık ayırıcıları tek olarak işle: işaretsiz
    • Metin niteleyicisi: "(çift tırnak işareti)

Dosyasını Excel'de düzenledikten sonra verme dosyasını kaydetme

  1. Verme dosyasında tıklatın Farklı Kaydet.
  2. Dosyayı, korumak için farklı bir ad kullanarak kaydedin bir özgün dosyanın düzenlenmemiş bir kopyasını.
  3. ' I tıklatın Dosya,'ı tıklatın Farklı Kaydet, çıktıyı kaydetmek için bir dosya adı girin ve ardından Unicode metin içinde Kayıt türü Liste.

Komut dosyası sözdizimi

Bu bir metin modu komut dosyasıdır ve bir komutu çalıştırmanız gerekir pencerede, soracak değil, Çalıştır iletişim kutusu. Bir komut açmak için ı istemi penceresinin Başlat,'ı tıklatın Çalıştır, türü CMD içinde Açık kutusunu tıklatın ve sonra TAMAM.

Hata günlüğü ve verme dosyaları kaydettiğiniz için Geçerli komut istemi dizin. Dosya oluşturma izniniz olmalıdır. Bu dizin. Komut satırı Yardımı almak için aşağıdaki komutu girin:
CSCRIPT AddSendAs.vbs
Bir etki alanı için Farklı Gönder izni olmadan Tam posta kutusu erişimi olan kullanıcıları vermek için aşağıdaki komutu girin:
CSCRIPT AddSendAs.vbs [domain controller name] –Export
Example:
CSCRIPT AddSendAs.vbs CORP-DC-1 –Export
Verme dosyası olarak oluşturulan "Send_As_Export_H_MM_SS.txt"

Düzenlenen bir verme dosyasını almak için aşağıdaki komutu girin:
CSCRIPT AddSendAs.vbs [domain controller name] –Import [filename]


Example:


CSCRIPT AddSendAs.vbs CORP-DC-1 –Import "Send_As_Export_H_MM_SS.txt"

Nasıl bir posta kutusu için tam posta kutusu erişimi izni olan tüm kullanıcılara etki alanındaki her posta kutusu için Farklı Gönder izni vermek için

Not Tam posta kutusu erişimi de olan temsilciler varsa Kuruluşunuzdaki izni, SetAll modunu kullanmamalısınız. Bunu yaparsanız Temsilciler Farklı Gönder izni bu durumda SetAll modunu kullanma izni. Bu davranış kullanmak üzere gönderdikleri tüm e-posta iletilerini neden olabilir Gönderilen izninin izni adına gönderilen yerine. Yapabilecekleriniz yanlışlıkla oldu Farklı Gönder iznini kaldırarak bu davranışı düzeltmek temsilciye verilen:
CSCRIPT AddSendAs.vbs [domain controller name] –SetAll


Example:


CSCRIPT AddSendAs.vbs CORP-DC-1 –SetAll
SetAll modunu kullanırsanız, verme dosyasını olacaktır Send_As_Export_H_MM_SS.txt olarak oluşturulur. Çünkü bu dosyayı kaydetmeniz gerekir, değiştirilen tüm hesapların bir kaydıdır. Çalıştırılacak olsaydı komut dosyası yeniden onu değil çıktı aynı hesap listesini çünkü hesapları zaten farklı Gönder izni verilmiş.

Komut dosyasını çalıştırırken karşılaştığınız hatalar Send_As_Errors_H_MM_SS.txt dosyasına kaydedilir. Hata dosyası adı eşleşir herhangi bir ilişkili verme dosyasının saat_dakika_saniye zaman damgası.

Komut dosyası değişiklikleri

Kuruluşunuzdaki izinlere sahip hesaplar olabilir çok sayıda nesne bulunan, ancak izinlerini değiştirmek istemediğiniz. Azaltmak için Boyut verme dosyasını değiştirerek bu hesaplara süzebilirsiniz Komut dosyası üst bulunan FMA_EXCLUSIVE_LIST değişkenini. Tarafından Varsayılan olarak, bu değişkeni de bastırılması gereken birkaç hesabı listeler komut dosyası çıktı. Aşağıdaki biçimi kullanarak başka hesaplar ekleyebilirsiniz.
& "<Domain\Name>" & OUTPUT_DELIMITER
Örneğin, aşağıdaki değişkenin değerini değiştirin.
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER
aşağıdaki gibi görünür.
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER & "Mydomain\Service1" & OUTPUT DELIMITER
Bu değişiklik listesi "Etkialanım\Hizmet1" hesabının bastırır. verme dosyası ile birlikte "nt AUTHORITY\SELF" ve "nt AUTHORITY\SYSTEM" EtkiAlanı\Ad değerinin büyük/küçük harfe duyarlıdır ve tam olarak görünmesi gerekir dikkat edin. gibi veya verme dosyasında olduğu gibi.

Başka bir düzen vardır "\Exchange varsayılan değeri atanan FMA_EXCLUSIVE_EXSVC düzenlenebilir değişken Hizmetler"& OUTPUT_DELIMITER. "Exchange Services," bir hesabın adıdır. Active Directory Bağlayıcısı üzerinden izinleri Exchange verilir Server 5.5 ve Exchange 2000 geçiş ve bulunma senaryolarında. Bu hesap birden çok etki alanında oluşturulan ve onu tekrar tekrar verme dosyasına görünebilir onu bastırılmaz.

FMA_EXCLUSIVE_EXSVC değişkeni yalnızca kabul bir hesap değeri olarak. Hesap adı büyük küçük harf duyarlı değildir. Hesap eğik çizgi (\) karakteri ile başlamalı ve içermelidir. hesabının ait olduğu etki alanı. Tüm hesap bastırılır etki alanı içinde bulunmaktadır.

Üçüncü taraf geçiş kullandıysanız Araçları veya dizin eşitleme yöntemleri, içinde farklı bir hesap bulunabilir Kullanıcı posta kutularına izinler atayan sahip birden çok etki alanı. Bu konuda senaryo, hesabın adını "\Exchange Services." alabilecek

İpuçları ve uyarılar

  • Tarafından oluşturulan günlük ve hata dosyalarını atmayın komut dosyası. Sorun giderme veya değişiklikleri ters değerli olabilir Daha sonra. Unutmayın, Farklı Gönder izni gibi bir Hesap, artık verme dosyasında kaydedilir.
  • Exchange sunucusu veya veritabanı çalışmadığında komut dosyası daha yavaş olacaktır. Böyle bir durumda, verme dosyasını veritabanına göre sıralayabilir ve Daha sonra farklı bir dosya durdurulan veritabanıyla ilişkili satırları Taşı alın.
  • Komut dosyası çıkışını hesaplar bastırır burada oturum açma adı "$ ile biten" veya nt AUTHORITY\SYSTEM'dır. Bu sistem hesapları olmalıdır. genellikle gönderme izni ve bunları verme dosyasından kaldırılması gerekir. boyutunu önemli ölçüde küçültür.
  • Önce onu verme dosyası Unicode biçiminde olmalıdır. alındı. Dosyayı istemeden ANSI metni olarak kaydettiyseniz, yapabilecekleriniz Bu sorunu yükleme dosyasını Not Defteri'nde ve Unicode olarak kaydetme metin.
  • Bir alma işlemi çalışmıyorsa, sınama hesaplarıyla ilgili sorunları giderme ve alma dosyasında tek bir satır. Bir sınama yapılandırmalısınız, hesap çalışan bir Exchange Server posta kutusu ve daha sonra başka bir sınama hesabına Tam posta kutusu erişimi izni verin. Sınama hesabına Farklı Gönder izni vermeyin.
  • Bu komut dosyası için geri alma modu yoktur. Çıkardığınız için Bu komut dosyasıyla verdiğiniz Farklı Gönder izinleri, oluşturmanız gerekir başka bir komut dosyası veya el ile kaldırın. Önlemek için geri alma modu sağlanmaz Bu komut, tüm kullanıcıların Farklı Gönder izinlerini kaldırmak için kullanılmasını bir Kuruluş.
  • Komut dosyası olan bir hesabı doğru işlemez bir kullanıcı nesnesi için tam posta kutusu erişimi ile birlikte tam denetim izni. Tam Denetim, Farklı Gönder iznini içerir, ancak komut verecektir Farklı Gönder izni değildi gibi hesap. Bu boyutunu artırabilir verme dosyası, ancak hiçbir zarar oluşur dosya içe aktarma ve gereğinden Bu tür hesaplara Farklı Gönder izinleri verme.
  • Ayırt edici active Directory kullanıcı hesapları adları ve sekmeler ekleyin veya eşlenmeyen çift tırnak işaretleri olamaz Bu komut dosyası kullanılarak işlenir. Komut dosyası bir adı doğru biçimde işleyebilir, aşağıdaki gibi eşlenen çift tırnak işaretleri içerir:
    "cn = First"Takmaad"Last, dc = domain, dc = com"
  • Excel her sürümü, farklı maksimum satır sınırını destekler. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    120596  (http://support.microsoft.com/kb/120596/ ) 65.536 Satırdan fazla olan metin dosyaları Excel 97, Excel 2000, Excel 2002 ve Excel 2003 alınamıyor
    Excel 2003 ve Excel 2007 için satır sınırlamaları şunlardır:
    • Excel 2003: 65.536 satır
    • Excel 2007: 1.048.576 satır
    Çıkış dosyanız bu sınırlardan daha büyükse, dosyayı Excel'e yüklemeden önce bölümlere dosya bölmeniz gerekir.
  • Send_As_Errors dosyası hesapları listeler burada okuma veya yazma izinleri hatası oluştu. Diğer hesapları, etki alanı doğru ilendii, bu hesapların bir şey ortak olabilir komut dosyasının çalışmasını engeller. Sık karşılaşılan sorunlar şunlardır izleyen:
    • Yönetim izinleri görüntülemek veya ayarlamak için yetersiz hesapların özelliklerini.
    • Exchange posta kutusu deposu çalışmıyor.
    • İş istasyonu aynı üyesi değildir. etki alanı.
    • Kullanılan yönetici hesabı değil aynı ormandan.
Bu komut dosyasını çalıştırmak için kopyalayıp başlangıç arasındaki tüm satırları SCRIPT ve end SCRIPT Not Defteri gibi bir düz metin düzenleyicisine. Komut dosyasını Kaydet AddSendAs.vbs. BAŞLANGIÇ KOMUT DOSYASI.
Option Explicit

Dim OUTPUT_DELIMITER
OUTPUT_DELIMITER = """""""" & vbTab & """"""""

'Define exclusive list, if FMA is given to any user in this list, it's ignored.  If you 
'want to modify this list, please be sure to follow the same format. Every alias has to 
'have a OUTPUT_DELIMITER before and after it
Dim FMA_EXCLUSIVE_LIST
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER
Dim FMA_EXCLUSIVE_EXSVC
FMA_EXCLUSIVE_EXSVC = "\Exchange Services" & OUTPUT_DELIMITER

'Permission Type: Allow or Deny
const ACCESS_ALLOWED_OBJECT_ACE_TYPE  = 5
const ADS_ACETYPE_ACCESS_ALLOWED = &h0
const ADS_ACETYPE_ACCESS_DENIED = &h1

'Flags: Specifies Inheritance
const ADS_ACEFLAG_INHERIT_ACE = &h2
const ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE = &h4
const ADS_ACEFLAG_INHERIT_ONLY_ACE = &h8
const ADS_ACEFLAG_INHERITED_ACE = &h10
const ADS_ACEFLAG_VALID_INHERIT_FLAGS = &h1f
const ADS_ACEFLAG_SUCCESSFUL_ACCESS = &h40
const ADS_ACEFLAG_FAILED_ACCESS = &h80

'Declare ADSI constants
Const ADS_OPTION_SECURITY_MASK = 3
Const ADS_OPTION_REFERRALS	= 1
Const ADS_SECURITY_INFO_DACL = 4
Const ADS_CHASE_REFERRALS_NEVER = &h00 
Const ADS_CHASE_REFERRALS_SUBORDINATE = &h20 
Const ADS_CHASE_REFERRALS_EXTERNAL = &h40

'output file name
Const EXPORT_FILE = "Send_As_Export"
Const ERROR_FILE = "Send_As_Errors"

' script mode
const MODE_INVALID = -1 
const MODE_SETALL = 0
const MODE_EXPORT = 1
const MODE_IMPORT = 2
const SETALL = "-SETALL"
const EXPORT = "-EXPORT"
const IMPORT = "-IMPORT"

' argument index
Const ARG_INDEX_MODE = 1
Const ARG_INDEX_DC = 0
Const ARG_INDEX_FILENAME = 2

' column index in import/export file
Const COLUMN_INDEX_USERDISPLAYNAME = 0
Const COLUMN_INDEX_FMAALIAS = 1
Const COLUMN_INDEX_FMADISPLAYNAME = 2
Const COLUMN_INDEX_IFPUBLICDELEGATE = 3
Const COLUMN_INDEX_MAILBOXSTATUS = 4
Const COLUMN_INDEX_USERADSPATH = 5
Const COLUMN_INDEX_HOMEMDB = 6

Const EMPTYSTRING = ""
Const STRNO = "No Delegates"
Const STRYES = "Has Delegates" 
Const MIN_ARG = 2
Const INIT_ARRAY_SIZE = 100

' Microsoft Exchange 
Const EX_MB_SEND_AS_ACCESSMASK  = &H00100
Const EX_FULLMailbox_AccessMask = 1
Const MESO = "Microsoft Exchange System Objects"
Const EX_MB_SEND_AS_GUID = "{AB721A54-1E2F-11D0-9819-00AA0040529B}"

Const ForReading	= 1
Const ForWriting	= 2
Const ForAppending	= 8
Const TristateTrue	= -1
Const ADS_SCOPE_SUBTREE = 2

Dim objUser
Dim objSDMailBox
Dim objSDNTsecurity
Dim objDACLNTSD
Dim objNewACE

Dim sTrusteeAlias()
Dim sFMADeniedList
Dim sFMAExplicitAllow
Dim fACESendasFound
Dim dArraySize
Dim TotalACE
Dim i
Dim rootDSE
Dim conn
Dim objCommand
Dim objCmdDisplayName
Dim rsUsers
Dim FoundObject
Dim objFSO
Dim objfileImport
Dim objfileExport
Dim objfileError
Dim sImportFilePath
Dim cScriptMode
Dim dArgCount
Dim dArgExpected
Dim sDCServer
Dim sMailboxStatus
Dim sIfPublicDelegate
Dim sFMAUserDisplayName
Dim sExportFileName
Dim sErrorsFileName
Dim msPublicDelegates
Dim fError
Dim fOneError
Dim fFMAAllowed

On Error Resume Next
dArraySize = INIT_ARRAY_SIZE
ReDim Preserve sTrusteeAlias(dArraySize)

dArgCount = Wscript.Arguments.Count 
If ( dArgCount < MIN_ARG ) Then
	DisplaySyntax
End If

err.Clear
fError = False
fOneError = False
cScriptMode = MODE_INVALID
Select Case UCase(WScript.Arguments(ARG_INDEX_MODE))
	Case SETALL 
		cScriptMode = MODE_SETALL
		dArgExpected = ARG_INDEX_MODE + 1
	Case EXPORT 
		cScriptMode = MODE_EXPORT
		dArgExpected = ARG_INDEX_MODE + 1
	Case IMPORT 
		cScriptMode = MODE_IMPORT
		dArgExpected = ARG_INDEX_FILENAME + 1
	Case Else 
		cScriptMode = MODE_INVALID
End Select
If (cScriptMode = MODE_INVALID Or dArgCount <> dArgExpected) Then
	DisplaySyntax
End If

sDCServer = WScript.Arguments(ARG_INDEX_DC)

CreateOutputFiles

If ( cScriptMode = MODE_SETALL Or cScriptMode = MODE_EXPORT ) Then
	Dim sDomainContainer
	If (cScriptMode = MODE_SETALL) Then
		Dim strInput 
		WScript.StdOut.WriteLine("WARNING: If you continue, each account in the domain that has")
		WScript.StdOut.WriteLine("Full Mailbox Access permission for a given mailbox will also be")
		WScript.StdOut.WriteLine("granted permission to Send As the mailbox owner.")
		WScript.StdOut.WriteLine()
		WScript.StdOut.WriteLine("To preview the list of mailboxes before granting Send As,")
		WScript.StdOut.WriteLine("cancel this operation and use the -Export mode of this script.")
		WScript.StdOut.WriteLine()
		WScript.StdOut.Write("Press Y to continue or any other key to cancel: ")
		strInput = WScript.StdIn.ReadLine()
		If (UCase(strInput) <> UCase("Y")) Then
			WScript.Quit
		End If	
	End If
	
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("""!"" indicates an error processing an object.")
	WScript.StdOut.WriteLine("     Check " & sErrorsFilename)
	WScript.StdOut.WriteLine("Starting...")
	WScript.StdOut.WriteLine()

	err.Clear	
	Set rootDSE = GetObject("LDAP://" & sDCServer & "/RootDSE")
	sDomainContainer = rootDSE.Get("defaultNamingContext")
	WScript.StdOut.WriteLine("Finding domain controller [ " & sDCServer & " ] for domain [ " & sDomainContainer & " ]")
	
	If (err.number <> 0) Then
		WScript.StdOut.WriteLine("Failed to find the domain or domain controller, error:" & err.Description)
		objfileError.WriteLine("Failed to find the domain or domain controller, error:" & err.Description)
		WScript.Quit
	End If
			
	err.Clear	
	Set conn = CreateObject("ADODB.Connection")
	Set objCommand = CreateObject("ADODB.Command")
	conn.Provider = "ADSDSOObject"
	conn.Open "ADs Provider"
	If (err.number <> 0) Then
		WScript.StdOut.WriteLine("Failed to bind to Active Directory server, error:" & err.Description)
		objfileError.WriteLine("Failed to bind to Active Directory server, error:" & err.Description)
		WScript.Quit
	End If

	Set objCommand.ActiveConnection = conn
	WScript.StdOut.WriteLine("Searching for mailbox owner user accounts in " & sDomainContainer)
	
	objCommand.CommandText  = "<LDAP://" & sDCServer & "/" & sDomainContainer & ">;(&(&(& (mailnickname=*) (| (&(objectCategory=person)(objectClass=user)(msExchHomeServerName=*)) ))));adspath;subtree"
	objCommand.Properties("searchscope") = ADS_SCOPE_SUBTREE
	objCommand.Properties("Page Size") = 100
	objCommand.Properties("Timeout") = 30 
	objCommand.Properties("Chase referrals") = (ADS_CHASE_REFERRALS_SUBORDINATE Or ADS_CHASE_REFERRALS_EXTERNAL)

	err.Clear	
	Set rsUsers = objCommand.Execute
	If (err.number <> 0) Then
		WScript.StdOut.WriteLine("Search for mailbox owners failed, error:" & err.Description)
		objfileError.WriteLine("Search for mailbox owners failed, error:" & err.Description)
		WScript.Quit
	End If

	If (rsUsers.RecordCount = 0) Then
		WScript.StdOut.WriteLine("No mailbox owner user accounts could be seen in " & sDomainContainer & ".")
		objfileError.WriteLine("No mailbox owner user accounts found in " & sDomainContainer & ".")
		fError = True		
	End If

	While Not rsUsers.EOF
		If (fOneError = True) Then
			WScript.StdOut.Write("!")
		Else
			WScript.StdOut.Write(".")
		End If
		fOneError = False
		
		'Skip any mailbox object in Microsoft Exchange System Objects container
		If (0 = Instr(rsUsers.Fields(0).Value, MESO)) Then
			err.Clear 
			Set objUser = GetObject(rsUsers.Fields(0).Value)
			If (err.number <> 0) Then
				objfileError.WriteLine("Failed to get user object: " & rsUsers.Fields(0).Value)
				objfileError.WriteLine("Error: " & err.Description)
				fError = True
				fOneError = True
				err.Clear
			End If
			Set objSDMailBox = objUser.MailboxRights
			If (err.number <> 0) Then
				objfileError.WriteLine("Failed to get mailbox rights: " & rsUsers.Fields(0).Value)
				objfileError.WriteLine("Error: " & err.Description)
				fError = True
				fOneError = True
				err.Clear
			End If
			Set objSDNTsecurity = objUser.ntSecurityDescriptor
			If (err.number <> 0) Then
				objfileError.WriteLine("Failed to get NTSD: " & rsUsers.Fields(0).Value)
				objfileError.WriteLine("Error: " & err.Description)
				fError = True
				fOneError = True
				err.Clear
			End If
			
			Set objDACLNTSD = Nothing
			If (objUser.AccountDisabled) Then
				sMailboxStatus = "Disabled"
			Else
				sMailboxStatus = "Enabled"
			End If

			'Query this user's publicDelegates list
			err.Clear 
			msPublicDelegates = objUser.Get("publicDelegates")
			If (err.number <> 0) Then
				'This user doesn't have publicDelegates list set
				sIfPublicDelegate = STRNO
				err.Clear
			Else
				sIfPublicDelegate = STRYES
			End If
			
			err.Clear 			
			FindAllFMAUsers objSDMailBox
			
			If (TotalACE > dArraySize) Then
			'Needs to allocate bigger size array
				dArraySize = TotalACE + 1
				ReDim Preserve sTrusteeAlias(dArraySize)
				FindAllFMAUsers objSDMailBox
			End If
			If (err.number <> 0) Then
				objfileError.WriteLine("Failed to query mailbox rights of user: " & rsUsers.Fields(0).Value)
				objfileError.WriteLine("Error: " & err.Description)
				err.Clear
				fError = True
				fOneError = True
			End If
			
			If TotalACE > 0 Then
				Set objDACLNTSD = objSDNTsecurity.DiscretionaryAcl

				For i = 0 to TotalACE - 1 Step 1
					
					'Check if we already have Send As ACE in NT security descriptor
					'If it exists, either allow or deny, we don't need to add send as to it 
					CheckSendAsACE objDACLNTSD, sTrusteeAlias(i)
					
					'Note: deny entries take precedence over allow entries. 
					'If there is FMA deny ACE, skip it even if we find FMA allow ACE 
					IfFMAAllowed(sTrusteeAlias(i) & OUTPUT_DELIMITER)
					If ((fFMAAllowed = True) And (fACESendasFound = 0)) Then
						If cScriptMode = MODE_SETALL Then
							Set objNewACE = CreateObject ("AccessControlEntry")
							objNewACE.AceFlags = 0 
							objNewACE.AceType = ACCESS_ALLOWED_OBJECT_ACE_TYPE
							objNewACE.AccessMask = EX_MB_SEND_AS_ACCESSMASK 
							objNewACE.Flags = 1
							objNewACE.ObjectType = EX_MB_SEND_AS_GUID
							objNewACE.Trustee = sTrusteeAlias(i)

							objDACLNTSD.AddAce objNewAce
						End If
			
						'Query trustee(FMA user) to get its displayName
						Dim rsTrustee
						Dim objTrustee
						Dim dPosition
						Dim sAlias
					
						dPosition = inStr(1, sTrusteeAlias(i), "\")
						sAlias = mid(sTrusteeAlias(i), dPosition + 1)
				
						Set objCmdDisplayName = CreateObject("ADODB.Command")			
						Set objCmdDisplayName.ActiveConnection = conn
						objCmdDisplayName.CommandText  = "<LDAP://" & sDomainContainer & ">;(&(&(& (mailnickname=" & sAlias & ") (| (&(objectCategory=person)(objectClass=user)(msExchHomeServerName=*)) ))));adspath;subtree"
						objCmdDisplayName.Properties("searchscope") = ADS_SCOPE_SUBTREE
						objCmdDisplayName.Properties("Page Size") = 100
						objCmdDisplayName.Properties("Timeout") = 30 
						objCmdDisplayName.Properties("Chase referrals") = (ADS_CHASE_REFERRALS_SUBORDINATE Or ADS_CHASE_REFERRALS_EXTERNAL)
						
						Set rsTrustee = objCmdDisplayName.Execute				
						Set objTrustee = GetObject(rsTrustee.Fields(0).Value)
						
						If (err.number <> 0) Then
							'Failed to query FMA user's display name, use its alias
							sFMAUserDisplayName = sAlias							
						Else
							sFMAUserDisplayName = objTrustee.displayName							
						End If
	
						'output to export file
						err.Clear
						objfileExport.WriteLine ("""""""" & objUser.displayName & OUTPUT_DELIMITER & sTrusteeAlias(i) & OUTPUT_DELIMITER & sFMAUserDisplayName & OUTPUT_DELIMITER & sIfPublicDelegate & OUTPUT_DELIMITER & sMailboxStatus & OUTPUT_DELIMITER & rsUsers.Fields(0).Value & OUTPUT_DELIMITER & objUser.homeMDB & """""""")
						If (err.number <> 0) Then
							objfileError.WriteLine("User " & rsUsers.Fields(0).Value & " could not be added to the export file. You should set permissions manually for this user.")
							objfileError.WriteLine("Error: " & err.Description)
							err.Clear
							fError = True
							fOneError = True
						End If
						Set objCmdDisplayName = Nothing
						Set rsTrustee = Nothing
						Set objTrustee = Nothing
					End If
				Next
					
				If cScriptMode = MODE_SETALL Then
					err.Clear
					objSDNTsecurity.DiscretionaryAcl = objDACLNTSD
					objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )
					objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL
					objUser.SetInfo
					If (err.number <> 0) Then
						objfileError.WriteLine("Failed to update ADSI for user: " & rsUsers.Fields(0).Value)
						objfileError.WriteLine("Error: " & err.Description)
						err.Clear
						fError = True
						fOneError = True
					End If
				End If

				TotalACE = 0
				Set objSDMailbox = Nothing
				Set objSDNTsecurity = Nothing
				Set objUser = Nothing
				Set objDACLNTSD = Nothing
			End If
		
		End If	
		rsUsers.MoveNext
	Wend
End If

If (cScriptMode = MODE_IMPORT) Then
	Dim sOneRow
	Dim sArraySplit
	Dim objUserItem
	Dim UserPath
	Dim objUserSD
	Dim objUserDACL
	Dim fNeedToAddSendAs
	
	sImportFilePath = WScript.Arguments(ARG_INDEX_FILENAME)

	WScript.StdOut.WriteLine("If you continue, each account listed in " & sImportFilePath)
	WScript.StdOut.WriteLine("that has Full Mailbox Access permission for a given mailbox")
	WScript.StdOut.WriteLine("will also be granted permission to Send As the mailbox owner.")
	WScript.StdOut.WriteLine()
	WScript.StdOut.Write("Press Y to continue or any other key to cancel: ")
	strInput = WScript.StdIn.ReadLine()
	If (UCase(strInput) <> UCase("Y")) Then
		WScript.Quit
	End If	
	WScript.StdOut.WriteLine("Starting...")
	WScript.StdOut.WriteLine()

	UserPath = EMPTYSTRING	
	err.Clear	
	Set objFSO = CreateObject("Scripting.FileSystemObject")
	Set objfileImport = objFSO.OpenTextFile(sImportFilePath, ForReading, False, TristateTrue)
	If (err.number <> 0) Then
		WScript.StdOut.WriteLine("Failed to open import file " & sImportFilePath & ", error:" & err.Description)
		objfileError.WriteLine("Failed to open import file " & sImportFilePath & ", error:" & err.Description)
		WScript.Quit
	End If	

	fNeedToAddSendAs = False
	Do While objfileImport.AtEndOfStream <> True
		If (fOneError = True) Then
			WScript.StdOut.Write("!")
		Else
			WScript.StdOut.Write(".")
		End If
		fOneError = False

		err.Clear
		sOneRow = objfileImport.ReadLine
		sArraySplit = Split(sOneRow , OUTPUT_DELIMITER)
		If (err.number <> 0) Then
			objfileError.WriteLine("Failed to parse one row: " & sOneRow )
			objfileError.WriteLine("Error: " & err.Description)
			err.Clear
			fError = True
			fOneError = True
		End If
		
		If (UserPath <> sArraySplit(COLUMN_INDEX_USERADSPATH)) Then
			'A new user
			If (fNeedToAddSendAs = True ) Then
				'update existing user
				err.Clear 
				objSDNTsecurity.DiscretionaryAcl = objDACLNTSD
				objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )
				objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL
				objUser.SetInfo
				If (err.number <> 0) Then
					objfileError.WriteLine("Failed to update permissions for user: " & UserPath)
					objfileError.WriteLine("Error: " & err.Description)
					fError = True
					fOneError = True
				End If
			End If
						
			fNeedToAddSendAs = False
			Set objUser = Nothing
			Set objSDNTsecurity = Nothing
			Set objDACLNTSD = Nothing

			UserPath = sArraySplit(COLUMN_INDEX_USERADSPATH)
			err.Clear 
			Set objUser = GetObject(UserPath)
			Set objSDNTsecurity = objUser.ntSecurityDescriptor  
			Set objDACLNTSD = objSDNTsecurity.DiscretionaryACL			
			If (err.number <> 0) Then
				objfileError.WriteLine("Failed to get user object: " & UserPath)
				objfileError.WriteLine("Error: " & err.Description)
				err.Clear
				fError = True
				fOneError = True
			End If
		End If
	
		'Add newACE   Do we need this check?
		CheckSendAsACE objDACLNTSD, sArraySplit(COLUMN_INDEX_FMAALIAS)
		If (fACESendasFound = 0) Then
			Set objNewACE = CreateObject ("AccessControlEntry")
			objNewACE.AceFlags = 0 
			objNewACE.AceType = ACCESS_ALLOWED_OBJECT_ACE_TYPE
			objNewACE.AccessMask = EX_MB_SEND_AS_ACCESSMASK 
			objNewACE.Flags = 1
			objNewACE.ObjectType = EX_MB_SEND_AS_GUID
			objNewACE.Trustee = sArraySplit(COLUMN_INDEX_FMAALIAS)

			objDACLNTSD.AddAce objNewACE
			fNeedToAddSendAs = True			
		End If
	Loop
	
	If (fNeedToAddSendAs = True ) Then
		'update the last user
		err.Clear 
		objSDNTsecurity.DiscretionaryAcl = objDACLNTSD
		objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )
		objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL
		objUser.SetInfo
		If (err.number <> 0) Then
			objfileError.WriteLine("Failed to update permissions for user: " & UserPath)
			objfileError.WriteLine("Error: " & err.Description)
			fError = True
		End If
	End If

End If 

objFSO.Close
objfileImport.Close
objfileExport.Close
objfileError.Close

Set objFSO = Nothing
Set objfileImport = Nothing
Set objfileExport = Nothing
Set objfileError = Nothing
Set objCommand = Nothing
Set conn = Nothing

WScript.StdOut.WriteLine()
If (fError = True) Then
	WScript.StdOut.WriteLine("Finished with one or more errors. See " & sErrorsFilename)
Else
	WScript.StdOut.WriteLine("Finished successfully. No errors were encountered.")
End If

Function FindAllFMAUsers (objSD)
Dim objACL
Dim objACE
Dim intACECount
Dim strIndent
Dim dAccessMaskBit
Dim dPosition
Dim sUserAlreadyFound

	On Error Resume Next
	err.Clear
	TotalACE = 0
	sFMADeniedList = EMPTYSTRING
	sFMAExplicitAllow = EMPTYSTRING
	sUserAlreadyFound = OUTPUT_DELIMITER
	intACECount = 0
	Set objACL = objSD.DiscretionaryAcl
	intACECount = objACL.AceCount

	If intACECount Then
		' Open discretionary ACL (DACL) data.
		For Each objACE In objACL		
			
		dPosition = inStr(1, objACE.Trustee, "$")
		If ((0 = Instr(UCase(objACE.Trustee & OUTPUT_DELIMITER), UCase(FMA_EXCLUSIVE_EXSVC))) And (0 = Instr(sUserAlreadyFound, OUTPUT_DELIMITER & objACE.Trustee & OUTPUT_DELIMITER)) And (0 = Instr(FMA_EXCLUSIVE_LIST, OUTPUT_DELIMITER & objACE.Trustee & OUTPUT_DELIMITER)) And (dPosition <> Len(objACE.Trustee)) And ((objACE.AccessMask And EX_FULLMailbox_AccessMask) <>0) And ((objACE.AceType = ADS_ACETYPE_ACCESS_ALLOWED) Or (objACE.AceType = ACCESS_ALLOWED_OBJECT_ACE_TYPE) )) Then
			If (TotalACE < dArraySize) Then
				sTrusteeAlias(TotalACE) = objACE.Trustee
				sUserAlreadyFound = sUserAlreadyFound & objACE.Trustee & OUTPUT_DELIMITER
			End If
			TotalACE = TotalACE + 1	
			If ((objACE.AceFlags And ADS_ACEFLAG_INHERITED_ACE) = 0) Then
				'Keep a list who explictly set FMA at mailbox level
				sFMAExplicitAllow = sFMAExplicitAllow & objACE.Trustee & OUTPUT_DELIMITER			
			End If
		ElseIf (( (objACE.AccessMask And EX_FULLMailbox_AccessMask) <>0 ) And (objACE.AceType = ADS_ACETYPE_ACCESS_DENIED)) Then
			'Keep a list who denied FMA, use OUTPUT_DELIMITER as demiliter, 
			'include both inherited and explicit set at mailbox level
			sFMADeniedList = sFMADeniedList & objACE.Trustee & OUTPUT_DELIMITER			
		End If
		Next
	End If

	Set objACL = Nothing
End Function

Function CheckSendAsACE (objDiscretionaryACL, sTAlias)
Dim objACE
Dim intACECount

	err.Clear 
	fACESendasFound = 0
	intACECount = objDiscretionaryACL.AceCount

	If intACECount Then
		For Each objACE In objDiscretionaryACL	
			err.Clear 
			If ( (objACE.Trustee = sTAlias) And (objACE.ObjectType = EX_MB_SEND_AS_GUID) ) Then
				fACESendasFound = 1
			End If
			If (err.number <> 0) Then
				objfileError.WriteLine("Could not read permissions for this user: " & sTAlias)
				objfileError.WriteLine("Error: " & err.Description)
				err.Clear
				fError = True
				fOneError = True
			End If			
		Next			
	End If	
End Function

Function IfFMAAllowed(sTrustee)
	'FMA allow ACE has been found. Assume it's true
	fFMAAllowed = True
	
	If ( (0 <> Instr(sFMADeniedList, sTrustee)) And (0 = Instr(sFMAExplicitAllow, sTrustee))	) Then
		'If Denied ACE is found, and no explicit allow FMA 
		fFMAAllowed = False
	End If 
End Function

Function CreateOutputFiles
	Dim sTimeArray
	Dim sTimeShort
	Dim sTime
	
	err.Clear
	sTime = Time
	sTimeShort = Split(sTime, " ")
	sTimeArray = Split(sTimeShort(0), ":")

	Set objFSO = CreateObject("Scripting.FileSystemObject")
	sErrorsFileName = ERROR_FILE & "_" & sTimeArray(0) & "_" & sTimeArray(1) & "_" & sTimeArray(2) & ".txt"
	Set objfileError = objFSO.OpenTextFile(sErrorsFileName, ForWriting, True, TristateTrue)

	If (cScriptMode = MODE_SETALL Or cScriptMode = MODE_EXPORT)	Then
		sExportFileName = EXPORT_FILE & "_" & sTimeArray(0) & "_" & sTimeArray(1) & "_" & sTimeArray(2) & ".txt"
		Set objfileExport = objFSO.OpenTextFile(sExportFileName, ForWriting, True, TristateTrue)	
	End If
	
	If err.number <> 0 Then
		WScript.StdOut.WriteLine("Unable to create export or error files: " & err.Description)
		objfileError.WriteLine("Unable to create export or error files: " & err.Description)
		fError = True
		fOneError = True
		WScript.Quit	
	End If

End Function

Function DisplaySyntax
	WScript.StdOut.WriteLine("Syntax:")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("Export accounts with Full Mailbox Access that do not have Send As permission:")
	WScript.StdOut.WriteLine("     CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -Export")
	WScript.StdOut.WriteLine("         NOTE: The list will be saved to Send_As_Export_HH_MM_SS.txt")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("Grant Send As to all accounts listed in an export file:")
	WScript.StdOut.WriteLine("     CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -Import ""filename.txt""")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("Grant Send As to all accounts in the domain with Full Mailbox Access:")
	WScript.StdOut.WriteLine("     CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -SetAll")
	WScript.StdOut.WriteLine("         NOTE: Accounts will be listed in Send_As_Export_HH_MM_SS.txt")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("For all modes, errors are saved to Send_As_Errors_HH_MM_SS.txt")

	WScript.Quit	
End Function
END SCRIPT

Microsoft, programlama örneklerini yalnızca veya zımni garanti olmaksızın sağlar. Bu içerir ancak, satılabilirlik veya belirli bir amaca uygunluk zımni garantileri sınırlı değildir. Bu makale, gösterilen programlama dilini ve oluşturmak ve yordamlar hata ayıklamak için kullanılan araçlar ile bildiğinizi varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir. Ancak işlevsellik sağlamak veya yordamlar, belirli gereksinimlerinizi karşılayacak şekilde geliştirmek amacıyla bu örnekleri değiştirmezler.

Destek hakkında daha fazla bilgi için Microsoft tarafından sağlanan seçenekleri için aşağıdaki Microsoft Web ziyaret edin site:
http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS (http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS)
Bu makalede açıklanan üçüncü taraf ürünleri Microsoft'tan bağımsız şirketler tarafından üretilmektedir. Microsoft hiçbir açık veya örtük performansı veya güvenilirliği bu ürünleri hakkında garanti vermez.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Exchange 2000 Server Standard Edition
  • Microsoft Exchange 2000 Enterprise Server
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange Server 2003 Enterprise Edition
Anahtar Kelimeler: 
kbtshoot kbpending kbbug kbprb kbmt KB912918 KbMttr
Otomatik TercümeOtomatik 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:912918  (http://support.microsoft.com/kb/912918/en-us/ )