Wie Sommerzeit mithilfe des Tools Exchange Kalender aktualisieren

Einführung

Sommerzeit ist ein System Uhren im voraus festgelegt, damit Sonnenaufgangs oder Sonnenuntergangs späteren Zeitpunkt auftreten. Der Effekt ist mehr Tageslicht am Abend. Viele Länder 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 ändern. Microsoft Outlook-Benutzer haben ihren Outlook-Kalender jedes Mal aktualisieren, die die DST-Regeln ändern. Daten zwischen vorherigen DST-Regeln und aktuelle Sommerzeit werden in diesem Artikel als der "erweiterten Sommerzeit." bezeichnet

Dieser Artikel beschreibt die Aktionen, die Sie zu Adresse Kalenderelemente in Outlook bei der erweiterten Sommerzeit. Dieser Artikel beschreibt auch die Aktionen, mit denen Sie um Elemente im Kalender zu aktualisieren, die den neuen DST-Regeln in Microsoft Exchange Server gespeichert sind. Die in diesem Artikel vorgestellten Lösung umfasst Microsoft Exchange Kalender-Updateprogramm ("die Exchange Tool").

Weitere Informationen für die Änderung der Sommerzeit 2007 (DST 2007) betroffene Microsoft-Produkte vorbereitet finden Sie auf der folgenden Microsoft-Website:2011 verabschiedete die russische Regierung ein Gesetz zur Sommerzeit (DST) Abbrechen. Weitere Informationen finden Sie auf der folgenden Microsoft-Website:Weitere Informationen in Russisch finden Sie auf der folgenden Microsoft-Website:

Weitere Informationen

Über das Exchange-tool

Nach der Installation die DST-Updates für Windows alle alten Termine bei der Perioden ändern DST falsch erscheint wie eine Stunde später. Dies gilt für wiederkehrende und einer Instanz. Diese Termine müssen aktualisiert werden, sodass sie ordnungsgemäß angezeigt werden, in Outlook, Microsoft Office Outlook Web Access und Programme, die auf Objekte CDO (Collaboration Data) basieren.

Outlook stellt ein Tool mit dem Namen der Zeitzone Aktualisierungstool für Microsoft Office Outlook ("Outlook Werkzeugs"). Dieses Tool ermöglicht Benutzern, ihre eigenen Kalender aktualisieren.

Weitere Informationen über das Aktualisierungstool Zeitzone klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
931667 wie die Sommer-und Winterzeit in 2007 mit dem Aktualisierungstool Zeitzone für Microsoft Office Outlook

Exchange Kalender Update Tool ("die Exchange Tool") hilft Ihnen, Probleme, die Administratoren das Outlook-Tool häufig alle Benutzer bereitstellen und sicherstellen, 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.
Dateiname
Beschreibung
Msextmz.exeDiese ausführbare Datei extrahiert Zeitzoneninformationen aus Postfächern auf einem Server mit Exchange Server. Außerdem aktualisiert diese ausführbare Datei Postfach Kalender für bestimmte Benutzer.
Msextmzcfg.exeDiese ausführbare Datei ist ein Konfigurationstool, die meisten Schritte, aktualisieren Sie einen Exchange Server-Server ausführt.

Über die neue Version des Exchange-Tools

Basierend auf Feedback von Kunden 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 und die neue Version installieren.

Die neue Version des Exchange-Tools enthält folgt verbessert:
  • Die Zeitzone Extraktion und Kalender Aktualisierungsprozesse sind Vierfache beschleunigt.
  • Die Benutzeroberfläche für das Konfigurationstool ist optimiertes und intuitives.
  • Konferenzräume und Ressourcenpostfächer aktualisieren ist nun in das Konfigurations-Tool integriert.
  • Benutzerpostfächer aktualisieren ist nun in das Konfigurations-Tool integriert.
  • Problembehandlung Dokument ist jetzt mit dem Tool Exchange enthalten und ist in das Konfigurations-Tool integriert.
  • Zeitzone Extraktion Algorithmus und Fehlerbehandlung Funktionen wurden verbessert.
  • Die Protokollierung erfolgt benutzerfreundlichere.

Risiko der Ausführung des Exchange-Tools

Beim Ausführen des Exchange-Tools ist ein Risiko, dass einzelne Termine nicht ordnungsgemäß aktualisiert werden. Beispielsweise können einzelne Termine ein Benutzer erstellt, nachdem das Betriebssystem aktualisiert wurde falsch aktualisiert.

Um dieses Risiko zu verringern, verwenden Sie eine der folgenden Methoden:
  • Reduzieren Sie das Intervall zwischen den Client-Computer aktualisieren und Postfach-Kalender aktualisieren.
  • Verwenden Sie Computer in der Organisation vor langer Zeit aktualisiert wurden, die Einstellung Nur Update wiederkehrende Besprechung
    Erweiterte Einstellungen.

    Normalerweise erstellen Personen nicht einzelne Termine viele Monate im voraus. Daher DST Updates viele Monate vor installiert wurden, werden die meisten Einzelinstanz-Meetings, die erweiterte Sommerzeit fallen erstellt wurden mit den neuen DST Übergangsregeln. Diese treffen müssen nicht aktualisiert werden.
  • Sollten Sie das genaue Datum Wenn die Clientcomputer aktualisiert wurden, verwenden Sie die Einstellung Betriebssystem Patch Datum in
    Erweiterte Einstellungen. Wenn ein Datum angegeben ist, werden einzelne Termine, die nach diesem Datum erstellt wurden nicht vom Exchange-Tool aktualisiert.
Hinweis Wenn das Outlook-Tool oder das Exchange-Tool auf einem Clientcomputer, auf denen Windows Vista ausgeführt wird ausgeführt und führen Sie das Tool für Postfächer ist New Zealand Standard Time in die Zeitzone muss Ausführen des Tools ein zweites Mal am oder nach dem 1. Januar 2008. Weitere Informationen finden Sie im Abschnitt "Bekannte Probleme".

Optionen zum Aktualisieren von Postfächern

Die folgende Tabelle listet fünf Optionen Benutzerpostfächer Verwendung Regeln Zeitzone Sommerzeit 2007 aktualisiert.
Option
Profis
Nachteile
Verteilen Sie das Outlook-Tool für jeden Benutzer und weisen Sie die Benutzer auf ihre Postfächer zu aktualisieren.Diese Option verhindert das Risiko, dass mit Exchange-Tool ausführen.Es ist schwierig, sicherzustellen, dass alle Benutzer das Outlook-Tool ordnungsgemäß und rechtzeitig ausgeführt werden.

Benutzer ohne Outlook werden das Outlook-Tool ausgeführt.

Sie müssen zusätzliche erzieherischen bemühen zu Verwirrung bei Benutzern zu verringern.
Führen Sie das Exchange-Tool für alle betroffenen Benutzer und Server.
Diese Option bietet eine optimierte für Benutzer.
Gibt es ein Risiko Ausführen des Exchange-Tools, wie im Abschnitt "Ausführen des Exchange-Tools Risiko" beschrieben.
Führen Sie das Tool Exchange nur Terminserien aktualisieren. Können Sie Benutzer einzelne Termine in ihren eigenen Postfächern mit dem Outlook-Tool aktualisieren.Besteht weniger einzelne Termine falsch aktualisiert.Nachteile der Ausführung des Programms Outlook werden die mit der Ausführung des Exchange-Tools kombiniert.
Führen Sie das Exchange-Tool weder das Outlook-Tool. Fordern Sie Benutzer zu ihrem Kalender und Termine Bedarf erneut zu buchen.Diese Option verhindert das Risiko, dass mit Exchange-Tool ausführen.
Wenn alle Benutzer alle betroffenen Termine erneut buchen, werden einige Elemente im Kalender eine Stunde während der erweiterten Sommerzeit.

Sie müssen zusätzliche erzieherischen bemühen zu Verwirrung bei Benutzern zu verringern.
Verteilen Sie das Outlook-Tool für jeden Benutzer und weisen Sie die Benutzer auf ihre Postfächer zu aktualisieren. Anschließend verwenden Sie die Zeitzone Extraktion Exchange Tool bestimmen, ob Benutzer das Outlook-Tool ausführen.


Wenn der Benutzer nicht das Outlook-Tool ausführen, kann der Administrator das Exchange-Tool ausführen.
Diese Option reduziert die Benutzer das Tool nicht rechtzeitig ausgeführt und vermeidet das Risiko, dass mit Exchange-Tool ausführen.Dies ist nicht optional, wenn Benutzer Microsoft Office Outlook 2007 ausgeführt werden.

Das Exchange-Tool installieren

Exchange Kalender Update Tool ist in Form von selbstextrahierende ausführbare Datei (Msextmz.exe) heruntergeladen. Dieses Tool steht zum Download im Microsoft Download Center:

Download Exchange Kalender Update Tool jetzt herunterladen

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 Microsoft Virtual PC 2004 und Microsoft Virtual Server 2005 R2.

Weitere Informationen zu den virtuellen Computer für Exchange Kalender Update Tool klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
933185 eine virtuelle Maschine steht Sommerzeit 2007 Kalender Updates in einer Exchange-Organisation bereitstellen

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
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.

Das Exchange-Tool unterstützten Sprachen

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

Versionen von Exchange Server mit Exchange-tool

Das Exchange-Tool können die folgenden Versionen von Exchange Server-Postfächer:
  • 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

Mit dem Tool Exchange unterstützten Betriebssystemen

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

Was vor des Exchange-Tools ausführen

Installieren von updates

Vor dem Ausführen des Exchange-Tools stellen Sie sicher, dass Client und Server-Computern korrekt aktualisiert werden. Installieren Sie hierzu Windows DST-Update auf Clients und Servern.
Klicken Sie für weitere Informationen auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
942763 Dezember 2007 Kumulatives Zeitzonenupdate für Microsoft Windows Betriebssystemen


Wenn Sie Microsoft Exchange Server 2003 Service Pack 2 (SP2) ausführen, installieren Sie entsprechend Ihrer Organisation eine oder beide der folgenden Updates:
  • 911829 aktualisieren
  • 924334 aktualisieren
Weitere Informationen zu diesen Updates finden Sie in den folgenden zu Artikeln der Microsoft Knowledge Base:
911829 Fehlermeldung beim Bearbeiten Aufgaben ausführen oder müssen klicken verfassen Bild in Outlook Web Access aktivieren

924334 Verfassen von Nachrichten Formular reagiert 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 Jerusalem, zentralen brasilianischen oder e Südamerika Zeitzone, lesen Sie die Anleitung im folgenden Artikel der Microsoft Knowledge Base:

943390 einige Outlook Kalendereinträge werden bei Verwendung der Aktualisierungstool Outlook Zeitzone Sommerzeit in bestimmten Zeitzonen Winterzeit falsch zurückgesetzt

Das System überprüfen

Das Exchange-Tool muss nur auf einem Computer ausgeführt werden, für die Folgendes zutrifft:
  • Der Computer verfügt über Microsoft Office Outlook 2003 Service Pack 2 (SP2) oder Microsoft Office Outlook 2007 installiert.
  • Der Computer hat das Outlook Zeitzone Tool installiert.
  • Microsoft.NET Framework Version 2.0 ist auf dem Clientcomputer installiert.
Das Exchange-Tool kann nicht auf einem Computer ausgeführt werden, 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 die folgende Fehlermeldung angezeigt:
Microsoft Exchange Kalender-Updateprogramm kann mit Microsoft Exchange installiert werden.

Überprüfen Sie Berechtigungen und andere Benutzer Vorschriften

Stellen Sie sicher, dass Folgendes zutrifft:
  • Verwalten von Informationsspeichern Berechtigungen für jeden Exchange Server-Datenbank (MDB) aktualisiert werden.
  • Berechtigung "Senden als" für alle Postfächer werden aktualisiert.
  • Vollständige Postfachzugriff Berechtigungen für alle Postfächer werden aktualisiert.
  • Lokale Administratorrechte werden auf dem Computer gewährt, die das Exchange-Tool ausgeführt wird.

Über das Skript "Postfach-Berechtigung erteilen"

GrantMailboxPermission.vbs Skript können Sie eine Domäne Benutzer Vollständiger Postfachzugriff und Senden als auf alle Postfächer Berechtigungen.

Dieses Skript kann nur von einem Exchange Server-Administrator auf einem Computer ausgeführt werden, auf dem 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 die erforderlichen Berechtigungen erteilen.

Der Code für das VBS-Skript wird im Abschnitt "Informationsquellen" bereitgestellt. Die folgende Tabelle beschreibt die Modi, in denen das Skript ausgeführt wird.
Modus
Befehl
Beschreibung
HinzufügenCScript GrantMailboxPermission.vbs – hinzufügen Domänenname \ Benutzername DateinameDieser Befehl erteilt Domänenname
\ Benutzername Benutzer Vollständiger Postfachzugriff und Senden als Berechtigungen 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) getrennt werden.

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


Wenn der Benutzer ein expliziter Zugriff "Verweigern" zugewiesen ist, protokolliert das Skript Informationen in eine Datei namens "GrantMailboxPermission.err." Das Skript erteilen oder ändern die Berechtigung nicht.

Wenn der Benutzer eine Gruppe, die gehört "Zugriff verweigern" zugewiesen wurde, erteilt das Skript Vollständiger Postfachzugriff und Senden als. Der Benutzer werden kann nicht auf das Postfach anmelden. Alle Fehler werden in der Datei GrantMailboxPermission.err protokolliert.
EntfernenCScript GrantMailboxPermission.vbs – entfernenDieser Befehl entfernt Berechtigungen Vollständiger Postfachzugriff und Senden als auf die Postfächer, die in der Datei GrantMailboxPermission.log Domänenname aufgelisteten \ Benutzername
Benutzer. Der Domänenname \
Benutzer Benutzername wird in der Datei GrantMailboxPermission.log angegeben.
Hinweise
  • Wenn Sie dieses Skript auf dem Computer, auf dem Exchange Server ausgeführt wird ausführen, gibt das Skript Punkt (.) zurück, wenn das Skript erfolgreich Benutzer verarbeitet. Das Skript gibt ein Ausrufezeichen (!) zurück, wenn das Skript einen Benutzer nicht erfolgreich verarbeitet.
  • Die Ausgabedatei der Zeitzone Extraktion Modus kann nicht als Eingabedatei für dieses Skript verwendet werden. Die Eingabedatei für dieses Skript erstellen, fügen Sie den Inhalt der Ausgabedatei Zeitzone Extraktion Modus in Editor Inhalt als neues Dokument speichern und verwenden Sie das neue Dokument als Eingabedatei.

Wie Sie das Exchange-tool

Starten Sie zum Verwenden des Exchange-Tools Exchange Kalender Update-Konfigurationstool (Msextmzcfg.exe). Dieses Programm hilft Ihnen bei der gesamten Kalender aktualisieren.

Ausführen des Extrahierungsvorgangs Zeitzone

Postfach-Kalender zu aktualisieren, müssen Sie die Zeitzone der Kalender festlegen. Extraktion Zeitzone überprüft die Eigenschaften und Termine Postfach Kalender die Zeitzonen bestimmt. Zum Ausführen des Vorgangs Zeitzone folgendermaßen Sie vor:
  1. Klicken Sie auf der Seite Willkommen auf Weiter.


    Hinweis Die Willkommensseite führt Sie das Konfigurations-Tool und werden die Berechtigungen beschrieben, die erforderlich sind, um das Tool auszuführen. Die Seite enthält auch einen Link zu diesem Artikel.
  2. Geben Sie die Einstellung für das Konfigurationsdienstprogramm. Wir empfehlen mindestens 200 Megabyte (MB) Speicherplatz für die Protokollierung zuweisen.

    Wenn Sie die Standardeinstellungen ändern möchten, klicken Sie auf
    Erweiterte Einstellungen. Weitere Informationen zu erweiterten Optionen finden Sie in Tabelle, die dieser Prozedur folgt.
  3. Wählen Sie die Exchange-Servern in der lokalen Active Directory-Verzeichnisdienststruktur, die Sie aktualisieren möchten. Klicken Sie auf
    Nächsten Extrahierung Zeitzone zu starten.

    Hinweis Wenn Zeitzone Extraktion bereits durchgeführt haben, können Sie diesen Schritt überspringen, indem Sie auf Überspringen.

    Beachten Sie, dass eine Statusleiste, einen Link zu Ausgabelogs Echtzeitanzeige der Extraktion Zeitzone angezeigt werden. Nach Abschluss des Extrahierungsvorgangs Zeitzone klicken Sie auf Weiter.

    Wenn Fehler aufgetreten sind, wird ein Link zur Problembehandlung Dokument angezeigt.
  4. Konfigurieren Sie Postfächer keine Zeitzonen Seite, und klicken Sie auf Weiter um Kalenderelemente zu scannen.

    Hinweis Findet das Tool Benutzer haben kein Postfacheigenschaften, die die Zeitzone angeben, überprüft das Tool tatsächliche Meetings und Termine in den Kalender um die Zeitzone zu bestimmen. Sie können die Anzahl der Elemente im Kalender angeben, bis zu denen das Konfigurationstool scannen möchten. Je größer die Anzahl der Elemente, die Sie angeben, desto länger dauert die Überprüfung Vorgang.
  5. Auf der Seite lösen Anzeigenamen unbekannten Zeitzone fordert das Tool Zeitzonen, die das Tool nicht erkennt ein bekanntes Betriebssystem-Zeitzone zugeordnet. Wenn Sie dies tun, klicken Sie auf
    Weiter
  6. Findet das Konfigurationstool Benutzer haben mehrere Zeitzonen, werden Sie aufgefordert, den Konflikt beheben durch Angabe einer Zeitzone, den Kalender des Benutzers zu aktualisieren. Wenn Sie dies tun, klicken Sie auf
    Weiter.
  7. In der Seite Speichern Postfach DNs mit nicht aufgelösten Zeitzonen werden alle übrigen Benutzer, die noch keine Zeitzoneninformationen oder noch widersprüchliche Zeitzoneninformationen, in einer separaten Protokolldatei aufgezeichnet. Klicken Sie auf Weiter.
Die Zeitzone Extraktion ist abgeschlossen. Die Liste der Benutzer und der extrahierten Zeitzonen befindet sich in der Ausgabedatei (aufgegeben) im Installationsverzeichnis.

Erweitert

Die folgende Tabelle beschreibt die Einstellungen, die Sie in Schritt 2 des vorherigen Verfahrens konfigurieren können.
EinstellungFunktionenSzenarioHinweiseAnwendbarkeit
Wiederkehrende Besprechung aktualisierenDiese Einstellung aktualisiert nur Besprechungsserien betroffen sind von der DST-Änderung. Einzelne Termine, die in der erweiterten Sommerzeit fallen werden nicht aktualisiert, unabhängig davon, ob sie aktualisiert werden soll.Wenn der Computer in der Organisation vor langer Zeit aktualisiert wurden, verwenden Sie diese Einstellung.


Normalerweise erstellen Personen nicht einzelne Termine viele Monate im voraus. Daher DST Updates viele Monate vor installiert wurden, werden die meisten Einzelinstanz-Meetings, die erweiterte Sommerzeit fallen erstellt wurden mit den neuen DST Übergangsregeln. Diese treffen müssen nicht aktualisiert werden.
Wenn ein Benutzer eine Einzelinstanz-Besprechung viele Monate im Voraus erstellt, wird diese Besprechung nicht aktualisiert, wenn diese Einstellung angegeben ist.Diese Einstellung gilt für alle Postfächer, alle Konferenzräume und alle Benutzerkalender.
Betriebssystem-Patch-InstallationsdatumDiese Einstellung gibt an, dass einzelne 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 Meetings erstellt werden, nachdem das Update installiert wurde nicht aktualisiert. Diese treffen fallen unter die neue Zeitzonenregeln.
Diese Einstellung gilt nur, wenn Clientcomputer innerhalb von weniger als 24 Stunden aktualisiert wurden und hohe Eindringen des Updates. (Es ist hohe Penetration im Bereich 90 Prozent hoch wird der Prozentsatz der Computer in der Organisation aktualisiert wurden.)

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


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

Die Folge für Benutzerpostfächer ist, falls die Einstellung SuppressExchange oder
SuppressAll -Einstellung nicht angegeben ist, werden nur Benutzerpostfächer der Zeitzone.
Diese Einstellung gilt für alle Postfächer, alle Konferenzräume und alle Benutzerkalender.
SuppressExchange und
MaxDepth
Diese dazu führen, dass alle Termine im Kalender des Benutzers, die betroffen sind von der DST-Änderung aktualisiert werden, unabhängig davon, ob der Benutzer der Organisator die Kalenderelemente.

Der Benutzer der Organisator eines Kalenderelements ist, werden Updates nicht an Teilnehmer gesendet, die Exchange-Postfächer. Updates werden an die Teilnehmer gesendet, die keine Exchange-Postfächer verfügen.

MaxDepth Einstellung gibt an, welche Verteilerlistenerweiterung durchgeführt wird, um festzustellen, welcher Teilnehmer haben Exchange-Postfächer und die Teilnehmer nicht.
Verwenden Sie diese Einstellung, wenn Sie keine Exchange-Benutzern erweiterte Sommerzeit betroffen sind Organisatoren für Meetings Meeting Updates erhalten möchten.

Die
SuppressExchange ist besser als die
SuppressAll -Einstellung verfügt die Organisation Exchange Server kalendersysteme und treffen Teilnehmer enthalten, die außerhalb der Organisation sind, geplant.
Keine Besprechung gesendet werden, mit Ausnahme von nicht-Exchange-Benutzern. Um sicherzustellen, dass Kopien der gleichen Besprechung für alle möglichen Teilnehmer aktualisiert werden, muss daher jedes Postfach in der Organisation aktualisiert werden.

Dies kann die Anzahl der Postfächer deutlich, die aktualisiert werden müssen. Daher können die Verarbeitung erhöht werden.

Bei großen, geschachtelte Verteilerlisten die Teilnehmerliste ist kostspielig der Besprechungsteilnehmer ermitteln und bestimmen, ob Teilnehmer Exchange-Postfächer haben. Wenn Sie diese Einstellung festzulegen, legen Sie einen hohen Wert für den Parameter MaxDepth kann eine erhebliche Last auf den Domänencontrollern gebracht.
Diese Einstellung gilt nur für Benutzerpostfächer.
SuppressAllDiese Einstellung bewirkt, dass alle Termine im Kalender des Benutzers, die betroffen sind von der DST-Änderung aktualisiert werden, unabhängig davon, ob der Benutzer der Organisator die Kalenderelemente.

Ist der Benutzer der Organisator eines Kalenderelements werden Updates nicht an die Teilnehmer gesendet.
Verwenden Sie diese Einstellung, wenn sollen Teilnehmer von Organisatoren für Meetings Meeting Updates erhalten, die erweiterte Sommerzeit betroffen sind.Keine Besprechung gesendet werden. Um sicherzustellen, dass Kopien der gleichen Besprechung für alle möglichen Teilnehmer aktualisiert werden, muss daher jedes Postfach in der Organisation aktualisiert werden.

Dies kann die Anzahl der Postfächer deutlich, die aktualisiert werden müssen. Daher können die Verarbeitung erhöht werden.

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

Konferenzräume und Ressourcenpostfächer aktualisieren

Konferenzräume und Ressourcenpostfächer Buchung Konflikte müssen aktualisiert werden. Gehen Sie hierzu folgendermaßen vor:
  1. Geben Sie auf der Seite Ressourcen angeben und Konferenz Raum Kalender oder fügen Sie der Liste der Aliase für Konferenzräume in Ihrer Organisation. Klicken Sie auf Auflösen , um Aliase überprüfen und klicken Sie auf Weiter.
  2. Auf der Seite beheben Zeitzonen für Ressourcen und Konferenz Raum Kalender fordert das Tool Sie manuell die Zeitzone für einen Konferenzraum Konferenzraum keine Zeitzone angeben. Dies, und klicken Sie dann auf Weiter.
  3. Eine Erinnerung angezeigt, daran erinnern, dass mit dem Kalender aktualisieren. Klicken Sie auf Weiter.
  4. Beachten Sie, dass eine Statusleiste, einen Link zu Ausgabelogs Echtzeitanzeige der Ausgabe des Tools angezeigt werden. Klicken Sie auf
    Weiter.

    Wenn Fehler auftreten, wird ein Hyperlink zum Dokument Problembehandlung am unteren Rand dieser Seite angezeigt.

Postfach Benutzerkalender aktualisieren

Gehen Sie hierzu folgendermaßen vor:
  1. Konfigurieren Sie auf der Seite Einstellungen aktualisieren Benutzerkalender Postfach für die Aktualisierung.

    Wenn keine SuppressExchange angegeben haben oder
    SuppressAll Erweiterte Einstellungen auswählen der Sommerzeit betroffen sind Zeitzonen Wählen Sie andernfalls alle Zeitzonen.

    Klicken Sie auf
    Weiter.
  2. Eine Erinnerung angezeigt, daran erinnern, dass mit dem Kalender aktualisieren. Klicken Sie auf Weiter.
  3. Beachten Sie, dass eine Statusleiste, einen Link zu Ausgabelogs Echtzeitanzeige der Ausgabe des Tools angezeigt werden. Nachdem die Aktualisierung abgeschlossen ist, klicken Sie auf Weiter.

    Wenn Fehler auftreten, wird ein Hyperlink zum Dokument Problembehandlung am unteren Rand dieser Seite angezeigt.
  4. Klicken Sie auf Fertig stellen.

Exchange-Tooldateien und Unterverzeichnisse

Protokolldateien

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

    Diese Datei enthält eine Liste aller Benutzer Postfächer, die zusammen mit ihrer Zeitzone extrahiert wurden.
  • TimeZoneExtraction.log

    Dieses Protokoll enthält die kombinierte Ausgabe der Extraktion Zeitzone für alle Server.
  • ResourceUpdate.log

    Dieses Protokoll enthält die Ausgabe der Aktualisierungsprozess für die Konferenzräume und die Ressourcenpostfächer.
  • UserUpdate.log

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

    Dieses Protokoll enthält die kombinierte Ausgabe des Scanvorgangs Kalender für alle Server.
  • ConflictUsers.txt

    Dieses Protokoll enthält eine Liste von Benutzern, die in Konflikt stehenden Zeitzonen. Die Benutzer Postfacheigenschaften laut beispielsweise sie mehrere Zeitzonen angehören.
  • NonExistent.txt

    Dieses Protokoll enthält eine Liste der Benutzer, die keine Zeitzoneninformationen.

Unterverzeichnisse

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

    Dies ist das Unterverzeichnis arbeiten für den Aktualisierungsprozess für die Konferenzräume und die Ressourcenpostfächer. Dieses Verzeichnis enthält die folgenden Dateien:
    • Msextmz.log

      Dies ist die Ausgabedatei des Exchange-Tools für die Aktualisierung.
    • Errors.txt

      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 Diese Dateien enthalten alle Unterverzeichnisse arbeiten.

    Unterverzeichnis Ressource enthält außerdem das folgende Unterverzeichnis:
    • LogFiles

      Dieses Unterverzeichnis enthält Update Protokolle für jedes Postfach erfolgreich aktualisiert wurde. Jedes Protokoll sollte eine Liste von Terminen, die aktualisiert wurden.
  • Server_Name

    Gibt es ein Unterverzeichnis für jeden Server, für die Extraktion Zeitzone 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 Zeitzone.
    • Update

      Dies ist das Unterverzeichnis arbeiten für die Aktualisierung des Benutzer-Mailbox. Es enthält folgende Unterverzeichnis:
      • LogFiles

        Dieses Unterverzeichnis enthält Update Protokolle für jedes Postfach erfolgreich aktualisiert wurde. Jedes Protokoll sollte eine Liste von Terminen, die aktualisiert wurden.

Vorgehensweise nach dem Ausführen des Exchange-Tools

Klicken Sie nach dem Ausführen des Tools Exchange auf allen Exchange-Servern in Ihrer Umgebung wenden Sie die entsprechenden Exchange Server DST Updates an Exchange Server-Version und Service Packs die folgenden organisiert. Installieren Sie die Updates für Ihre Version von Exchange Server in der Reihenfolge.

Exchange Server 2007
940006 Beschreibung zum Updaterollup 4 für Exchange Server 2007

Updaterollup 4 für Exchange Server 2007 enthält die folgenden DST-Updates:
  • 937656 Probleme in Outlook Web Access für Exchange 2007 nach in Neuseeland Sommerzeit (DST) 2007 beginnt

  • 932561 Termine, die von einer Exchange-Organisation mit Exchange 2007 zu einem anderen gesendet werden möglicherweise falsch um eine Stunde in der Zeitzone Western Australia ist eine Organisation

Exchange Server 2003 SP2
Update 926666 für Sommer-und Winterzeit in 2007 für Exchange 2003 Service Pack 2

931915 Update Sommer-und Winterzeit in Neufundland 2007 für Exchange Server 2003 Service Pack 2

929895 zwischen verschiedenen Exchange Server-Organisationen gesendet werden Termine um eine Stunde möglicherweise falsch eines der Unternehmen in der Zeitzone Western Australia wird

937653 Sie ein oder mehrere Probleme wird in Exchange Server 2003 nach Sommerzeit für Neuseeland 2007

Exchange Server 2003 SP1
940123 treten Probleme in Exchange 2003 Servicepack 1 nach Sommerzeit (DST) in Neuseeland 2007 beginnt

Bekannte Probleme

  • In Outlook Web Access erstellt Besprechungsserien werden nicht vom Exchange-tool

    Bei der Installation der Exchange Server-Updates auf dem Exchange-Server vor dem Aktualisieren der Postfächer werden Besprechungsserien in Outlook Web Access erstellt das Exchange-Tool nicht aktualisiert.


    Um dieses Problem zu beheben, entfernen Sie Exchange Server-Updates Exchange ausführen und installieren die Exchange Server-Updates auf dem Exchange-Server.
  • Exchange 2007 muss neu gestartet werden nach dem Ausführen des Exchange-Tools

    Um Kalender korrekt angezeigt wird, müssen Sie die Exchange-Dienste neu starten nach dem Ausführen des Exchange-Tools für Outlook Web Access in Exchange 2007.
  • Das Exchange-Tool kann nicht installiert werden.

    Das Exchange-Tool wird nicht installiert, wenn eines der folgenden Registrierungsschlüssel vorhanden ist:
    • HKEY_CLASS_ROOT\Outlook.Application.9
    • HKEY_CLASS_ROOT\Outlook.Application.10
    In diesem Szenario erhalten Sie die Fehlermeldung beim Versuch, das Exchange-Tool zu installieren:
    Exchange Server Basisadressen Kalenderprogramm kann mit dieser Version von Microsoft Outlook installiert werden.
    Um dieses Problem zu umgehen, löschen Sie diesen Registrierungsschlüssel installieren Sie das Exchange-Tool und Wiederherstellen der Registrierungsschlüssel.

    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. Sichern Sie die Registry für zusätzlichen Schutz, bevor Sie sie ändern. Anschließend können Sie die Registrierung wiederherstellen, falls ein Problem auftritt. Weitere Informationen zum Sichern und Wiederherstellen der Registrierung finden Sie im folgenden Artikel der Microsoft Knowledge Base:
    322756 zum Sichern und Wiederherstellen der Registrierung in Windows
  • Es gibt eine Beschränkung der Anzahl der Postfächer pro Server verarbeitet werden können

    Im Modus der Benutzerliste und Zeitzone Extraktion Modus können Msextmz.exe nur 65.535 Postfächer auf einem Server verarbeiten. Wenn der Server mehr als 65.535 Postfächer verfügt, sind einige Postfächer nicht verarbeitet.
  • Öffentliche Ordner Kalender werden nicht aktualisiert.

    Das Tool Exchange aktualisiert Öffentliche Ordner Kalender nicht. Informationen zum öffentlichen Ordner Kalender aktualisieren finden Sie in der Dokumentation für das Outlook-Tool.
  • Sie können das Outlook-Tool und das Exchange-Tool in der gleichen Umgebung ausführen.

    Wenn Sie das Exchange-Tool für ein Postfach mit dem Outlook-Tool aktualisiert wurde oder umgekehrt, keine Nebeneffekte auftreten. Ausführung des Exchange-Tools besteht jedoch keine Notwendigkeit für Benutzer das Outlook-Tool separat.
  • Nicht-Besprechung Erinnerungen höher als erwartet angezeigt

    Besprechung nicht Erinnerungen für Postfächer von Exchange Tool aktualisiert werden nicht aktualisiert, wenn Outlook mit dem Postfach im Onlinemodus nicht verbunden ist. In diesem Fall werden Erinnerung eine Stunde später als erwartet.

    Wenn Outlook im Onlinemodus nicht verbunden ist, müssen Sie falschen Erinnerungen für Termine anpassen, die das Outlook-Tool findet. Reminders Suchordner ist außerdem nicht im Postfach vorhanden. Daher wird das Tool e-Mail-Nachrichten, Kontakte oder andere Erinnerungen nicht aktualisiert.


    Das Tool aktualisiert z. B. nicht die Erinnerung an eine e-Mail-Nachricht mit einem Zeitpunkt in der Zukunft. Das Tool aktualisiert auch nicht die Erinnerung für ein Aufgabenelement, das einer Erinnerung.
  • Sie erhalten eine Fehlermeldung: "konnte nicht installiert werden, da frühere Versionen von"Microsoft Exchange Kalender Update Tool"erkannt wurden. Deinstallieren Sie diese, und führen Sie Setup erneut"

    Wenn Exchange Kalender Update Tool Version 1.0 installiert müssen Sie diese Version vor der Installation von Exchange Kalender Update Tool Version 2.0 deinstallieren.

    Exchange Kalender Update Tool Version 1.0 wurde als selbstextrahierende ausführbare Datei verteilt, die zwei MSI-Pakete (Msextmz.msi und Msextmzcfg.msi) enthalten. Sie müssen beide Pakete deinstallieren, bevor Sie Version 2.0 des Exchange-Tools installieren.

    Wenn Sie weiterhin Probleme bei der Installation von Version 2.0 des Tools Exchange, versuchen Sie es erneut installieren und Deinstallieren von Version 1.0 des Exchange-Tools. Klicken Sie dazu mit MSI-Pakete anstelle von Feature Software Control Panel. Dann starten Sie den Computer neu, und installieren Sie Version 2.0 des Exchange-Tools.

    Wenn dies nicht funktioniert, extrahieren Sie die Binärdateien direkt von MSI-Paketen.
  • Beim Ausführen von Outlook oder Exchange Update-Tools sind Termine um eine Stunde für Postfächer ist New Zealand Standard Time in die Zeitzone

    Dieses Verhalten tritt auf, wenn Folgendes zutrifft:
    • Ausführen von Outlook oder Exchange Update-Tools auf einem Computer mit Windows Vista.
    • Landeszeitzone aktualisiert werden Postfächer ist Neuseeland Normalzeit.
    Um dieses Problem zu umgehen, müssen Sie Outlook oder Exchange Update-Tools für die Postfächer erneut am oder nach dem 1. Januar 2008 ausführen.

    Dieses Verhalten tritt auf, weil Windows Vista behandelt Zeitzone Informationen anders als andere Versionen von Windows. Wenn Sie nicht Outlook oder Exchange Update-Tools erneut am oder nach dem 1. Januar 2008 ausführen werden alle Termine in der zweiten DST Ereignis um eine Stunde vorgestellt. Das zweite Ziel Ereignis enthält Daten vom 16. März 2008 bis 6. April 2008.

    Möchten Sie nicht warten, bis zum 1. Januar 2008 Termine im zweiten DST Ereignis aktualisieren, können Sie Outlook oder Exchange Update-Tools auf einem Computer ausführen, auf dem Windows XP oder Windows Server 2003 ausgeführt wird.
  • Ein Datum im Format MM/TT/JJJJ ist M/JJJJ Format geändert.

    Sie legen die Option Betriebssystem Patch in Exchange Kalender Update Tool. Wenn Sie dies tun, funktioniert Exchange Kalender Update Tool nicht korrekt. Dieses Problem tritt auf, weil das Datumsformat MM/TT/JJJJ in M/JJJJ geändert wird.

    Außerdem 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 wegen eine falsche Einstellung im folgenden Beispiel Postfächer. INI-Datei des Servers.
    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" Datum "2/28/08". Dieses Datum muss im Format MM/TT/JJJJ sein.

    Um dieses Problem zu umgehen, verwenden Sie nicht die Option Betriebssystem Patch . Fehler #: 129210 (Exchange12)

Referenzen

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

Artikelnummer: 941018 – Letzte Überarbeitung: 14.01.2017 – Revision: 1

Feedback