Exchange takvimi Güncelleştirme Aracı'nı kullanarak gün ışığından nasıl

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

Bu Sayfada

GİRİŞ

Gün ışığından saatleri ayarlamak için bir sistem olduğu şekilde ahead sunrise hem de Gün Batımı sırasında sonraki bir saat oluşabilecek. Gündüz daha fazla efekttir Akşam. Birçok ülkede gün ışığından gözlemleyin. Bunların çoğu ülkeler sahip kendi kanunlara ve düzenlemelere olduğunda ışığından başlar ve biter.

Gün ışığından yararlanma saati (dst) tarihleri değişebilir yıldan yıla. Microsoft Outlook kullanıcıları kendi Outlook güncelleştirmeniz gerekir Takvim dst kurallarını değiştirmek her zaman. Tarihleri arasında önceki dst kurallarını ve geçerli bir dst kurallarını bilinir bu makalenin "genişletilmiş dst dönem"

Bu makalede eylemleri, sizin Genişletilmiş sırasında oluşan adres Takvim öğeleri Outlook alabilir dst dönem. Bu makalede ayrıca, uygulamanız gereken eylemler açıklanmaktadır. göre Microsoft Exchange Server'da depolanan Takvim öğeleri güncelleştir yeni dst kuralları. Bu makalede sunulan çözüm içerir. Microsoft Exchange takvimi Güncelleştirme Aracı ("Exchange aracı").

İçin ışığından yararlanma saatine değişiklikleri için hazırlama hakkında daha fazla bilgi Etkilenen tüm Microsoft ürünleri için (2007 dst) 2007 şu Microsoft Web sitesi:
http://support.microsoft.com/gp/cp_dst
2011 ' RUS hükümeti gün ışığından yararlanma saatine (dst) iptal etmek için bir yasa benimsenen. Daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/gp/cp_dst#tab0
Rusça daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/gp/cp_dst/RU#tab0

Daha fazla bilgi

Exchange aracı hakkında

Microsoft Windows için tüm eski dst güncelleştirmelerini yükledikten sonra dst değişikliği dönemlerde gerçekleşen randevuları yanlış olacaktır bir saat sonra gerçekleşen olarak görüntülenir. Bu iki yineleme için geçerlidir ve tek örnek randevular. Bu nedenle bu randevuları güncelleştirmeniz gerekir, bunlar Outlook, Microsoft Office Outlook Web Access içinde doğru görüntülenir, birlikte çalışma veri nesneleri üzerinde tabanlı uygulamalarda ve (CDO).

Outlook saat dilimi verilerini güncelleştirme adlı bir araç sağlar. Aracı için Microsoft Office Outlook ("Outlook aracı"). Bu araç, kullanıcıların sağlar. kendi takvimleri güncelleştirmek için.

Saat dilimi verilerini güncelleştirme hakkında daha fazla bilgi için Araç, Microsoft makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın Bilgi Bankası:
931667Microsoft Office Outlook için saat dilimi verilerini güncelleştirme Aracı'nı kullanarak 2007'de gün ışığından yararlanma saati değişiklikleri gerçekleştirme
Exchange takvimi Güncelleştirme Aracı'nı ("Exchange Aracı") dağıtırken Yöneticiler yüz zorluklar önlemenize yardımcı olur Outlook aracı tüm kullanıcılar için yaygın olarak ve her kullanıcının çalıştığından emin olun Outlook doğru aracı.

Exchange Aracı'nın üst düzey açıklaması

Exchange aracı iki ayrı yürütülebilir dosyaların oluşur. Bunlar dosyalar aşağıdaki tabloda açıklanmıştır.
Bu tabloyu kapaBu tabloyu aç
Dosya adıAçıklama
Msextmz.exe Saat dilimi bu yürütülebilir dosya ayıklar Exchange Server çalışan bir sunucudaki posta kutularına gelen bilgiler. Bu yürütülebilir dosya listesi belirtilen posta kutusu takvimler de güncelleştirir. Kullanıcılar.
Msextmzcfg.exe Bu yürütülebilir dosya bir söz konusu adımları çoğunu gerçekleştiren yapılandırma aracı bir Exchange Server sunucusunu güncelleştiriliyor.

Exchange aracının yeni sürümü hakkında

Müşteri görüşleri doğrultusunda, Exchange aracın yeni bir sürümü olan 13 Ağustos 2007 tarihinde yayımlandı. Bu makalede yeni sürümünü gösterir. Exchange aracı. Exchange aracı eski bir sürümünü çalıştırıyorsanız, Bunu kaldırın ve sonra yeni sürümü yükleyin.

Yeni sürümü Exchange aracı aşağıdaki geliştirmeleri içerir:
  • Saat dilimi ayıklama ve takvim güncelleştirme işlemleri fourfold sped.
  • Daha fazla kullanıcı arabirimi yapılandırma aracı kolay ve sezgisel.
  • Konferans odaları ve kaynak güncelleştirme yeteneği posta kutuları Yapılandırma aracını şimdi üretilmiştir.
  • Yerleşik kullanıcı posta kutularını güncelleştirme yeteneği şimdi bulunan Yapılandırma aracı.
  • Sorun giderme belge ile artık eklenmiştir Exchange aracı ve yapılandırma araca entegre.
  • Saat dilimi ayıklama algoritması ve hata işleme yetenekleri geliştirildi.
  • Günlüğe kaydetme işlemi daha kolay olur.

Exchange aracını çalıştıran riski

Exchange Aracı'nı çalıştırdığınızda bir riski yoktur, tek örnek randevular doğru güncelleştirilmeyebilir. Örneğin, işletim sistemi yüklendikten sonra oluşturulan kullanıcı olan tek örnek randevular Mayıs güncelleştirilen yanlış güncelleştirilecektir.

Bu riski azaltmak için aşağıdakilerden birini kullanın: aşağıdaki yöntemleri:
  • Güncelleştirme, zaman aralığını azaltın istemci bilgisayarları ve posta kutusu takvimleri güncelleştirdiğinizde.
  • Uzun süre kuruluştaki bilgisayarlara güncelleştirildiyse önce kullanın Yinelenen toplantılar yalnızca güncelleştirme ayarıGelişmiş ayarlar.

    Genellikle, kişi oluşturma tek örnekli birçok ay önceden randevu. Bu nedenle, dst güncelleştirmelerin yüklü birçok aylar önce çoğu tek örnekli toplantılar Genişletilmiş dst dönemine kalan kullanarak yeni yarat?lm?? olur dst geçiş kuralları. Bu toplantılar güncelleştirilmesi gerekmez.
  • Tam olarak biliyorsanız, ne zaman tarih tüm istemci bilgisayarlar alınan güncelleştirilmiş, kullanın. İşletim sistemi düzeltme tarihi ayarıGelişmiş ayarlar. Tarih belirtilmemişse, tek örnek Bu tarihten sonra oluşturulan randevuların Exchange tarafından güncelleştirilmez aracı.
Not Bir istemcide Outlook veya Exchange aracını çalıştırırsanız ve Windows Vista çalıştıran bilgisayara karşı posta kutuları aracını çalıştırın saat diliminizi Yeni Zelanda standart saati burada aracı çalıştırmak bir 1 Ocak 2008 ve sonrasında ikinci kez. Daha fazla bilgi için bkz: "bilinen Bölüm sorunlar".

Posta kutularını güncelleştirme seçenekleri

Aşağıdaki tablo güncelleştirmek için kullanabileceğiniz beş seçenekleri listeler. 2007 dst saat dilimi kuralları kullanmak için kullanıcı posta kutularını.
Bu tabloyu kapaBu tabloyu aç
SeçeneğiUzmanlarıEksileri
Her kullanıcı için Outlook aracı dağıtmak ve sonra bildirin Kullanıcılar, kendi posta kutularına güncelleştirmek için. Bu seçenek riski önler, Exchange aracı çalıştıran ile ilişkilidir. Zor tüm kullanıcıların doğru ve zamanında bir Outlook araç çalıştırılacağını garanti şekilde.

Outlook yüklü olmayan kullanıcılar çalıştıramıyor olacaktır Outlook araç.

İçin ek eğitim çaba harcamanız gerekir kullanıcılar için karışıklık azalır.
Etkilenen tüm kullanıcılara ve sunucuların karşı Exchange aracı çalıştırın. Bu seçenek kullanıcılar için kolaylaştırılmış bir deneyim sağlar. Exchange aracı olarak çalışan ile ilişkili bir riski yoktur. "Exchange aracını çalıştıran riskini" bölümünde açıklanan.
Yalnızca yinelenen randevular güncelleştirmek için Exchange aracını çalıştırın. Kullanıcıların kendi posta kutuları tek örnek randevu kullanarak güncelleştirme Outlook araç. Tek örnek randevular daha az risk yoktur. yanlış güncelleştirilmesini. Outlook araç çalıştırıldıktan dezavantajlarını olan Exchange aracı çalıştırma dezavantajlarını birleştirilir.
Exchange aracı ya da Outlook aracını çalıştırın. Kullanıcılara sor takvimlerini inceleyin ve gerektiği gibi randevular re-book. Bu seçenek Exchange aracı çalıştıran ile ilişkili risk önler. Tüm kullanıcılar etkilenen tüm randevular re-book sürece bazı takvim öğeleri bir saat uzatılmış dst döneminde kapalı olacaktır.

Yapmanız gerekenler kullanıcılar için karışıklık azaltmak için ek eğitim çaba olun.
Her kullanıcı için Outlook aracı dağıtmak ve sonra bildirin Kullanıcılar, kendi posta kutularına güncelleştirmek için. Daha sonra saat dilimi ayıklama modunu kullanın. Kullanıcılar Outlook aracı çalıştırıp çalıştırmadığınızı Exchange aracı.

Kullanıcılar Outlook araç çalıştırmıyorsanız, yönetici olabilir. Exchange aracını çalıştırın.
Bu seçenek kullanıcıların riskini azaltır. zamanında ve onu aracı çalıştıran ilişkili risk önler Exchange aracı ile çalışıyor. Kullanıcılar, bu bir seçenek değildir Microsoft Office Outlook 2007 çalıştıran.

Nasıl yükleneceği Exchange aracı

Exchange takvimi Güncelleştirme Aracı'nı karşıdan yükleme için kullanılabilir kendi kendine ayıklanan bir yürütülebilir dosya (Msextmz.exe) formu Bu araç kullanılabilir Microsoft Yükleme Merkezi'nden yüklenebilir:

Bu resmi kapatBu resmi aç
Karşıdan yükleme
Karşıdan yükleme Exchange takvimi güncelleştirme aracı paketi Şimdi.

Yardımcı olmak için oluşturulan sanal makine yükleyin ve Exchange aracını kullanın. Microsoft sanal makinesi dayanır Windows Server 2003, Outlook 2007, Microsoft Office Excel 2007 ve Microsoft Office Word 2007. Hem Microsoft Virtual pc 2004 sanal makineyi çalışır ve Microsoft Virtual Server 2005 R2.

Daha fazla bilgi için Exchange takvimi güncelleştirme aracı sanal makinesi hakkında'yı tıklatın. Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
933185Sanal makine bir Exchange kuruluşunda ışığından 2007 Takvim güncelleştirmeleri dağıtmak kullanılabilir
Microsoft Destek karşıdan yükleme hakkında daha fazla bilgi için dosyaları, Microsoft makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın Bilgi Bankası:
119591 Microsoft destek dosyaları Çevrimiçi Hizmetler'den nasıl alınır
Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, en çok kullanılan güncel virüs algılama yazılımı tarihte kullanılabilir olan dosya deftere nakledilmiştir. Dosya engellemek güvenliği gelişmiş sunucularda depolanır dosyanın yetkisiz değişiklikler.

Exchange aracı tarafından desteklenen diller

Exchange aracı yalnızca İngilizce olarak kullanılabilir. Araç çalışır yalnızca bir İngilizce (ABD) bilgisayarda.

Exchange Server Exchange aracı ile uyumlu sürümleri

Aşağıdaki sürümlerinde posta kutuları Exchange aracı güncelleştirebilirsiniz Exchange sunucusu:
  • Microsoft Exchange Server 2007 Enterprise Edition
  • Microsoft Exchange Server 2007 Standard Edition
  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange 2000 Server Enterprise Edition
  • Microsoft Exchange 2000 Server Standard Edition

Exchange aracı tarafından desteklenen işletim sistemleri

32-Bit sürümlerinde aşağıdaki Exchange aracı çalışır işletim sistemleri:
  • Microsoft Windows Server 2003
  • Microsoft Windows xp
  • Windows Vista

Exchange aracını çalıştırmadan önce yapmanız gerekenler

Güncelleştirmeleri yükle

Exchange aracını çalıştırmadan önce istemci emin olun ve sunucu bilgisayar doğru şekilde güncelleştirilir. Bunu yapmak için Windows dst güncelleştirmelerini yükleyin istemciler ve sunucular. Daha fazla bilgi için bilgi, makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın Bilgi Bankası:
942763Microsoft Windows işletim sistemleri için Aralık 2007 toplu saat dilimi güncelleştirmesi

Microsoft Exchange Server kullanıyorsanız 2003 Service Pack 2 (SP2) yükledikten veya her ikisi de aşağıdaki güncelleştirmeler olarak Kuruluşunuz için uygun:
  • 911829 Güncelleştirme
  • 924334 Güncelleştirme
Bu güncelleştirmeleri hakkında daha fazla bilgi için aşağıdaki makale numaralarını tıklatın. Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere:
911829Herhangi bir düzenleme görevlerini gerçekleştirmeye veya Outlook Web Access oluştur çerçevede etkinleştirmek için tıklatmanız gerekir, bir hata iletisi alıyorsunuz
924334 Exchange Server 2003'te Internet Explorer 7.0 ve s/MIME denetimi bir Outlook Web Access istemcisi yüklendikten sonra ileti oluşturma formuna yanıt vermiyor
Kullanıcıların merkezi Kudüs içinde ise Brezilya dili veya saat dilimi e. Güney Amerika'deki yönergeleri okuyun aşağıdaki Microsoft Bilgi Bankası makalesi:

943390 İçin yeniden belirli bir saat diliminde gün ışığından değişiklikleri ayarlamak için Outlook saat dilimi verilerini güncelleştirme Aracı'nı kullandığınızda bazı Outlook Takvim öğelerini yanlış temel

Sistem gereksinimlerini doğrulama

Exchange aracı bir bilgisayarda hangi çalıştırmanız gerekir Aşağıdaki koşullar doğrudur:
  • Bilgisayarda Microsoft Office Outlook 2003 Service Pack bulunmaktadır. 2 (SP2) veya Microsoft Office Outlook 2007.
  • Bilgisayarda Outlook saat dilimi verileri aracı bulunmaktadır. yüklü.
  • Microsoft.net Framework sürüm 2.0 yüklü İstemci bilgisayar.
Çalışan bir bilgisayarda Exchange aracı çalıştırılamıyor Exchange Server veya Exchange Sistem Yönetim Araçları. Yüklemeye çalışırsanız Exchange Server veya Exchange çalıştıran bir bilgisayarda Exchange aracı Sistem Yönetim Araçları, aşağıdaki hata iletisini alırsınız:
Microsoft Exchange takvimi Güncelleştirme Aracı ile yüklenemez Microsoft Exchange.

İzinler ve diğer kullanıcı gereksinimleri doğrulayın

Aşağıdaki koşulların geçerli olduğunu doğrulayın:
  • Her Exchange bilgi deposu izinlerini yönetme Server ileti veritabanı (mdb) güncelleştirilir.
  • Tüm posta kutuları için Farklı Gönder izinleri güncelleştirilmiş.
  • Tüm posta kutuları için tam posta kutusu erişimi izni olan güncelleştirilmiş.
  • Bilgisayarda yerel yönetici izinleri verilir Exchange aracı çalıştıran.

"Posta kutusu izin ver" komut dosyası hakkında

GrantMailboxPermission.vbs komut vermek için kullanabileceğiniz bir etki alanı kullanıcısı tam posta kutusu erişimi ve tüm Farklı Gönder izinleri posta kutuları.

Bu komut yalnızca Exchange Server tarafından çalıştırılabilir. Exchange 2000 Server veya Exchange çalıştıran bir bilgisayarda yönetici Server 2003. Bu komut dosyası Exchange çalıştıran bir bilgisayarda çalıştırılamaz. Server 2007. Ancak, vermek için Exchange Yönetim Kabuğu kullanabilirsiniz gerekli izinler.

.Vbs komut dosyası kodunu sağlanan "Başvurular" bölümüne. Aşağıdaki tabloda, bu iki modda açıklanmaktadır. komut dosyasını çalıştırır.
Bu tabloyu kapaBu tabloyu aç
ModKomutuAçıklama
Ekleme CScript GrantMailboxPermission.vbs –add Etki_alanı_adı \ Kullanıcı_adı Dosya_adı Bu komut verir. Etki_alanı_adı \ Kullanıcı_adı Kullanıcı tam posta kutusu erişimi ve girişte listelenen kullanıcı posta kutularına Farklı Gönder izinleri dosya.

Giriş dosyası eski içeren bir metin dosyası olması gerekir Kullanıcı posta kutusu etki alanı adları. Satır sonu bu adları virgülle ayrılmaları gerekir (crlf) return + satır besleme.

Komut dosyası oluşturduğu bir GrantMailboxPermission.log dosyası. Bu dosya posta kutularını kaydıdır, işlendi. Günlük dosyasının ilk satırı Etki_alanı_adı \ Kullanıcı_adı verilen kullanıcı erişim. Bu dosyayı silmeyin. Bu dosya kaldırma modunda kullanılır.

Açık bir "erişimi kısıtla" komut dosyası kullanıcı atanır "GrantMailboxPermission.err" adlı bir dosyada bilgileri günlüğe kaydeder , komut dosyası değil vermek veya değiştirme izni.

Kullanıcı bölümü ise atanmış olan bir güvenlik grubu "erişimi, komut verir kısıtla" Tam Posta kutusu erişimi ve Farklı Gönder izinleri. Ancak, kullanıcı açamaz posta kutusuna oturum açmak için. Tüm hatalar kaydedilir GrantMailboxPermission.err dosyası.
Kaldır CScript GrantMailboxPermission.vbs –removeBu komut tam posta kutusu erişimi ve Farklı Gönder kaldırır. GrantMailboxPermission.log içinde listelenen posta kutularına izinler alınan dosya Etki_alanı_adı \ Kullanıcı_adı Kullanıcı. , Etki_alanı_adı \ Kullanıcı_adı kullanıcı belirtilen GrantMailboxPermission.log dosyası.
Notları
  • Bu komut dosyası çalıştıran bir bilgisayarda çalıştırdığınızda Exchange Server, komut dosyası döndürür nokta karakteri (.), komut dosyası Kullanıcı başarıyla işler. Komut dosyası bir ünlem işareti döndürür. karakter (!), kullanıcı komut dosyası başarıyla işlemez.
  • Saat dilimi ayıklama modunun çıktı dosyası olamaz Bu komut dosyası için girdi dosyası olarak kullanılır. Bunun için giriş dosyası oluşturmak için komut, saat dilimi ayıklama modunda çıktı dosyasına içeriğini yapıştırma Not Defteri içeriği yeni bir belge kaydedin ve sonra yeni bir belge olarak Giriş dosyası.

Exchange Aracı nasıl kullanılır

Exchange takvimi güncelleştirme Exchange aracını kullanmak için Başlat Yapılandırma Aracı (Msextmzcfg.exe). Bu program ile bütün yardımcı olur takvimler güncelleştirme işlemi.

Saat dilimi ayıklama işlemi Çalıştır

Posta kutusu takvimlerini güncelleştirmek için saat dilimini belirlemek takvimleri. Saat dilimi ayıklama işlemi özelliklerini inceler ve randevuları kendi zaman dilimlerini belirlemek için posta kutusu takvimlerden. Çalıştırmak için saat dilimi ayıklama işlemi şu adımları izleyin:
  1. Hoş Geldiniz sayfasında,'ı tıklatın. Sonraki.

    Not Hoş Geldiniz sayfası, yapılandırma aracını tanıtır ve aracı çalıştırmak için gerekli izinler açıklanır. Sayfa ayrıca Bu makale için bir bağlantı sağlar.
  2. Yapılandırma aracı ayarlarını belirtin. Biz en az 200 megabayt (mb) disk alanı ayrılamadı önerilir günlüğe kaydetme.

    Varsayılan ayarları değiştirmek istediğiniz'i tıklatırsanızGelişmiş ayarlar. Daha fazla bilgi için Gelişmiş ayarları bu yordamı aşağıdaki tabloya bakın.
  3. Active Directory'de yerel Exchange sunucuları seçin güncelleştirmek istediğiniz dizin hizmeti orman. ' I tıklatınSonraki saat dilimi ayıklama işlemini başlatmak için.

    Not Saat dilimi ayıklama gerçekleştirdiyseniz, atlayabilirsiniz tıklatarak bu adımı Atla.

    Dikkat bir durum çıktı günlüğü ve gerçek zamanlı bir saat dilimi görüntüsünü bir bağlantı çubuğu ayıklama işlemi görüntülenir. Ayıklama işlemi sonra saat dilimi tamamlamak için tıklatın Sonraki.

    Hata oluştuysa, bir sorun giderme belgeye bağlantı görüntülenir.
  4. Yapılandırma Hiçbir zaman posta kutuları Bölgeleri sayfayı tıklatın ve sonra Sonraki Takvim taramak için öğeleri.

    Not Bulursa aracın posta kutusu düzeyinde özelliklere sahip olmayan kullanıcılar kendi saat dilimini belirtmek için aracın gerçek toplantılar ve randevular tarar içinde olanlar takvimler saat dilimi belirlemek için. Numarası belirtebilirsiniz taramak için yapılandırma aracı istediğiniz takvim öğelerinin. , büyük sayı öğelerin tarama daha uzun sürer belirtin.
  5. İçinde Bilinmeyen saat dilimi görüntü çözmek adları Sayfa, aracı eşleme aracı yapar saat dilimlerinde ister bilinen işletim sistemi saat dilimine tanıması değil. Bunu yaptıktan sonra tıklatın.Sonraki
  6. Yapılandırma aracı birden çok sahip kullanıcılar bulursa el ile bir belirterek çakışmayı sorulur bölgeler, zaman saat dilimi ile kullanıcının takvimini güncelleştirmek. Bunu yaptıktan sonra tıklatın.Sonraki.
  7. İçinde Posta kutusu DNs ile çözümlenemeyen zaman Kaydet Bölgeleri sayfası, hala kalan tüm kullanıcıların hiçbir zaman dilimi vardır. bilgi veya çakışan saat dilimi bilgilerini hala sahip olarak kaydedilir ayrı bir günlük dosyası. Tıklatın Sonraki.
Saat dilimi ayıklama işlemi tamamlandı. Listesi Kullanıcılar ayıklanan saat dilimleri (çıktı.txt) çıkış dosyasında bulunan ve yükleme dizini.

Gelişmiş ayarlar

Aşağıdaki tabloda gelişmiş ayarlarını açıklar, önceki yordamı 2.adımda yapılandırabilirsiniz.
Bu tabloyu kapaBu tabloyu aç
AyarıİşlevselliğiSenaryoDikkat edilecek noktalarUygulanabilirlik
Yinelenen toplantılar GüncelleştirBu dst tarafından etkilenen ayar güncelleştirmeleri yalnızca yinelenen toplantılar değiştirin. Genişletilmiş dst dönem içinde kalan randevuları tek örnek değildir. güncelleştirilmiş olup güncelleştirilme olsun.Bilgisayarlar uzun zaman önce organizasyon güncelleştirildi, bu ayarı kullanın.

Genelde, insanların tek örnek randevular oluşturmayın birçok ay önceden. Bu nedenle, birçok ay dst güncelleştirmelerini yüklenmişse Çoğu daha önce genişletilmiş dst düşen tek örnekli toplantılar Dönem yeni dst geçiş kuralları kullanılarak oluşturulmuş. Bunlar toplantılar güncelleştirilmesi gerekmez.
Kullanıcı tek örnekli oluşturduysanız Bu ayar ise birçok ay önceden toplantı, bu toplantı güncelleştirilmedi Belirtilen.Bu ayar, tüm konferans için tüm posta kutularına uygulanır. odaları ve tüm kullanıcı takvimleri.
İşletim sistemi düzeltme eki yükleme TarihBu ayar, tek örnek belirtir randevular oluşturulan veya belirttiğiniz tarihten sonra güncel değil güncelleştirilmiş.Ne zaman tüm istemci bilgisayarlar olan tam tarihi biliyorsanız güncelleştirilmiş, bu ayarı kullanın.

Ne zaman olan toplantılar bunu güncelleştirme yüklendikten sonra oluşturulan güncelleştirilmez. Bu toplantılar Sonbahar yeni saat dilimi kuralları altında.
Bu ayar yalnızca etkin olduğunda geçerlidir. İstemci bilgisayarların tümü ve daha az 24 saat içinde olduğunda güncelleştirildi yüksek giriş güncelleştirmesi. (Yüksek giriş olduğu zaman yüzdesi güncelleştirilen kuruluştaki bilgisayarlara yüksek olur. yüzde 90 - aralık.)

Ayrıca, yöneticiler yalnızca bir kez belirleyebilirsiniz Tarih güncelleştirin. Saat dilimleri, karşılık gelen oluşturulan toplantılar Özel güncelleştirir ve belirli bölgelerin güncelleştirilmesi gereken zamanı ayarlar.

Konferans odaları için dolaylı, yalnızca konferans güncelleştirilmiştir Belirli saat dilimlerinde odaları var.

Kullanıcı için dolaylı posta kutuları olan ise SuppressExchange ayarlama veya SuppressAll ayarı belirtilmemiş, yalnızca kullanıcı posta kutularını, bölgeleri güncelleştirilir belirli saat ait.
Bu ayar uygulanır tüm posta kutuları, tüm konferans odaları ve tüm kullanıcı takvimleri.
SuppressExchange ve MaxDepthBu ayarlar tüm randevu neden bir etkilenen kullanıcının takvimini tarafından bağımsız olarak güncelleştirilecek dst değişikliği Bu takvim öğeleri Düzenleyici'yi kullanıcı olup olmadığı.

Varsa kullanıcı Ajanda Takvim öğesinin, güncelleştirmeleri katılanlara gönderilmez kim Exchange posta kutularına sahip. Exchange sahip olmayan katılanlara güncelleştirmeleri gönderilir posta kutuları.

, MaxDepth ayarı düzeyini belirtir. hangi katılımcıların belirlemek için gerçekleştirilen dağıtım listesi genişlemesini Exchange posta kutularını ve hangi katılımcıların sağlamadığı vardır.
Bu ayarı kullanın Exchange kullanıcıları için düzenleyicilerine toplantı güncelleştirmelerini almak için istiyor musunuz toplantılar genişletilmiş dst dönem tarafından etkilenir.

, SuppressExchange ayarı daha iyi SuppressAll Exchange dışındaki bir kuruluş varsa, ayarlama Sunucu Takvim sistemleri ve Katılanlar dahil zamanlanmış toplantılar ise, Kuruluş için dış olan.
Gönderilen hiçbir toplantı güncelleştirmelerini dışında -Exchange kullanıcıları için. Bu nedenle, yapmak emin olun, aynı toplantı, kopyalar güncelleştirilen olası tüm katılımcılar için kuruluştaki her bir posta kutusu olmalıdır. güncelleştirilmesi.

Bu durum sayısını önemli ölçüde artırabilir güncelleştirilmesi gereken posta kutuları. Bu nedenle, işlem süreleri olabilir Artırılmış.

Büyük, iç içe geçmiş dağıtım listeleri üzerinde katılımcı olduğunda Bunu belirlemek için ve toplantıya katılanlar için pahalı bir işlem listesidir Bu katılımcıların Exchange posta kutularına olup olmadığını belirleyin. Bu belirtirseniz ayarlama ve için yüksek bir değere ayarlayın MaxDepth parametre, önemli bir yük etki alanına yerleştirilebilir. denetleyicileri.
Bu ayar yalnızca kullanıcı posta kutularına uygulanır.
SuppressAllBu ayar tüm neden olur dst tarafından etkilenen bir kullanıcının takvimini randevu olacak şekilde değiştirme Kullanıcı Bu takvimin düzenleyen olmasına bakılmaksızın, güncelleştirildi öğeleri.

Kullanıcı Ajanda Takvim öğesinin, güncelleştirmeler. katılanlara gönderilmez.
Katılanlara istemiyorsanız bu ayarı kullanın. Etkilenen toplantı düzenleyicilerine toplantı güncelleştirmelerini alma dst uzun süre.Toplantı güncelleştirmelerini hiç gönderilir. Bu nedenle, yapmak emin olası tüm katılımcılar için aynı toplantı kopyalarını güncelleştirilir, Her posta kutusu kuruluştaki güncelleştirilmesi gerekir.

Bu durum olabilir. güncelleştirilmesi gereken posta kutularının sayısı önemli ölçüde artırır. Bu nedenle, işlem süreleri artırılabilir.

Aksi halde katılımcılar Exchange posta kutularına güncelleştirmeleri alma vardır. Kendi randevuları olmayabilir çalışan e-posta sisteminize bağlı ve bağlı güncelleştirildi eylemleri yöneticileri alır.
Bu ayar yalnızca uygulanır Kullanıcı posta.

Konferans odaları ve kaynak posta kutusu güncelleştirme

Konferans odaları ve önlemek için kaynak posta kutusu Güncelleştir kayıt çakışması. Bunu yapmak için şu adımları izleyin:
  1. Üzerinde Kaynak ve konferans salonu belirtin Takvimler Sayfa yazın veya konferans odaları, diğer adların listesini Yapıştır Kuruluşunuzda. Tıklatın Çözmek diğer adları doğrulamak için ve i Sonraki.
  2. Üzerinde Saat dilimleri için kaynak çözmek ve Konferans odası takvimleri Sayfa, aracı el ile ister konferans odası yoksa konferans salonu saat dilimini belirtin. saat dilimi vardır. Bunu yapmak ve i Sonraki.
  3. Size anımsatacak bir anımsatıcı sayfası görüntülenir, aracı takvimler güncelleştirmeye olur. Tıklatın Sonraki.
  4. Durum çubuğu, bir çıkış bağlantı oturum, dikkat edin ve bir gerçek zamanlı görüntü aracı çıktı görüntülenir. TıklatınSonraki.

    Hatalar oluşursa, bağlantı sorun giderme belgesi, bu sayfanın alt kısmında görüntülenir.

Kullanıcı posta kutusu Takvimi Güncelleştirmesi

Bunu yapmak için şu adımları izleyin:
  1. Üzerinde Kullanıcı posta kutusu güncelleştirme ayarları Takvimler sayfasında, güncelleştirme ayarlarını yapılandırın.

    Eğer anahtarı belirtilmemiş SuppressExchange veyaSuppressAll Gelişmiş ayarlar, saat dilimlerini seçin dst tarafından etkilenir. Aksi takdirde tüm saat dilimlerini seçin.

    TıklatınSonraki.
  2. Size anımsatacak bir anımsatıcı sayfası görüntülenir, aracı takvimler güncelleştirmeye olur. Tıklatın Sonraki.
  3. Durum çubuğu, bir çıkış bağlantı oturum, dikkat edin ve bir gerçek zamanlı görüntü aracı çıktı görüntülenir. Sonra Güncelleştir tamamlamak için tıklatın Sonraki.

    Hatalar oluşursa, bir sorun giderme belgenin bağlantısını bu altta görüntülenir Sayfa.
  4. Tıklatın Bitiş.

Exchange aracı günlük dosyalarını ve alt dizinlerindeki

Günlük dosyaları

Exchange aracı aşağıdaki günlük dosyaları oluşturur. yükleme dizini:
  • Çıktı.txt

    Bu dosya, tüm kullanıcı posta kutularının listesini içerir, ile birlikte, saat dilimi bilgilerini ayıklanır.
  • TimeZoneExtraction.log

    Bu günlük birleştirilmiş çıktısı, saat dilimini içerir. ayıklama işlemi tüm sunucular için.
  • ResourceUpdate.log

    Bu günlük için güncelleştirme işlemi çıktısını içerir. Konferans odaları ve kaynak posta kutusu.
  • UserUpdate.log

    Birleştirilmiş çıktısı, kullanıcı bu günlüğü içerir tüm sunucular için posta kutusu güncelleştirme işlemi.
  • CalendarScan.log

    Bu günlük birleştirilmiş çıktısı, takvim içerir. Tarama işlemi tüm sunucular için.
  • ConflictUsers.txt

    Bu günlük çakışan sahip kullanıcıların listesini içerir. saat dilimleri. Örneğin, kullanıcıların posta kutusu özelliklerini belirtmek, birden çok saat dilimleriyle ait.
  • NonExistent.txt

    Bu günlük hiçbir zaman dilimi olan kullanıcıların listesini içerir. bilgi.

Alt dizinleri

Exchange aracı aşağıdaki dizinlerde oluşturur. yükleme dizini:
  • Kaynak

    Güncelleştirme işlemi için çalışma alt budur. Konferans odaları ve kaynak posta kutusu için. Bu dizin Aşağıdaki dosyaları içerir:
    • Msextmz.log

      Bu, çıktı dosyası için Exchange aracı işlem güncelleştirin.
    • Errors.txt

      Bu dosya, posta kutularının listesini içerir.
    • Processed.txt

      Bu dosya olan posta kutularının listesini içerir. başarıyla güncelleştirildi.
    Not Bu dosyalar tüm çalışma dizinleri içerir.

    , Kaynak alt aşağıdaki alt dizininde de bulunur:
    • LogFiles

      Bu alt dizin, her posta kutusu için güncelleştirme günlükleri içerir başarıyla güncelleştirildi. Her güncelleştirme günlüğü listesi içermelidir toplantı güncelleştirildi.
  • Server_Name

    Her sunucu için bir alt dizin yok. ayıklama işlemi saat dilimi veya Takvim güncelleştirmesi gerçekleştirildiği. Bu alt dizinler, aşağıdaki alt dizinleri içerir:
    • CalendarScan

      Bu, alt çalışma takvimi tarama işlem.
    • Extract

      Saat dilimi için çalışma alt budur. ayıklama işlemi.
    • Güncelleştirme

      Kullanıcı posta kutusu için çalışma alt budur. işlem güncelleştirin. Aşağıdaki alt aşağıdakileri içerir:
      • LogFiles

        Bu alt dizin, her posta kutusu için güncelleştirme günlükleri içerir başarıyla güncelleştirildi. Her güncelleştirme günlüğü listesi içermelidir toplantı güncelleştirildi.

Exchange aracı çalıştırdıktan sonra yapmanız gerekenler

Exchange aracı karşı tüm Exchange çalıştıran bitirdikten sonra Çalışma ortamınızdaki sunucuları uygun Exchange Server dst güncelleştirmelerini uygulayın. Aşağıdaki liste, Exchange Server sürümü ve hizmeti tarafından düzenlenen paketi düzeyi. Exchange Server sürümü için güncelleştirmeleri yükleyin Sipariş.

Exchange Server 2007
940006 Exchange Server 2007 için güncelleştirme toplaması 4 açıklaması
Exchange Server 2007 için güncelleştirme toplaması 4 içerir Aşağıdaki dst düzeltmeleri:
  • 937656 2007'de Yeni Zelanda'da gün ışığından yararlanma saati (dst) başladıktan sonra Exchange 2007 Outlook Web Access'te sorunlarla
  • 932561 Batı Avustralya saat diliminde bir kuruluş ise Exchange kuruluştan diğerine Exchange 2007 kullanılarak gönderilen randevular bir saat hatalı olabilir
Exchange Server 2003 SP2
926666 Işığından 2007'de Exchange 2003 Service Pack 2 güncelleştirmesi
931915 Newfoundland 2007 gün ışığından yararlanma saatine değişiklikleri için Exchange Server 2003 Service Pack 2 güncelleştirmesi
929895 Farklı bir Exchange Server kuruluşlar arasında gönderilen randevuları kuruluşlar biri Batı Avustralya saat diliminde olduğunda bir saat hatalı olabilir
937653 Değişikliklerin Yeni Zelanda 2007 gün ışığından dönemin sonra Exchange Server 2003'te bir veya daha fazla sorunlar yaşıyorsunuz
Exchange Server 2003 SP1
940123 Yeni Zelanda'da gün ışığından yararlanma saati (dst) sonra Exchange 2003 Service Pack 1 2007'de başlayan sorunlarla karşılaşabilirsiniz

Bilinen sorunlar

  • Outlook Web Access'te oluşturulan yinelenen toplantılar Exchange aracı tarafından güncelleştirilmez

    Exchange Server güncelleştirmeleri yüklerseniz Exchange server posta kutuları olan toplantılar yinelenen güncelleştirmeden önce Outlook Web Access'te oluşturulan Exchange aracı tarafından güncelleştirilmez.

    Bu sorunu gidermek için Exchange Server güncelleştirmeleri kaldırmak için çalıştırma Aracı değişimi ve Exchange Server güncelleştirmeleri Exchange üzerinde yeniden yükleme Sunucu.
  • Exchange aracı çalıştırdıktan sonra Exchange 2007 başlatılmalıdır.

    Takvim öğeleri doğru olarak görüntülemek için yeniden başlatmanız gerekir Outlook Web Access Exchange aracı çalıştırdıktan sonra Exchange Hizmetleri Exchange 2007.
  • Exchange aracını yükleyemiyor

    Exchange aracı başarıyla yüklü değilse Aşağıdaki kayıt defteri anahtarlarından birini bulunmaktadır:
    • HKEY_CLASS_ROOT\Outlook.Application.9
    • HKEY_CLASS_ROOT\Outlook.Application.10
    Bu senaryoda, aşağıdaki hata iletisini alıyorsunuz Exchange aracı yüklemeye çalıştığınızda:
    Exchange Server Takvim Rebasing aracı Microsoft sürümüyle yüklenemez. Outlook.
    Bu soruna geçici bir çözüm için bu kayıt defteri anahtarlarını silme Exchange aracı yüklemek ve ardından kayıt defterini geri yükleme anahtarları.

    Önemli Bu bölüm, yöntem veya görev nasıl değiştireceğinizin anlatıldığı adımlar içermektedir için Kayıt defterini değiştirin. Ancak, değiştirirseniz önemli sorunlar oluşabilir kayıt defteri hatalı. Bu nedenle, aşağıdaki adımları izleyin emin olun dikkatle. Daha fazla koruma için değiştirmeden önce kayıt defterini yedekleyin. Sonra sorun oluşması durumunda kayıt defterini geri yükleyebilirsiniz. Daha fazla bilgi için Yedekleme ve geri yükleme kayıt defteri, aşağıdaki makaleyi tıklatın hakkında Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere numarası:
    322756 Yedekleme ve Windows kayıt defterini geri yükleme hakkında
  • Sunucu başına işlenen posta kutularının sayısı sınırı vardır

    Kullanıcı listesinde modunda ve saat dilimi ayıklama modunda Msextmz.exe yalnızca 65.535 posta kutularının sunucuda işleyebilir. Sunucunun varsa Bazı posta kutuları birden fazla 65.535 posta kutuları işlenmez.
  • Ortak klasör takvimleri güncelleştirilmez

    Ortak klasörü Exchange aracı güncelleştirmez. takvimleri. Ortak klasör Takvim güncelleştirme hakkında daha fazla bilgi için bkz: Outlook araç belgeleri.
  • Outlook ve Exchange araçlarının aynı ortamda çalıştırabilirsiniz

    Olan bir posta kutusu Exchange aracı çalıştırırsanız zaten Outlook aracı, veya tam tersi güncelleştirilmiş, hiçbir yan deneyimi efektleri. Ancak, Exchange aracını çalıştırırsanız, gerek yoktur kullanıcılar için Outlook araç ayrı ayrı çalıştırın.
  • Olmayan toplantı anımsatıcısı beklenenden daha görünür

    Tarafından güncelleştirilen posta kutuları için olmayan toplantı anımsatıcısı Outlook posta kutunuza asla bağlandı, Exchange aracı güncelleştirilmiyor Çevrimiçi modda. Bu durumda, bir saat anımsatıcılar görüntülenir daha bekleniyordu.

    Outlook'u Çevrimiçi modda asla bağlandı, yapmanız gerekir. Takvim randevuları yanlış anımsatıcılarını ayarlamak, Outlook aracı bulur. Ayrıca, posta kutusunda anımsatıcı arama klasörü yok. Bu nedenle, aracın öğeleri e-posta, kişiler veya diğer anımsatıcı güncelleştirmez.

    Örneğin, aracın bir e-posta öğesi uyarı mektubuna güncelleştirmez. gelecekte aynı anda takip etmek için. Ayrıca değil güncelleştirme aracı Anımsatıcı içeren bir görev ö?esinin mektubunda.
  • Bir hata iletisi alıyorsunuz: "'Microsoft Exchange takvimi Güncelleştirme Aracı' ün önceki sürümlerinde algıladığından yüklemek için açılamadı. Lütfen bunları kaldırın ve bu kurulumu yeniden çalıştırın"

    Exchange takvimi güncelleştirme önceden yüklediyseniz Aracı sürüm 1.0 Exchange yüklemeden önce bu sürümü kaldırmalısınız Takvimi Güncelleştirme Aracı sürüm 2.0

    Exchange takvimi güncelleştirme aracı Sürüm 1.0, içerdiği bir kendi kendine ayıklanan yürütülebilir dosya dağıtılan iki .msi paketi (Msextmz.msi ve Msextmzcfg.msi). Her ikisi de kaldırmanız gerekir Exchange Aracı'nın 2.0 sürümünü yüklemeden önce paketler.

    Varsa, Exchange Aracı'nın 2.0 sürümünü yüklerken sorunlar oluşmaya, yeniden yüklemeyi ve sonra Exchange aracı 1.0 sürümünü kaldırmayı deneyin. Yapın Bunun yerine, .msi paketi kullanarak kullanarak Ekleme veya kaldırma Programlar Denetim Masası'ndaki özelliği. Daha sonra bilgisayarınızı yeniden başlatın ve daha sonra Exchange Aracı'nın 2.0 sürümünü yükleyin.

    Bu yordamı varsa işe, ikili dosyaları .msi paketten ayıklayın.
  • Outlook veya Exchange güncelleştirme araçları çalıştırdığınızda, randevulara kapalı bir saat saat diliminizi Yeni Zelanda standart saati olduğu posta kutuları bulunan verilir

    Bu davranış, aşağıdaki senaryolarda olduğunda oluşur. TRUE:
    • Outlook veya Exchange güncelleştirme araçları çalıştırmak bir Windows Vista çalıştıran bir bilgisayar.
    • Saat diliminizi kurulan posta kutularını Yeni Zelanda standart saati güncelleştirilmiştir.
    Bu sorunu gidermek için Outlook'u çalıştırın veya Exchange posta kutularını ve Ocak sonrasında ikinci kez karşı güncelleştirme araçları 1, 2008.

    Bu davranış, Windows Vista saat dilimi işlemesi nedeniyle oluşur. diğer Windows sürümleri olandan farklı bilgiler yapın. Değil çalıştırırsanız Outlook veya Exchange araçları yeniden veya daha sonra 1 Ocak 2008 güncelleştirmesi tüm İkinci dst olayına randevular bir saat kapalı olacaktır. İkinci dst olay, 16 Mart 2008'den 6 Nisan 2008'den tarihlerini içerir.

    Aksi takdirde 1 Ocak ikinci dst randevu güncelleştirmek için 2008 kadar beklemek istiyorsanız olay, Outlook veya Exchange güncelleştirme araçları olan bir bilgisayarda çalıştırabilirsiniz Windows xp veya Windows Server 2003 çalıştırıyor.
  • m/GG/yyyy biçimi GG/AA/yyyy biçiminde bir tarihe değiştirildiğinde

    Ayarladığınız İşletim sistemi düzeltme tarihi Exchange seçeneği Takvimi güncelleştirme aracı. Bunu yapmak için Exchange takvimi güncelleştirme aracı düzgün çalışmıyor. m/GG/yyyy/AA/GG/yyyy tarih biçimi değiştiğinden bu sorun oluşur.

    Ayrıca, benzer bir hata iletisi hata günlüğüne aşağıdaki hata iletisi kaydedilir:
    [02/28/2008 7: 10: 21 am] [776]: WMA: 0x80070057 hata - yapılandırma okunamadı.
    Bu sorun, aşağıdaki bölümdeki örnek posta kutularının yanlış seçenek ayarı nedeniyle oluşur.Sunucu.ini dosyası.
    ServerDN = /O=OrgName/OU=AdminGroup/cn=Configuration/cn=Servers/cn=ServerName 
    LogDirectory = C:\Program Files\MSExTmz\ServerName\Update\LogFiles\ 
    ErrorFile = C:\Program Files\MSExTmz\ServerName\Update\errors.ServerName.txt 
    ProcessedFile = C:\Program Files\MSExTmz\ServerName\Update\processed.ServerName.txt 
    LogFile = C:\Program Files\MSExTmz\ServerName\Update\msextmz.ServerName.log 
    SystemPatchDate = 2/28/2008  
    DebugFile = C:\Program Files\MSExTmz\debug\ServerName.debug.bin 
    PerMailboxTimeLimit = 15 
    PostMailboxDelay = 0 
    RebaseOptions = 171 
    InputFile = C:\Program Files\MSExTmz\ServerName\Update\Mailboxes.ServerName.txt 
    
    "2/28/08." Tarih "SystemPatchDate" satırı içerdiğine dikkat edin Bu tarih, AA/GG/yyyy biçiminde olmalıdır.

    Bu soruna geçici bir çözüm bulmak için kullanma İşletim sistemi düzeltme eki Tarih seçenek.

Referanslar

"Posta kutusu izin ver" komut dosyası

Option Explicit
' For FileSystemObject
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
Const TristateTrue = -1
Const TristateUseDefault = -2
Const TristateFalse = 0

'Permission Type: Allow or Deny
Const ADS_ACETYPE_ACCESS_ALLOWED = &H0
Const ADS_ACETYPE_ACCESS_DENIED = &H1
Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = &H5
Const ADS_ACETYPE_ACCESS_DENIED_OBJECT = &H6

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_SCOPE_SUBTREE = 2
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

'Microsoft Exchange Server
Const EX_MB_SEND_AS_ACCESSMASK  = &H00100
Const EX_FULLMAILBOX_ACCESSMASK = 1
Const EX_MB_SEND_AS_GUID = "{AB721A54-1E2F-11D0-9819-00AA0040529B}"

'Application Parameter Index
Const ARG_INDEX_MODE = 0
Const ARG_INDEX_USERNAME = 1
Const ARG_INDEX_FILENAME = 2
Const MIN_ARG = 1

Const MODE_INVALID = -1 
Const MODE_ADD = 0
Const MODE_REMOVE = 1

Const ADD = "-ADD"
Const REMOVE = "-REMOVE"

'Application Const String
Const EMPTYSTRING = ""
Const ERROR_FILENAME = "GrantMailboxPermission.err"
Const OUTPUT_FILENAME = "GrantMailboxPermission.log"
Dim OUTPUT_DELIMITER
OUTPUT_DELIMITER = vbTab

'Logging file
Dim objFSO
Dim objfileError
Dim objfileOutput
Dim objfileImport
Dim objconn
Dim objCommand
Dim rootDSE
Dim sDomainContainer
Dim sUserLDAPPath
Dim objUser
Dim objSDNTsecurity
Dim objDACLNT
Dim objDACLEX
Dim objSDMailbox
Dim fFMA
Dim fSendAs
Dim AccessTypeForFMA
Dim AccessTypeForSendAS
Dim fAddedFMA
Dim fAddedSendAs
Dim fRemovedFMA
Dim fRemovedSendAs
Dim sArraySplit
Dim sOneRow
Dim sGrantedUser
Dim dArgCount
Dim cScriptMode
Dim dArgExpected
Dim fOneError

On Error Resume Next
'Parameter Verification
dArgCount = Wscript.Arguments.Count
If (dArgCount < MIN_ARG) Then
	DisplaySyntax
End If

cScriptMode = MODE_INVALID
Select Case UCase(WScript.Arguments(ARG_INDEX_MODE))
	Case ADD
		cScriptMode = MODE_ADD
		dArgExpected = ARG_INDEX_FILENAME + 1
	Case REMOVE
		cScriptMode = MODE_REMOVE
		dArgExpected = ARG_INDEX_MODE + 1
	Case Else
		cScriptMode = MODE_INVALID
End Select

If (cScriptMode = MODE_INVALID Or dArgCount <> dArgExpected) Then
	DisplaySyntax
End If

If (cScriptMode = MODE_ADD) Then
	sGrantedUser = WScript.Arguments(ARG_INDEX_USERNAME)
	If (IsValidUserName(sGrantedUser) = False) Then
		DisplaySyntax
	End If
End If

CreateImportExportFiles

If (cScriptMode = MODE_ADD) Then
	err.Clear
	
	'Prepare LDAP connection.
	Set objconn = CreateObject("ADODB.Connection")
	Set objCommand = CreateObject("ADODB.Command")
	objconn.Provider = "ADSDSOObject"
	objconn.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 rootDSE = GetObject("LDAP://rootDSE")
	sDomainContainer = rootDSE.Get("defaultNamingContext")
	If (err.number <> 0) Then
		WScript.StdOut.WriteLine("Failed to find a Domain Container:" & err.Description)
		objfileError.WriteLine("Failed to find a Domain Container:" & err.Description)
		WScript.Quit
	End If
		
	Set objCommand.ActiveConnection = objconn

	Do While objfileImport.AtEndOfStream <> True
		fOneError = False
		sUserLDAPPath = EMPTYSTRING
		err.Clear

		sOneRow = Trim(objfileImport.ReadLine)
		If sOneRow <> EMPTYSTRING Then
		
		    sUserLDAPPath = GetLDAPPathFromLegacyDN(sOneRow)
		    If (err.number <> 0) Then
			    objfileError.WriteLine("Failed to get user's LDAP path from " & sOneRow)
			    fOneError = True
			    err.Clear
		    End If

		    If (fOneError = False) Then
			    Set objUser = GetObject(sUserLDAPPath)
			    If (err.number <> 0) Then
				    objfileError.WriteLine("Failed to get user object from " & sUserLDAPPath)
				    objfileError.WriteLine("Error: " & err.Description)
				    fOneError = True
				    err.Clear
			    End If
		    End If
    	
		    If (fOneError = False) Then
			    Set objSDMailBox = objUser.MailboxRights
			    Set objDACLEX = objSDMailbox.DiscretionaryAcl
			    Set objSDNTsecurity = objUser.ntSecurityDescriptor
			    Set objDACLNT = objSDNTsecurity.DiscretionaryAcl
			    If (err.number <> 0) Then
				    objfileError.WriteLine("Failed to get DACL of " & sUserLDAPPath)
				    objfileError.WriteLine("Error: " & err.Description)
				    fOneError = True
				    err.Clear
			    End If
		    End If

		    ' Verify Full Mailbox Access and Send As permissions.
		    fFMA = False
		    fSendAs = False
		    AccessTypeForFMA = ADS_ACETYPE_ACCESS_ALLOWED
		    AccessTypeForSendAS = ADS_ACETYPE_ACCESS_ALLOWED

		    If (fOneError = False) Then
			    CheckFullMailboxAccess objDACLEX, sGrantedUser, fFMA, AccessTypeForFMA
			    CheckSendAs objDACLNT, sGrantedUser, fSendAs, AccessTypeForSendAS
			    If (err.number <> 0) Then
				    objfileError.WriteLine("Failed to Check permission of " & sUserLDAPPath)
				    objfileError.WriteLine("Error: " & err.Description)
				    fOneError = True
				    err.Clear
			    End If
		    End If

		    'If Send As or Full Mailbox Access permissions do not exist, add these permissions.
		    If ( (AccessTypeForFMA = ADS_ACETYPE_ACCESS_DENIED) Or (AccessTypeForSendAs = ADS_ACETYPE_ACCESS_DENIED_OBJECT) ) Then
			    'If Deny access is already granted, do not add permissions for this user.
			    objfileError.WriteLine("Deny permission already added: " & sUserLDAPPath)
			    fOneError = True
		    End If
    		
		    If ( fOneError = False And ((fFMA = False) Or (fSendAs = False)) ) Then
			    fAddedFMA = False
			    fAddedSendAs = False
    			
			    If (fFMA = False) Then
				    'Add Full Mailbox Access permissions.
				    err.Clear
				    AddAce objDACLEX, sGrantedUser, EX_FULLMAILBOX_ACCESSMASK, ADS_ACETYPE_ACCESS_ALLOWED, ADS_ACEFLAG_INHERIT_ACE, 0,0,0
				    objSDMailbox.DiscretionaryAcl = objDACLEX
				    objUser.MailboxRights = Array(objSDMailbox)
				    If ( err.number <> 0 ) Then
					    objfileError.WriteLine("Failed to add FullMailbox Access: " & sUserLDAPPath)
					    objfileError.WriteLine("Error: " & err.Description)
					    fOneError = True
					    fAddedFMA = False
					    err.Clear
				    Else
					    fAddedFMA = True
				    End If
			    End If
    			
			    If (fSendAs = False) Then
				    'Add Send As permissions.
				    err.Clear
				    AddAce objDACLNT, sGrantedUser, EX_MB_SEND_AS_ACCESSMASK, ADS_ACETYPE_ACCESS_ALLOWED_OBJECT, 0,1, EX_MB_SEND_AS_GUID, 0
				    objSDNTsecurity.DiscretionaryAcl = objDACLNT
				    objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )
				    objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL
				    If ( err.number <> 0 ) Then
					    objfileError.WriteLine("Failed to add SendAs permission: " & sUserLDAPPath)
					    objfileError.WriteLine("Error: " & err.Description)
					    fOneError = True
					    fAddedSendAs = False
					    err.Clear
				    Else
					    fAddedSendAs = True
				    End If
			    End If

			    If (fOneError = False ) Then 
				    objUser.SetInfo
				    If (err.number <> 0) Then
					    objfileError.WriteLine("Failed to update user: " & sUserLDAPPath)
					    objfileError.WriteLine("Error: " & err.Description)
					    fOneError = True
					    err.Clear		
				    Else
					    'Update logging.
					    objfileOutput.WriteLine(sUserLDAPPath & OUTPUT_DELIMITER & fAddedFMA & OUTPUT_DELIMITER & fAddedSendAs)		
				    End If
			    End If
		    End If

		    Set objUser = Nothing
		    Set objSDNTsecurity = Nothing
		    Set objDACLNT = Nothing
		    Set objDACLEX = Nothing
		    Set objSDMailBox = Nothing

		    If (fOneError = True) Then
			    WScript.StdOut.Write("!")
		    Else
			    WScript.StdOut.Write(".")
		    End If
        End If
	Loop

Set rootDSE = Nothing
Set objCommand = Nothing
Set objconn = Nothing

End If

If (cScriptMode = MODE_REMOVE) Then
	'Retrieve the granted user from the first line of the import file.
	sGrantedUser = objfileImport.ReadLine
	If (IsValidUserName(sGrantedUser) = False) Then
		WScript.StdOut.WriteLine("Invalid User in import file. please check import file..")
		objfileError.WriteLine("Invalid User in import file. please check import file..")
		WScript.Quit
	End If
	
	Do While objfileImport.AtEndOfStream <> True
		fOneError = False
		sUserLDAPPath = EMPTYSTRING
		fAddedFMA = False
		fAddedSendAs = False
		fRemovedFMA = False
		fRemovedSendAs = False
		err.Clear

		sOneRow = objfileImport.ReadLine
		sArraySplit = Split(sOneRow, OUTPUT_DELIMITER)

		'The first column is the LDAP path.
		sUserLDAPPath = sArraySplit(0)
		'The second column is Full Mailbox Access permissions.
		fAddedFMA = sArraySplit(1)
		'The third column is Send As permissions.
		fAddedSendAs = sArraySplit(2)

		Set objUser = GetObject(sUserLDAPPath)
		If (err.number <> 0) Then
			objfileError.WriteLine("Failed to get user object from " & sUserLDAPPath)
			objfileError.WriteLine("Error: " & err.Description)
			fOneError = True
			err.Clear
		End If
		
		If ((fOneError = False) And (fAddedFMA = "True")) Then		
			Set objSDMailBox = objUser.MailboxRights
			Set objDACLEX = objSDMailbox.DiscretionaryAcl
			fRemovedFMA = RemoveFullMailboxAccess(objDACLEX, sGrantedUser)
			If (err.number <> 0) Then
				objfileError.WriteLine("Failed to Remove Full MailboxAccess from " & sUserLDAPPath)
				objfileError.WriteLine("Error: " & err.Description)
				fOneError = True
				err.Clear
			End If
			
			If (fRemovedFMA = False) Then
				objfileError.WriteLine("Couldn't find Full mailbox access permission on " & sUserLDAPPath)
			End If
			
			If ((fOneError = False) And (fRemovedFMA = True)) Then
				objSDMailbox.DiscretionaryAcl = objDACLEX
				objUser.MailboxRights = Array(objSDMailbox)
			End If
		End If

		If ((fOneError = False) And (fAddedSendAs = "True")) Then		
			Set objSDNTsecurity = objUser.ntSecurityDescriptor
			Set objDACLNT = objSDNTsecurity.DiscretionaryAcl

			fRemovedSendAs = RemoveSendAs(objDACLNT, sGrantedUser)
			If (err.number <> 0) Then
				objfileError.WriteLine("Failed to Remove SendAs from " & sUserLDAPPath)
				objfileError.WriteLine("Error: " & err.Description)
				fOneError = True
				err.Clear
			End If

			If (fRemovedSendAs = False) Then
				objfileError.WriteLine("Couldn't find SendAs permission on " & sUserLDAPPath)
			End If
			
			If ((fOneError = False) And (fRemovedSendAs = True)) Then
				objSDNTsecurity.DiscretionaryAcl = objDACLNT
				objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )
				objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL
			End If
		End If

		If ((fOneError = False) And (fRemovedFMA Or fRemovedSendAs)) Then
			objUser.SetInfo
			If (err.number <> 0) Then
				objfileError.WriteLine("Failed to update ADSI for user: " & sUserLDAPPath)
				objfileError.WriteLine("Error: " & err.Description)
				fOneError = True
				err.Clear		
			Else 
				If ( fRemovedFMA Or fRemovedSendAs ) Then
					'Update logging.
					objfileError.WriteLine("Removed Permission from " & sUserLDAPPath & OUTPUT_DELIMITER & fRemovedFMA & OUTPUT_DELIMITER & fRemovedSendAs)
				End If
			End If
		End If

		If (fOneError = True) Then
			WScript.StdOut.Write("!")
		Else
			WScript.StdOut.Write(".")
		End If
	Loop
End If

CloseImportexportFiles

Function IsValidUserName (sUserName)
	Dim dPosition
	dPosition = InStr(1, sUserName, "\")
	If (dPosition = 0 ) Then
		IsValidUserName = False
		objfileError.WriteLine("Invalid User:" & sUserName)
	Else
		IsValidUserName = True
	End If
End Function

Function CheckSendAs (objNTSD, sUser, fSendAs, AccessType)
	Dim intACECount
	Dim objACE
	
	err.Clear
	fSendAs = False
	AccessType = ADS_ACETYPE_ACCESS_ALLOWED
	intACECount = objNTSD.AceCount

	If intACECount Then
		For Each objACE In objNTSD
			err.Clear
			If ( (UCase(objACE.Trustee) = UCase(sUser)) And (objACE.ObjectType = EX_MB_SEND_AS_GUID) ) Then
				fSendAs = True
				AccessType = objACE.AceType
			End If
		Next
	End If	

	If (err.number <> 0) Then
		objfileError.WriteLine("Check SendAs permissions Failed : " & sUser)
		objfileError.WriteLine("Error: " & err.Description)
		err.Clear
		fOneError = True
	End If
	Set objACE = Nothing
End Function

Function CheckFullMailboxAccess (objACL, sUser, fFoundFMA, AccessType)
	Dim intACECount
	Dim objACE

	err.Clear
	fFoundFMA = False
	AccessType = ADS_ACETYPE_ACCESS_ALLOWED
	intACECount = objACL.AceCount
	If intACECount Then
		For Each objACE In objACL
			If ( (UCase(objACE.Trustee) = UCase(sUser)) And ((objACE.AccessMask And EX_FULLMAILBOX_ACCESSMASK) <> 0)) Then
				fFoundFMA = True
				AccessType = objACE.AceType
			End If
		Next
	End If

	If (err.number <> 0) Then
		objfileError.WriteLine("Check FullMailbox permissions Failed : " & sUser)
		objfileError.WriteLine("Error: " & err.Description)
		err.Clear
		fOneError = True
	End If
	Set ObjACE = Nothing
End Function

Function RemoveSendAs (objNTSD, sUser)
	Dim intACECount
	Dim objACE
	Dim fFound
	
	fFound = False
	intACECount = objNTSD.AceCount
	
	If intACECount Then
		For Each objACE In objNTSD
			If ((UCase(objACE.Trustee) = UCase(sUser)) And (objACE.ObjectType = EX_MB_SEND_AS_GUID) ) Then
				objNTSD.RemoveAce objACE
				fFound = True
			End If
		Next
	End If

	RemoveSendAs = fFound		
End Function

Function RemoveFullMailboxAccess (objACL, sUser)
	Dim intACECount
	Dim objACE
	Dim fFound
	
	fFound = False
	intACECount = objACL.AceCount
	
	If intACECount Then
		For Each objACE In objACL
			If((0 <> Instr(UCase(objACE.Trustee), UCase(sUser))) And (objACE.AccessMask And EX_FULLMAILBOX_ACCESSMASK) <> 0) Then
				objACE.AccessMask = (objACE.AccessMask Xor EX_FULLMAILBOX_ACCESSMASK)
				fFound = True
			End If
		Next
	End If

	RemoveFullMailboxAccess = fFound		
End Function

Function GetLDAPPathFromLegacyDN (sLegacyDN)
	Dim rsUsers
	Dim sLdapPath
	
	objCommand.CommandText = "<GC://" & sDomainContainer & ">;(&(&(& (mailnickname=*) (| (&(objectCategory=person)(objectClass=user)(legacyExchangeDN=" & sLegacyDN & ")) ))));adspath;subtree"
	objCommand.Properties("searchscope") = ADS_SCOPE_SUBTREE
	objCommand.Properties("Page Size") = 10
	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
		objfileError.WriteLine("Search for mailbox owners failed, error:" & err.Description)
		fOneError = True
	End If
	
	If (rsUsers.RecordCount = 0) Then
		objfileError.WriteLine("No mailbox owner user accounts found for " & sLegacyDN & " in " & sDomainContainer & ".")
		fOneError = True		
	End If

	If (rsUsers.RecordCount > 1) Then
		objfileError.WriteLine("Multiple mailboxs owner user accounts found for " & sLegacyDN & " in " & sDomainContainer & ".")
		fOneError = True		
	End If

	sLdapPath = Replace(rsUsers.Fields(0).Value, "GC://", "LDAP://")	
	GetLDAPPathFromLegacyDN = sLdapPath
	Set rsUsers = Nothing
End Function

Function CloseImportexportFiles

	objfileError.WriteLine("*******************************************************")
	objfileError.WriteLine("End at " & Date & " " & Time)
	objfileError.WriteLine("*******************************************************")

	objFSO.Close
	objfileError.Close
	objfileOutput.Close
	objfileImport.Close
	
	Set objFSO = Nothing
	Set objfileError = Nothing
	Set objfileOutput = Nothing
	Set objfileImport = Nothing
End Function

Function CreateImportExportFiles
	Dim sErrorsFileName
	Dim sImportFileName
	Dim sOutputFileName

	err.Clear
	Set objFSO = CreateObject("Scripting.FileSystemObject")
	sErrorsFileName = ERROR_FILENAME
	sImportFileName = EMPTYSTRING
	sOutputFileName = EMPTYSTRING

	Select Case cScriptMode
		Case MODE_ADD
			sImportFileName = WScript.Arguments(ARG_INDEX_FILENAME)
			sOutputFileName = OUTPUT_FILENAME
		Case MODE_REMOVE
			sImportFileName = OUTPUT_FILENAME 'Use the output file name as the import file.
			sOutputFileName = EMPTYSTRING	
		Case Else
			DisplaySyntax
	End Select

	Set objfileError = objFSO.OpenTextFile(sErrorsFileName, ForAppending, True, TristateTrue)
	objfileError.WriteLine("*******************************************************")
	objfileError.WriteLine("Start at " & Date & " " & Time)
	objfileError.WriteLine("*******************************************************")

	If (cScriptMode = MODE_REMOVE) Then
		Set objfileImport = objFSO.OpenTextFile(sImportFileName, ForReading, False, TristateTrue)
	Else
		Set objfileImport = objFSO.OpenTextFile(sImportFileName, ForReading, False, TristateFalse)
	End If

	If (sOutputFileName <> EMPTYSTRING) Then
		'Determine whether the output file already exists.
		If (objFSO.FileExists(sOutputFileName)) Then
			Set objfileOutput = objFSO.OpenTextFile(sOutputFileName, ForReading, False, TristateTrue)
			sOneRow = objfileOutput.ReadLine
			'If the user name in the file differs from the parameter, the process cannot continue.
			If ( sOneRow <> sGrantedUser ) Then
				WScript.StdOut.WriteLine("The Domain\User must be the same as " & sOneRow )
				WScript.Quit
			End If
			Set objfileOutput = objFSO.OpenTextFile(sOutputFileName, ForAppending, True, TristateTrue)
		Else
			Set objfileOutput = objFSO.OpenTextFile(sOutputFileName, ForWriting, True, TristateTrue)
			'The first line of the log file is the user who is granted the permissions.
			objfileOutput.WriteLine(sGrantedUser)
		End If
	End If
	
	If (err.number <> 0) Then
		WScript.StdOut.WriteLine("Failed to open Log file, error:" & err.Description)
		WScript.Quit
	End If
End Function

Function AddAce(dacl, TrusteeName, gAccessMask, gAceType, gAceFlags, gFlags, gObjectType, gInheritedObjectType)
	Dim Ace1
	
	Set Ace1 = CreateObject("AccessControlEntry")
	Ace1.AccessMask = gAccessMask
	Ace1.AceType = gAceType
	Ace1.AceFlags = gAceFlags
	Ace1.Flags = gFlags
	Ace1.Trustee = TrusteeName
	'Determine whether ObjectType has to be set.
	If CStr(gObjectType) <> "0" Then
		Ace1.ObjectType = gObjectType
	End If

	'Determine whether InheritedObjectType has to be set.
	If CStr(gInheritedObjectType) <> "0" Then
		Ace1.InheritedObjectType = gInheritedObjectType
	End If
	dacl.AddAce Ace1

    Set Ace1 = Nothing
End Function

Function DisplaySyntax
	WScript.StdOut.WriteLine("Syntax:")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("Grant Full mailbox access and SendAs permission to USER based on IMPORT_FILE:")
	WScript.StdOut.WriteLine("    CSCRIPT " & WScript.ScriptName & " -Add DOMAIN\USER IMPORT_FILE")
	WScript.StdOut.WriteLine("    NOTE: """ & OUTPUT_FILENAME & """ will be created for -Remove option ")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("Remove Full mailbox access and SendAs permission based on " & OUTPUT_FILENAME & ":")
	WScript.StdOut.WriteLine("    CSCRIPT """ & WScript.ScriptName & """ -Remove ")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("For all modes, errors are saved to " & ERROR_FILENAME )

	WScript.Quit	
End Function

Özellikler

Makale numarası: 941018 - Last Review: 19 Ekim 2011 Çarşamba - Gözden geçirme: 1.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Exchange Server 2007 Enterprise Edition
  • Microsoft Exchange Server 2007 Standard Edition
  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange 2000 Enterprise Server
  • Microsoft Exchange 2000 Server Standard Edition
Anahtar Kelimeler: 
kbhowto kbinfo kbmt KB941018 KbMttr
Machine-translated Article
Ö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:941018

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com