Sommerzeit mithilfe des Exchange Calendar Update Tool adressieren

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 941018 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Einführung

Sommerzeit ist ein System zum Uhren im voraus festgelegt, sodass auf eine Stunde später Sonnenaufgangs oder Sonnenuntergangs auftreten. Der Effekt ist mehr Tageslicht am Abend. Viele Länder beobachten Sommerzeit. Die meisten dieser Länder haben ihre eigenen Regeln und Vorschriften für die Sommerzeit beginnt und endet.

Die Daten der Sommerzeit (DST) können von Jahr zu Jahr geändert werden. Microsoft Outlook-Benutzer müssen den Outlook-Kalender jedes Mal aktualisieren, die die DST-Regeln ändern. Die Daten zwischen den oben genannten Regeln für die Sommerzeit und die aktuellen DST-Regeln werden in diesem Artikel als der "erweiterten Sommerzeit." bezeichnet

Dieser Artikel beschreibt die Aktionen, die Sie Kalenderelemente in Outlook Adresse durchführen können, die auftreten, während der erweiterten Sommerzeit. Dieser Artikel beschreibt auch die Aktionen, die Sie Unternehmen sollten, um die Elemente im Kalender zu aktualisieren, die neuen DST-Regeln in Microsoft Exchange Server gespeichert sind. Die Lösung, die in diesem Artikel vorgestellt wird beinhaltet Microsoft Exchange Calendar Update Tool ("die Exchange Tool").

Weitere Informationen zum Vorbereiten von Schwankungen der Sommerzeit 2007 (DST 2007) für alle betroffenen Microsoft-Produkten finden Sie auf der folgenden Microsoft-Website:
http://support.Microsoft.com/gp/cp_dst
Im Jahr 2011 erlassen die russische Regierung ein Gesetz Daylight Saving Time (DST) abbrechen. Weitere Informationen finden Sie auf der folgenden Microsoft-Website:
http://support.Microsoft.com/gp/cp_dst#tab0
Weitere Informationen in Russisch finden Sie auf der folgenden Microsoft-Website:
http://support.Microsoft.com/gp/cp_dst/RU#tab0

Weitere Informationen

Über das Exchange-tool

Nach der Installation der DST-Updates für Microsoft Windows alle alten Termine, die auftreten, während der DST-Änderung Zeiträume falsch erscheint dann eine Stunde später. Dies gilt für wiederkehrende und Einzelinstanz-Termine. Sie müssen diese Termine zu aktualisieren, damit sie ordnungsgemäß angezeigt werden, in Outlook, Microsoft Office Outlook Web Access und Anwendungen, die auf Collaboration Data Objects (CDO) basieren.

Outlook stellt ein Tool mit dem Namen Time Zone Data Update Tool für Microsoft Office Outlook ("das Outlook-Tool"). Dieses Tool ermöglicht Benutzern, ihre eigenen Kalender zu aktualisieren.

Weitere Informationen über das Time Zone Data Update Tool klicken Sie auf die folgende Artikelnummer, um den Artikel der Microsoft Knowledge Base anzuzeigen:
931667 Wie die Sommerzeitänderungen 2007 mithilfe von für Microsoft Office Outlook das Time Zone Data Update Tool begegnet
Das Exchange-Kalender Update Tool ("die Exchange Tool") können Sie vermeiden die Schwierigkeiten, die Administratoren haben das Outlook-Tool Allgemein für alle Benutzer bereitstellen und dafür sorgen, dass jeder Benutzer das Outlook-Tool ordnungsgemäß ausgeführt wird.

Allgemeine Beschreibung des Exchange-Tools

Das Exchange-Tool besteht aus zwei separaten ausführbaren Dateien. Diese Dateien werden in der folgenden Tabelle beschrieben.
Tabelle minimierenTabelle vergrößern
Dateiname Beschreibung
Msextmz.exe Diese ausführbare Datei extrahiert Zeitzoneninformationen aus Postfächern auf einem Server, auf dem Exchange Server ausgeführt wird. Außerdem aktualisiert diese ausführbare Datei Postfach Kalender für eine angegebene Liste von Benutzern.
Msextmzcfg.exe Diese ausführbare Datei ist ein Konfigurations-Tool, das meisten Schritte, aktualisieren Sie einen Exchange Server-Server ausführt.

Über die neue Version des Exchange-Tools

Aufgrund des Kundenfeedbacks wurde eine neue Version des Exchange-Tools am 13. August 2007 veröffentlicht. Dieser Artikel bezieht sich auf die neue Version des Exchange-Tools. Wenn Sie eine ältere Version des Exchange-Tools ausführen, deinstallieren Sie das Programm, und installieren Sie die neue Version.

Die neue Version des Tools Exchange beinhaltet die folgenden Verbesserungen:
  • Die Zeitzone Extraktion und Kalender aktualisieren Aresped Prozesse vervierfacht einrichten.
  • Die Benutzeroberfläche für das Konfigurationstool ist Morestreamlined und intuitiv.
  • Die Möglichkeit zum Aktualisieren von Konferenzräumen und Resourcemailboxes wird jetzt das Konfigurations-Tool integriert.
  • Die Möglichkeit zum Aktualisieren von Benutzerpostfächern ist jetzt in Theconfiguration Tool integriert.
  • Ein Dokument zur Fehlerbehebung ist jetzt TheExchange Tool beigefügt und es in das Konfigurations-Tool integriert ist.
  • Algorithmus und Fehler Handlingcapabilities der Zeitzone Extraktion werden verbessert.
  • Der Protokollierungsvorgang ist benutzerfreundlicher.

Risiko der Ausführung des Exchange-Tools

Wenn Sie das Exchange-Tool ausführen, besteht ein Risiko, dass die Einzelinstanz-Termine möglicherweise nicht ordnungsgemäß aktualisiert werden. Z. B. Einzelinstanz-Termine ein Benutzer erstellt, nachdem das Betriebssystem aktualisiert wurde möglicherweise nicht ordnungsgemäß aktualisiert werden.

Um dieses Risiko zu verringern, verwenden Sie eine der folgenden Methoden:
  • Reduzieren Sie dem Intervall zwischen dem Zeitpunkt, Sie die Updateclient Computer und dem Zeitpunkt, Postfach-Kalender zu aktualisieren.
  • Wenn der Computer in der Organisation aktualisiert wurden eine lange Timeago, verwenden Sie die Einstellung Nur Update wiederkehrende Besprechungen in denerweiterten Einstellungen.

    Leute machen in der Regel nicht Createsingle-Instanz Termine viele Monate im voraus. Daher, wenn der DSTupdates viele Monate vor installiert wurden, die meisten Herbst Einzelinstanz-Meetingsthat in der erweiterten Sommerzeit werden erstellt wurden mithilfe der NewDST-Übergangsregeln. Diese Besprechungen müssen nicht aktualisiert werden.
  • Wenn Sie das genaue Datum, wenn alle Client-Computerswere aktualisiert kennen, verwenden Sie die Betriebssystem-Patch-Datum -Einstellung in denerweiterten Einstellungen. Wenn ein Datum angegeben wird, werden einzelne Instanceappointments, die nach diesem Datum erstellt wurden durch die Exchangetool nicht aktualisiert.
Hinweis Wenn Sie das Outlook-Tool oder das Exchange-Tool ausführen, auf einem Clientcomputer, auf denen Windows Vista ausgeführt wird und Postfächer, in denen die Landeszeitzone New Zealand Standard Time ist, das Tool ausführen, müssen Sie das Tool ein zweites Mal am oder nach dem 1. Januar 2008 ausführen. Weitere Informationen finden Sie im Abschnitt "Bekannte Probleme".

Optionen, um Postfächer zu aktualisieren

In der folgende Tabelle werden fünf Optionen, mit denen Sie Benutzerpostfächer zum Verwenden der Sommerzeit 2007 Zeitzonenregeln aktualisieren aufgeführt.
Tabelle minimierenTabelle vergrößern
Option Profis Nachteile
Verteilen Sie das Outlook-Tool für jeden Benutzer, und weisen Sie Benutzern, ihre eigenen Postfächer zu aktualisieren. Diese Option vermeidet die Risiken, die mit der Ausführung des Exchange-Tools ist. Es ist schwierig, sicherzustellen, dass alle Benutzer das Outlook-Tool ordnungsgemäß und rechtzeitig ausgeführt werden soll.

Benutzer, die keinen Outlook werden das Outlook-Tool ausgeführt.

Sie müssen zusätzliche erzieherischen, zu Verwirrung bei Benutzern zu vermindern bemühen.
Führen Sie das Exchange-Tool für alle betroffenen Benutzer und Server. Diese Option bietet Benutzern eine optimierte Nutzung. Es ist ein Risiko im Zusammenhang mit Ausführen des Exchange-Tools, wie im Abschnitt "Ausführen des Exchange-Tools Risiko" beschrieben.
Führen Sie das Exchange-Tool, um nur Terminserien zu aktualisieren. Können Sie Benutzer Einzelinstanz-Termine in ihren eigenen Postfächern mithilfe des Outlook-Tools aktualisieren. Es gibt weniger Risiko Einzelinstanz-Termine falsch aktualisiert. Die Nachteile der Ausführung des Outlook-Tools werden mit der Nachteile der Ausführung des Exchange-Tools kombiniert.
Führen Sie das Tool Exchange weder das Outlook-Tool. Fordern Sie die Benutzer, ihre Kalender prüfen und Termine bei Bedarf erneut zu buchen. Diese Option vermeidet die Risiken, die mit der Ausführung des Exchange-Tools ist. Wenn nicht alle Benutzer alle betroffenen Termine erneut eintragen, werden einige Kalenderelemente während der erweiterten Sommerzeit eine Stunde deaktiviert sein.

Sie müssen zusätzliche erzieherischen, zu Verwirrung bei Benutzern zu vermindern bemühen.
Verteilen Sie das Outlook-Tool für jeden Benutzer, und weisen Sie Benutzern, ihre eigenen Postfächer zu aktualisieren. Verwenden Sie dann des Zeitzone Extraktion Modus des Exchange-Tools um zu bestimmen, ob Benutzer das Outlook-Tool ausführen.

Wenn der Benutzer das Outlook-Tool nicht ausgeführt werden, kann der Administrator das Exchange-Tool ausführen.
Diese Option verringert das Risiko, dass Benutzer das Tool nicht rechtzeitig ausführen, und vermeidet die Risiken, die mit der Ausführung des Exchange-Tools ist. Dies ist keine Alternative, wenn der Benutzer Microsoft Office Outlook 2007 verwenden.

Installieren Sie das Exchange-tool

Das Exchange-Kalender-Update-Tool wird in Form einer selbstextrahierenden ausführbaren Datei (Msextmz.exe) heruntergeladen. Dieses Tool steht zum Download im Microsoft Download Center zur Verfügung:

Bild minimierenBild vergrößern
Herunterladen
Downloaden Sie das Exchange-Kalender-Update-Tool-Paket jetzt.

Zum Installieren und verwenden Sie das Exchange-Tool ist ein virtueller Computer erstellt. Der virtuelle Computer basiert auf Microsoft Windows Server 2003, Outlook 2007, Microsoft Office Excel 2007 und Microsoft Office Word 2007. Der virtuelle Computer funktioniert in beiden Connectix Virtual PC und Microsoft Virtual Server 2005 R2.

Weitere Informationen zu dem virtuellen Computer für Exchange Calendar Update Tool klicken Sie auf die folgende Artikelnummer, um den Artikel der Microsoft Knowledge Base anzuzeigen:
933185 Eine virtuelle Maschine steht zur Bereitstellung Sommerzeit 2007 Kalenderaktualisierungen in einer Exchange-Organisation
Für weitere Informationen darüber, wie Sie Microsoft Support-Dateien herunterladen können, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
119591 So erhalten Sie Microsoft Support-Dateien von Online-Diensten
Microsoft hat diese Datei auf Viren überprüft. Microsoft hat die zum Zeitpunkt der Veröffentlichung der Datei aktuell verfügbare Virenerkennungssoftware verwendet. Die Datei wird auf Servern mit erhöhter Sicherheit gespeichert, wodurch nicht autorisierten Änderungen an der Datei vorgebeugt wird.

Mit dem Tool Exchange unterstützten Sprachen

Das Exchange-Tool ist nur in Englisch verfügbar. Das Tool wird nur auf einem Computer mit englischen (USA) ausführen.

Exchange Server-Versionen, die mit dem Tool Exchange kompatibel sind

Das Exchange-Tool kann auf die folgenden Versionen von Exchange Server-Postfächer aktualisieren:
  • 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

Betriebssysteme, die durch das Exchange-Tool unterstützt werden

Das Exchange-Tool wird auf 32-Bit-Versionen der folgenden Betriebssysteme ausgeführt werden:
  • Microsoft Windows Server 2003
  • Microsoft Windows XP
  • Windows Vista

Was ist zu tun, bevor Sie das Exchange-Tool ausführen

Installieren von updates

Bevor Sie das Exchange-Tool ausführen, stellen Sie sicher, dass Client und Server-Computern korrekt aktualisiert werden. Dazu installieren Sie das Windows-Sommerzeitupdate auf Clients und Servern. Klicken Sie für weitere Informationen auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
942763 Kumulatives Zeitzonenupdate für Microsoft Windows-Betriebssysteme von Dezember 2007

Wenn Sie Microsoft Exchange Server 2003 Service Pack 2 (SP2) ausführen, installieren Sie nach Bedarf für Ihre Organisation eine oder beide der folgenden Updates:
  • 911829 aktualisieren
  • 924334 aktualisieren
Weitere Informationen zu diesen Updates klicken Sie auf die folgenden Artikelnummern klicken, um die betreffenden Artikel in der Microsoft Knowledge Base anzuzeigen:
911829 Wenn Sie versuchen, alle Bearbeitungsaufgaben durchführen, oder Sie klicken müssen, um den Frame Verfassen im Outlook Web Access aktivieren, erhalten eine Fehlermeldung
924334 Das Verfassen von Nachrichten Formular reagiert nicht mehr nach der Installation von Internet Explorer 7.0 und das S/MIME-Steuerelement auf einem Outlook Web Access-Client in Exchange Server 2003
Wenn Benutzer in Jerusalem, zentrale brasilianische oder Südamerika E. Zeitzone befinden, lesen Sie die Anleitung im folgenden Artikel der Microsoft Knowledge Base:

943390 Einige Outlook-Kalendereinträge werden bei Verwendung von Outlook Time Zone Data Update Tool für Sommer-und Winterzeit in bestimmten Zeitzonen anpassen nicht korrekt zurückgesetzt

Prüfen der Systemvoraussetzungen

Sie müssen das Exchange-Tool nur auf einem Computer ausführen, für die die folgenden Bedingungen erfüllt sind:
  • Der Computer verfügt über Microsoft Office Outlook 2003 Service Pack 2 (SP2) oder Microsoft Office Outlook 2007 installiert ist.
  • Der Computer hat die Outlook-Zeitzone-Daten Toolinstalled.
  • Microsoft.NET Framework Version 2.0 ist auf denClientcomputer installiert.
Sie können nicht das Exchange-Tool auf einem Computer ausführen, auf dem Exchange Server oder die Exchange-Systemverwaltungstools ausgeführt wird. Wenn Sie versuchen, das Exchange-Tool auf einem Computer mit Exchange Server oder die Exchange-Systemverwaltungstools installieren, wird sinngemäß die folgende Fehlermeldung angezeigt:
Microsoft Exchange Kalender-Updateprogramm kann mit Microsoft Exchange installiert werden.

Überprüfen Sie Berechtigungen und anderen Benutzeranforderungen

Stellen Sie sicher, dass die folgenden Bedingungen erfüllt sind:
  • Verwalten von Informationsspeichern, die Berechtigungen für jedes ExchangeServer-Nachrichtendatenbank (MDB) aktualisiert werden.
  • Die Berechtigungen Senden Sie als für alle Postfächer Areupdated.
  • Vollständiger Postfachzugriff Berechtigungen für alle Postfächer Areupdated.
  • Lokale Administratorrechte erteilen, ist auf dem Computer mit dem Exchange-Tool.

Über das Skript "Postfach-Berechtigung erteilen"

Das Beispielskript GrantMailboxPermission.vbs können Benutzer Vollständiger Postfachzugriff und Senden als-Berechtigungen auf alle Postfächer zu einer Domäne gewähren.

Dieses Skript kann nur von einem Exchange Server-Administrator auf einem Computer ausgeführt werden, auf denen Exchange 2000 Server oder Exchange Server 2003 ausgeführt wird. Dieses Skript kann nicht auf einem Computer ausgeführt werden, auf denen Exchange Server 2007 ausgeführt wird. Der Exchange-Verwaltungsshell können Sie jedoch um die erforderlichen Berechtigungen zu erteilen.

Der Code für das VBS-Skript ist im Abschnitt "Informationsquellen" bereitgestellt. Die folgende Tabelle beschreibt die Modi, in denen das Skript ausgeführt wird.
Tabelle minimierenTabelle vergrößern
Modus Befehl Beschreibung
Hinzufügen CScript GrantMailboxPermission.vbs ? hinzufügen Domänenname \ Benutzername Dateiname Diesen Befehl erhält das Domänenname \ Benutzername Vollständiger Postfachzugriff und Senden als Benutzerberechtigungen für Benutzerpostfächer, die in der Eingabedatei aufgeführt sind.

Die Eingabedatei muss eine Textdatei sein, die ältere Domänennamen der Benutzerpostfächer enthält. Diese Namen müssen durch Carriage Return + Line Feed (CRLF) begrenzt werden.

Das Skript generiert eine GrantMailboxPermission.log-Datei. Diese Datei ist ein Datensatz der Postfächer, die verarbeitet wurden. Die erste Zeile der Protokolldatei ist der Domänenname \ Benutzername Benutzer, der Zugriff gewährt wird. Löschen Sie diese Datei nicht. Diese Datei wird im entfernen-Modus verwendet.

Wenn ein expliziter Zugriff "Verweigern" für den Benutzer zugewiesen ist, meldet das Skript die Informationen in einer Datei mit dem Namen "GrantMailboxPermission.err". Das Skript erteilen oder ändern die Berechtigung nicht.

Wenn der Benutzer einer Sicherheitsgruppe, die gehört "Zugriff verweigern" zugewiesen wurde, gewährt das Skript Vollständiger Postfachzugriff und Senden als-Berechtigungen. Der Benutzer werden kann nicht auf das Postfach anmelden. Alle Fehler werden in der Datei GrantMailboxPermission.err protokolliert.
Entfernen CScript GrantMailboxPermission.vbs ? entfernenDieser Befehl entfernt Berechtigungen "Vollständiger Postfachzugriff" und "Senden als" auf die Postfächer, die in der Datei GrantMailboxPermission.log aufgeführt sind die Domänenname \ Benutzername Benutzer. Die Domänenname \ Benutzername Benutzer ist in der Datei GrantMailboxPermission.log angegeben.
Hinweise
  • Wenn Sie dieses Skript auf dem Computer, der Exchange-Server ist ausführen, gibt das Skript einem Punktzeichen (.) zurück, wenn die Scriptsuccessfully einen Benutzer verarbeitet. Das Skript gibt eine Pointcharacter Ausrufezeichen (!) zurück, wenn das Skript einen Benutzer nicht erfolgreich aufbereitet.
  • Die Ausgabedatei des Modus Zeitzone Extraktion kann als Eingabedatei für dieses Skript Wiederaufbauhilfe nicht. Um die Eingabedatei für Thisscript zu erstellen, fügen Sie den Inhalt der Zeitzone Extraktion Modus Output-Datei IntoNotepad, speichern Sie den Inhalt als neues Dokument und verwenden Sie dann das neue Dokument als Eingabedatei.

Wie Sie das Exchange-tool

Um das Exchange-Tool zu verwenden, starten Sie das Exchange Calendar Update Configuration-Tool (Msextmzcfg.exe). Dieses Programm hilft Ihnen bei der gesamten Kalender aktualisieren.

Ausführen des Extrahierungsvorgangs Zeitzone

Um Postfach-Kalender zu aktualisieren, müssen Sie die Zeitzone der Kalender festlegen. Extraktion Zeitzone untersucht die Eigenschaften und die Termine der Kalender Postfach bestimmen die Zeitzonen. Um den Extraktionsvorgang Zeitzone auszuführen, gehen Sie folgendermaßen vor:
  1. Klicken Sie auf der Seite Willkommen auf Weiter.

    Hinweis Die Seite Willkommen stellt Ihnen Konfigurations-Tool-Anddiscusses die Berechtigungen, die erforderlich sind, um das Tool auszuführen. Seite Alsoprovides, einen Link zu diesem Artikel.
  2. Legen Sie die Einstellungen für das Konfigurationsdienstprogramm. Eswird empfohlen, mindestens 200 Megabyte (MB) Tologging für Festplatten-Speicherplatz zu reservieren.

    Wenn Sie die Standardeinstellungen ändern möchten, klicken Sie aufErweiterte Einstellungen. Weitere Informationen zu den Advancedsettings finden Sie unter der Tabelle, die dieser Prozedur folgt.
  3. Wählen Sie die Exchange-Servern in der lokalen Gesamtstruktur des aktiven VerzeichnisVerzeichnis, die Sie aktualisieren möchten. Klicken Sie aufWeiter um die Zeitzone Extrahierung zu starten.

    Hinweis Wenn Zeitzone extrahieren Sie bereits ausgeführt haben, können Sie Skipthis Schritt, indem Sie auf Überspringen.

    Beachten Sie, dass ein Statusbar, einen Link zur Ausgabelogs und eine Echtzeitanzeige der Prozess der Zoneextraction angezeigt werden. Klicken Sie auf Weiter, nachdem die Zeitzone Extraktion Prozess Iscomplete.

    Wenn Fehler aufgetreten sind, wird die ALink-Tool zur Problembehandlung Dokument angezeigt.
  4. Konfigurieren der Postfächer mit Nr. TimeZones -Seite, und klicken Sie auf Weiter um Calendaritems zu scannen.

    Hinweis Findet das Tool für Benutzer, die keinen Mailbox-Ebene Propertiesthat ihrer Zeitzone anzugeben, sucht das Tool tatsächliche Besprechungen und Appointmentsinside dieser Kalender, um die Zeitzone zu bestimmen. Sie können Kalenderelemente begriffener angeben, die das Konfigurationstool scannen soll. Thelarger die Anzahl der Elemente, die Sie angeben, desto länger dauert die Überprüfung Vorgang.
  5. Auf der Seite Displaynames unbekannten Zeitzone lösen fordert das Tool Sie Zeitzonen, die das Tool erkennt ein bekanntes Betriebssystem-Zeitzone zugeordnet. Nachdem Sie dies getan haben, klicken Sie aufWeiter
  6. Findet das Konfigurations-Tool für Benutzer, die Multipletime Zonen haben, werden Sie aufgefordert, manuell der Konflikt durch Angabe onetime-Zone mit dem Kalender des Benutzers aktualisiert. Nachdem Sie dies durchgeführt haben, klicken Sie aufWeiter.
  7. In der Seite Speichern Postfach DNs mit nicht aufgelösten TimeZones trennen alle übrigen Benutzer, die noch keine Zoneinformation Zeit haben oder, noch die Zoneninformationen werden in Konflikt stehende Zeit haben Ina aufgezeichnet Protokolldatei. Klicken Sie auf Weiter.
Die Extraktion der Zeitzone ist nun abgeschlossen. Die Liste der Benutzer und der extrahierten Zeitzonen befindet sich in der Ausgabedatei (Output.txt) im Installationsverzeichnis.

Erweiterte Einstellungen

Die folgende Tabelle beschreibt die erweiterten Einstellungen, die Sie in Schritt 2 des vorherigen Verfahrens konfigurieren können.
Tabelle minimierenTabelle vergrößern
EinstellungFunktionalitätSzenarioÜberlegungen zuAnwendungsbereich
Wiederkehrende Besprechungen nur aktualisierenDiese Einstellung aktualisiert nur wiederkehrende Besprechungen, die betroffen sind von der DST-Änderung. Einzelinstanz-Termine, die in der erweiterten Sommerzeit liegen, werden nicht aktualisiert, unabhängig davon, ob diese aktualisiert werden sollen.Wenn der Computer in der Organisation vor langer Zeit aktualisiert wurden, verwenden Sie diese Einstellung.

Normalerweise erstellen Personen nicht Einzelinstanz-Termine viele Monate im voraus. Daher Wenn die DST-Updates viele Monate vor installiert wurden, werden die meisten der Einzelinstanz-Besprechungen, die in der erweiterten Sommerzeit fallen erstellt wurden mit den neuen DST Übergangsregeln. Diese Besprechungen müssen nicht aktualisiert werden.
Wenn ein Benutzer eine Einzelinstanz-Besprechung viele Monate im Voraus erstellt, wird dieser Besprechung nicht aktualisiert, ist diese Einstellung angegeben ist.Diese Einstellung gilt für alle Postfächer, alle Konferenzräume und alle Benutzerkalender.
Betriebssystem-Patch-Installation abDiese Einstellung gibt an, dass die Einzelinstanz-Termine, die erstellt oder aktualisiert werden nach dem Datum, das Sie angeben, nicht aktualisiert werden.Verwenden Sie diese Einstellung, wenn Sie das genaue Datum wissen, wann alle Clientcomputer aktualisiert wurden.

Wenn Sie dies tun, werden Sitzungen, die erstellt werden, nachdem das Update installiert ist, nicht aktualisiert. Diese Besprechungen fallen unter die neue Zeitzonenregeln.
Diese Einstellung gilt nur, wenn die Client-Computer innerhalb von weniger als 24 Stunden aktualisiert wurden, und wenn es hohe Marktdurchdringung des Updates. (Es ist hohe Marktdurchdringung im hohen Bereich 90 Prozent wird der Prozentsatz der Computer in der Organisation, die aktualisiert wurden.)

Darüber hinaus können Administratoren nur ein Datum angeben. Besprechungen, die in verschiedenen Zeitzonen erstellt werden, die bestimmte Updates entsprechen und an bestimmten Zeitzonen muss aktualisiert werden.

Für Konferenzräume ist, die nur Konferenz aktualisiert in bestimmten Zeitzonen stehen.

Anwender-Mailboxen ist, dass wenn die Einstellung des SuppressExchange oder der SuppressAll nicht angegeben ist, nur bestimmte Zeitzonen gehören Benutzerpostfächer aktualisiert werden.
Diese Einstellung gilt für alle Postfächer, alle Konferenzräume und alle Benutzerkalender.
SuppressExchange und "MaxDepth"Diese Einstellungen bewirken, dass alle Termine im Kalender des Benutzers, die betroffen sind von der Änderung der Sommerzeit aktualisiert werden, unabhängig davon, ob der Benutzer die Elemente im Kalender des Organisators.

Wenn der Benutzer den Organisator eines Kalenderelements ist, sind Aktualisierungen nicht an Teilnehmer gesendet, die Exchange-Postfächer verfügen. Aktualisierungen werden an die Teilnehmer gesendet, die keine Exchange-Postfächer verfügen.

Die Einstellung "MaxDepth" gibt die Ebene der Aufgliederung der Verteilerliste, die ausgeführt wird, um zu bestimmen, welche Teilnehmer haben, Exchange-Postfächer und die Teilnehmer nicht.
Verwenden Sie diese Einstellung, wenn Sie nicht möchten, dass Exchange-Benutzer auf Besprechungsaktualisierungen von Organisatoren für Besprechungen, die von der erweiterten Sommerzeit betroffen sind.

Die SuppressExchange -Einstellung ist besser als die SuppressAll -Einstellung, wenn die Organisation nicht auf Exchange Server - Kalender-Systeme hat und Besprechungen geplant sind, um Teilnehmern gehören, die sich außerhalb der Organisation befinden.
Keine Besprechungsaktualisierungen gesendet werden, mit Ausnahme von nicht-Exchange-Benutzern. Um sicherzustellen, dass Kopien der gleichen Sitzung für alle möglichen Teilnehmer aktualisiert werden, muss daher alle Postfächer in der Organisation aktualisiert werden.

Diese Bedingung kann die Anzahl der Postfächer deutlich, die aktualisiert werden müssen. Aus diesem Grund können die Verarbeitungszeiten erhöht werden.

Bei großen, geschachtelte Verteilerlisten in der Teilnehmerliste sind, ist es eine kostenintensive Prozess der Teilnehmer einer Besprechung bestimmen und ermitteln, ob die Teilnehmer Exchange-Postfächer verfügen. Wenn Sie diese Einstellung festzulegen und einen hohen Wert für den Parameter "MaxDepth" festlegen, kann eine erhebliche Last auf den Domänencontrollern gebracht.
Diese Einstellung gilt nur für Benutzerpostfächer.
SuppressAllBei dieser Einstellung werden alle Termine im Kalender des Benutzers, die betroffen sind von der Änderung der Sommerzeit aktualisiert werden, unabhängig davon, ob der Benutzer die Elemente im Kalender des Organisators.

Wenn der Benutzer den Organisator eines Kalenderelements ist, sind Aktualisierungen nicht an die Teilnehmer gesendet.
Verwenden Sie diese Einstellung, wenn Sie nicht möchten, Teilnehmer Besprechungsaktualisierungen von Organisatoren für Besprechungen zu erhalten, die der erweiterten Sommerzeit betroffen sind.Keine Besprechungsaktualisierungen werden gesendet. Um sicherzustellen, dass Kopien der gleichen Sitzung für alle möglichen Teilnehmer aktualisiert werden, muss daher alle Postfächer in der Organisation aktualisiert werden.

Diese Bedingung kann die Anzahl der Postfächer deutlich, die aktualisiert werden müssen. Aus diesem Grund können die Verarbeitungszeiten erhöht werden.

Teilnehmer, die keine Exchange-Postfächer verfügen, erhalten keine Updates. Ihre Termine können nicht aktualisiert werden, je nach dem e-Mail-System, auf dem sie ausgeführt werden und je nach den Aktionen, die ihr Administrator.
Diese Einstellung gilt nur für Benutzerpostfächer.

Konferenzräume und Ressourcenpostfächer aktualisieren

Konferenzräume und Ressourcenpostfächer um Buchung Konflikte zu vermeiden müssen aktualisiert werden. Gehen Sie hierzu folgendermaßen vor:
  1. Geben Sie auf der Seite Ressourcen angeben und Konferenz RoomCalendars oder fügen Sie der Liste der Aliase der Konferenz Roomsin Ihrer Organisation. Klicken Sie auf Auflösen , um Aliase zu überprüfen, und klicken Sie dann auf Weiter.
  2. Auf der Seite beheben Zeitzonen für Resource Veranstaltungsfläche Raum Kalender fordert Sie das Tool zum Manuallyspecify der Zeitzone für einen Konferenzraum Wenn der Konferenzraum Link eine Zeitzone ist. Dazu ein, und klicken Sie dann auf Weiter.
  3. Eine Erinnerungsseite wird angezeigt, um Sie daran zu erinnern, die Tools zum Aktualisieren von Kalendern. Klicken Sie auf Weiter.
  4. Beachten Sie, dass eine Statusleiste, eine Verknüpfung zu den Ausgabelog und areal-Anzeige der Ausgabe des Tools angezeigt werden. Klicken Sie aufWeiter.

    Wenn Fehler auftreten, wird eine Verknüpfung zum Dokument Thetroubleshooting am unteren Rand dieser Seite angezeigt.

Postfach Benutzer aktualisieren

Gehen Sie hierzu folgendermaßen vor:
  1. Konfigurieren Sie auf der Seite Einstellungen für Benutzer MailboxCalendars aktualisieren der Einstellungen für das Update.

    Ifyou nicht den SuppressExchange oderSuppressAll Erweiterte Einstellungen angegeben haben, wählen Sie den Zeitzonen, Areaffected von DST. Wählen Sie andernfalls alle Zeitzonen.

    Klicken Sie aufWeiter.
  2. Eine Erinnerungsseite wird angezeigt, um Sie daran zu erinnern, die Tools zum Aktualisieren von Kalendern. Klicken Sie auf Weiter.
  3. Beachten Sie, dass eine Statusleiste, eine Verknüpfung zu den Ausgabelog und areal-Anzeige der Ausgabe des Tools angezeigt werden. Klicken Sie nach dem Update Iscomplete auf Weiter.

    Wenn Fehler auftreten, wird am unteren Rand Attributbeziehungen ALink-Tool zur Problembehandlung Dokument angezeigt.
  4. Klicken Sie auf Fertig stellen.

Exchange-Tool Log-Dateien und Unterverzeichnisse

Log-Dateien

Das Exchange-Tool erstellt die folgenden Protokolldateien in das Installationsverzeichnis:
  • Output.txt

    Diese Datei enthält eine Liste aller Benutzer Postfächer Projekten gemeinsam mit ihren Zeitzoneninformationen extrahiert.
  • TimeZoneExtraction.log

    Dieses Protokoll enthält die kombinierte Ausgabe des Zeitpunkt Zoneextraction Prozesses für alle Server.
  • ResourceUpdate.log

    Dieses Protokoll enthält die Ausgabe über den Aktualisierungsvorgang für die Konferenzräume und für die Ressourcenpostfächer.
  • UserUpdate.log

    Dieses Protokoll enthält die kombinierte Ausgabe des Aktualisierungsprozesses Usermailbox für alle Server.
  • CalendarScan.log

    Dieses Protokoll enthält die kombinierte Ausgabe des Calendarscan-Prozesses für alle Server.
  • ConflictUsers.txt

    Dieses Protokoll enthält eine Liste der Benutzer mit Conflictingtime Zonen. Z. B. Angeben der Benutzer Eigenschaften dieses Theybelong an mehreren Zeitzonen.
  • NonExistent.txt

    Dieses Protokoll enthält eine Liste der Benutzer, die keine Zoneinformation Zeit haben.

Unterverzeichnisse

Das Exchange-Tool erstellt die folgenden Unterverzeichnisse im Installationsverzeichnis:
  • Ressource

    Dies ist das Unterverzeichnis arbeiten für den Update-Zuständen der Konferenzräume und für die Ressourcenpostfächer. Dieser Directorycontains die folgenden Dateien:
    • Msextmz.log

      Dies ist die Ausgabedatei des Exchange-Tools für den Update-Vorgang.
    • Magellanverzeichnis

      Diese Datei enthält die Liste der Postfächer.
    • Processed.txt

      Diese Datei enthält die Liste der Postfächer, die erfolgreich aktualisiert wurden.
    Hinweis Alle arbeiten Unterverzeichnisse enthalten die folgenden Dateien.

    TheResource-Unterverzeichnis enthält außerdem das folgende Unterverzeichnis:
    • Log-Dateien

      Dieses Unterverzeichnis enthält Update-Protokolle für jedes Postfach, das erfolgreich aktualisiert wurde. Jedes Protokoll sollte eine Liste der Sitzungen enthalten, die aktualisiert wurden.
  • Servername

    Gibt es ein Unterverzeichnis für jede Serveron, die die Zeitzone Extraktion verarbeiten oder eine Aktualisierung des Kalenders ausgeführt wurde.Diese Unterverzeichnisse enthalten die folgenden Unterverzeichnisse:
    • CalendarScan

      Dies ist das Unterverzeichnis arbeiten für den Scanprozess Kalender.
    • Extrahieren

      Dies ist das Unterverzeichnis arbeiten für die Extraktion der Zeitzone.
    • Update

      Dies ist das Unterverzeichnis arbeiten für die Aktualisierung von Benutzer-Postfach. Es enthält das folgende Unterverzeichnis:
      • Log-Dateien

        Dieses Unterverzeichnis enthält Update-Protokolle für jedes Postfach, das erfolgreich aktualisiert wurde. Jedes Protokoll sollte eine Liste der Sitzungen enthalten, die aktualisiert wurden.

Vorgehensweise nach dem Ausführen des Exchange-Tools

Klicken Sie nach dem Ausführen des Exchange-Tools auf allen Exchange-Servern in Ihrer Umgebung gelten Sie die entsprechenden Exchange Server DST-Aktualisierungen. In der folgende Liste wird von Exchange Server-Version und die Service Pack-Stufe organisiert. Installieren Sie die Updates für Ihre Version von Exchange Server in der Reihenfolge.

Exchange Server 2007
940006 Hinweise zum Updaterollup 4 für Exchange Server 2007
Updaterollup 4 für Exchange Server 2007 enthält die folgenden DST-Updates:
  • 937656 Nach dem Start von Sommerzeit (DST) in Neuseeland 2007 treten Probleme in Outlook Web Access für Exchange 2007
  • 932561 Termine, die von einer Exchange-Organisation zu einer anderen gesendet werden, mithilfe von Exchange 2007 möglicherweise falsch um eine Stunde in der Zeitzone Western Australia ist eine Organisation
Exchange Server 2003 SP2
926666 Update bei Sommerzeit-Änderungen von 2007 für Exchange 2003 Service Pack 2
931915 Update für Neufundland Sommerzeit-Änderungen von 2007 für Exchange Server 2003 Service Pack 2
929895 Termine, die zwischen verschiedenen Exchange Server-Organisationen gesendet werden um eine Stunde möglicherweise falsch als eine der in der Zeitzone Western Australia ist
937653 Treten eines oder mehrere Probleme in Exchange Server 2003 nach der Sommerzeit für Neuseeland Änderungen im Jahr 2007
Exchange Server 2003 SP1
940123 Treten Probleme in Exchange 2003 Servicepack 1 nach Sommerzeit (DST) in Neuseeland 2007 gestartet wird

Bekannte Probleme

  • Wiederkehrende Besprechungen, die in Outlook Web Access erstellt werden, werden nicht durch das Exchange-Tool aktualisiert

    Wenn Sie die Exchange Server-Updates auf TheExchange Server installieren, bevor Sie die Postfächer aktualisieren wiederkehrende Besprechungen in Outlook Web Access, Arecreated werden durch das Exchange-Tool nicht aktualisiert.

    Um dieses Problem zu beheben, die Exchange Server-Updates entfernen und Neuinstallieren von Exchange Server-Updates auf die Exchangeserver TheExchange ausführen.
  • Exchange 2007 muss neu gestartet werden, nachdem Sie das Exchange-Tool ausführen

    Wenn Sie Kalenderelemente richtig anzeigen zu können, müssen Sie Restartthe Exchange-Dienste nach dem Ausführen des Exchange-Tools für Standardtelefonansagen für Outlook Web Access 2007.
  • Das Exchange-Tool kann nicht installiert werden.

    Das Exchange-Tool nicht erfolgreich installiert Ifeither der folgende Registrierungsschlüssel vorhanden ist:
    • HKEY_CLASS_ROOT\Outlook.Application.9
    • HKEY_CLASS_ROOT\Outlook.Application.10
    In diesem Szenario wird der folgende Fehler Nachricht Sie versuchen, das Exchange-Tool zu installieren:
    Exchange-Tool zum neuen Basisadressen von ServerCalendar kann mit dieser Version von Übermittlungsoptionen installiert werden.
    Um dieses Problem zu umgehen, löschen Sie diesen Registrierungsschlüssel, installieren Sie das Exchange-Tool und dann wiederherstellen Sie die Registrykeys.

    Wichtig Dieser Abschnitt bzw. die Methode oder Aufgabe enthält Schritte, die erklären, wie Sie die Registrierung ändern. Allerdings können schwerwiegende Probleme auftreten, wenn Sie die Registrierung falsch ändern. Stellen Sie daher sicher, dass Sie die folgenden Schritte sorgfältig ausführen. Für zusätzlichen Schutz, sichern Sie die Registry, bevor Sie sie ändern. Anschließend können Sie die Registrierung wiederherstellen, falls ein Problem auftritt. Für weitere Informationen wie Sie der Registry sichern und wiederherstellen, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
    322756 Wie Sie die Registrierung in Windows sichern und wiederherstellen können?
  • Es gibt eine Beschränkung für die Anzahl der Postfächer, die pro Server verarbeitet werden können

    In der Benutzerliste Modus und Zeitzone Extraktion können mode,Msextmz.exe nur 65.535 Postfächer auf einem Server verarbeiten. Wenn der Server Hasmore als 65.535 Postfächer, einige Postfächer nicht verarbeitet werden.
  • Öffentliche Ordner-Kalender werden nicht aktualisiert.

    Das Tool Exchange aktualisiert öffentliche Foldercalendars nicht. Weitere Informationen dazu, wie Sie einen öffentlichen Ordner Kalender aktualisieren, sehen die Dokumentation für das Outlook-Tool.
  • Sie können das Outlook-Tool und das Exchange-Tool in der gleichen Umgebung ausführen.

    Wenn Sie dem Exchange-Tool für ein Postfach, hatbereits ausführen wurde aktualisiert mit dem Outlook-Tool (oder umgekehrt), keine Sideeffects auftreten. Jedoch wenn Sie das Exchange-Tool ausführen, besteht keine Notwendigkeit für Benutzer Thorn das Outlook-Tool separat.
  • Nicht-Meeting Erinnerungen werden später als erwartet angezeigt.

    Erinnerungen für Postfächer, die nicht-Besprechung aktualisiert durchDie Exchange Tool werden nicht aktualisiert, wenn Outlook noch nie mit der Mailboxin Online-Modus verbunden wurde. In diesem Fall werden Erinnerungen eine Stunde später Thanexpected.

    Wenn Outlook noch nie die falschen Erinnerungen für Termine im Kalender im Onlinemodus Sie Mustadjust verbunden war, die Outlook-Toolfinds. Darüber hinaus ist der Suchordner Erinnerungen nicht im Postfach vorhanden.Aus diesem Grund aktualisiert das Tool nicht e-Mail-Nachrichten, Kontakte oder andere Daten eingeben.

    Das Tool aktualisiert z. B. nicht die Erinnerung an eine e-Mail-Itemto-Nachverfolgung zu einem Zeitpunkt in der Zukunft. Das Tool aktualisiert auch nicht Thereminder auf ein Aufgabenelement, das einer Erinnerung.
  • Sie erhalten eine Fehlermeldung: "kann nicht installiert werden, da frühere Versionen von 'Microsoft Exchange Calendar Update Tool' erkannt wurden. Deinstallieren Sie diese, und führen Sie Setup erneut"

    Wenn Sie Exchange-Kalender-UpdateTool Version 1.0 bereits installiert haben, müssen Sie diese Version vor der Installation von ExchangeCalendar Update Tool Version 2.0 deinstallieren.

    Exchange Kalender-Update Toolversion 1.0 war eine selbstextrahierende ausführbare Datei, Containedtwo MSI-Pakete (Msextmz.msi und Msextmzcfg.msi) verteilt. Sie müssen vor der Installation von Version 2.0 des Tools Exchange Bothpackages deinstallieren.

    Wenn Youstill Probleme bei der Installation von Version 2.0 des Tools Exchange, versuchen Sie es erneut installieren und deinstallieren Sie dann Version 1.0 des Tools Exchange. Dazu müssen die MSI-Pakete nicht mithilfe der Funktion " RemovePrograms " in der Systemsteuerung mit. Starten Sie dann den Computer neu, und dann die Version 2.0 des Exchange-Tools installieren.

    Wenn dieses Verfahren Erfolg, extrahieren Sie die Binärdateien direkt von MSI-Paketen.
  • Wenn Sie Outlook oder Exchange Update-Tools ausführen, sind Termine um eine Stunde für Postfächer, in denen die Landeszeitzone New Zealand Standard Time ist

    Dieses Verhalten tritt auf, wenn die folgenden Szenarien Aretrue:
    • Führen Sie Outlook oder Exchange Update-Tools auf einem Computer, auf dem Windows Vista ausgeführt wird.
    • Die Landeszeitzone der Postfächer, die aktualisiert werden ist New Zealand Standard Time.
    Um dieses Problem zu umgehen, müssen Sie die Outlook-OrExchange-Update-Tools für die Postfächer ein zweites Mal am oder nach dem 1. Januar 2008 ausführen.

    Dieses Verhalten tritt auf, weil Windows Vista Zeit Zoneinformation anders behandelt als mit anderen Versionen von Windows. Wenn Sie keine TheOutlook oder Exchange-Update-Tools erneut am oder nach dem 1. Januar 2008, ausführen wird um eine Stunde im zweiten DST-Ereignis Allappointments deaktiviert sein. Die zweite DSTevent enthält Daten vom 16. März 2008 bis 6. April 2008.

    Fall möchte warten, bis zum 1. Januar 2008 Termine in der zweiten DSTevent aktualisieren können, führen Sie das Outlook oder Exchange Tools auf einem Computer, Isrunning Windows XP oder Windows Server 2003 zu aktualisieren.
  • Ein Datum im Format MM/TT/JJJJ ändert sich in das Format M/DD/YYYY

    Sie haben die Option Betriebssystem Patch in Exchange Calendar Update Tool festlegen. Wenn Sie dies tun, funktioniert Exchange Calendar Update Tool funktioniert nicht ordnungsgemäß. Dieses Problem tritt auf, weil das Datumsformat MM/TT/JJJJ in M/DD/YYYY geändert wird.

    Darüber hinaus wird eine Fehlermeldung angezeigt, die die folgenden Fehlermeldung ähnelt im Fehlerprotokoll protokolliert:
    [28/02/2008 10:21 UHR][776]: Wmain: Fehler beim Lesen der Konfiguration - Fehler 0 x 80070057.
    Dieses Problem tritt auf, weil eine falsche Einstellung im folgenden Abschnitt Beispiel Postfächer.ServerINI-Datei.
    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 
    
    Beachten Sie, dass die Zeile "SystemPatchDate" das Datum "2/28/08." enthält Dieses Datum muss im Format MM/TT/JJJJ sein.

    Um dieses Problem zu umgehen, verwenden Sie nicht die Option Betriebssystem Patch .

Informationsquellen

Das Skript "Postfach-Berechtigung erteilen"

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

Eigenschaften

Artikel-ID: 941018 - Geändert am: Montag, 22. Dezember 2014 - Version: 2.0
Die Informationen in diesem Artikel beziehen sich auf:
  • 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
Keywords: 
kbhowto kbinfo kbmt KB941018 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 941018
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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