How to Address Sommerzeit mithilfe des Exchange-Kalenderaktualisierungstools

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 Einstellen der Uhren im voraus, so dass Sonnenaufgang und Sonnenuntergang zu eine Stunde später auftreten. Der Effekt ist mehr Tageslicht am Abend. Viele Länder beobachten Daylight Saving Time. Die meisten dieser Länder haben ihre eigenen Regeln und Vorschriften für den Zeitpunkt der Sommerzeit beginnt und endet.

Die Daten der Sommerzeit (DST) geändert werden können von Jahr zu Jahr. Microsoft Outlook-Benutzer müssen ihre Outlook aktualisieren Kalender jedes Mal, die die DST-Regeln ändern. Die Daten zwischen dem vorherigen DST-Regeln und die aktuellen DST-Regeln werden gemäß diesem Artikel als die "DST längere."

Dieser Artikel beschreibt die Aktionen, die Sie Adresse von Kalenderelementen in Outlook dauert, die während der erweiterten auftreten DST-Periode. Dieser Artikel beschreibt außerdem die Aktionen, denen Sie, um ergreifen sollten Aktualisieren Sie die Kalenderelemente, die im Microsoft Exchange Server entsprechend gespeichert sind die neuen DST-Regeln. Die Lösung, die in diesem Artikel vorgestellt wird die Microsoft Exchange Calendar Update Tool ("die Exchange Tool").

Für Weitere Informationen dazu, wie Sie bei Änderungen der Sommerzeit in Vorbereitung 2007 (DST 2007) für alle betroffenen Microsoft-Produkte finden Sie auf der folgenden Microsoft-Website:
http://Support.Microsoft.com/GP/cp_dst
Im Jahr 2011 nahm 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 russischer Sprache finden Sie auf der folgenden Microsoft-Website:
http://Support.Microsoft.com/GP/cp_dst/RU#tab0

Weitere Informationen

Über das Exchange-tool

Nach dem Installieren der DST-Updates für Microsoft Windows, alle alten Termine, die auftreten, während der DST-Änderung-Zeiträume werden falsch sein. vor, wenn eine Stunde später angezeigt. Dies gilt für beide wiederkehrende und Einzelinstanz-Termine. Sie müssen diese Termine so aktualisieren, dass sie wird in Outlook im Microsoft Office Outlook Web Access ordnungsgemäß angezeigt werden, und in Anwendungen basieren, die Collaboration Data Objects (CDO).

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

Weitere Informationen über das Time Zone Data Update Tool, klicken Sie in folgendem Artikel in der Microsoft anzeigen Knowledge Base:
931667Wie Sie die Änderungen der Sommerzeit im Jahr 2007 lösen, indem das Time Zone Data Update Tool für Microsoft Office Outlook
Das Exchange Calendar Update Tool ("den Austausch Tool") können Sie die Schwierigkeiten zu vermeiden, die Administratoren bei der Bereitstellung von gegenüberstehen. das Outlook-Tool Allgemein für alle Benutzer und stellt sicher, dass jeder Benutzer führt die Outlook-tool ordnungsgemäß.

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
DateinameBeschreibung
Msextmz.exe Diese ausführbare Datei extrahiert Zeitzone Informationen aus Postfächern auf einem Server, auf der Exchange Server ausgeführt wird. Dies ausführbare Datei auch aktualisiert Mailbox-Kalender für eine angegebene Liste von. Benutzer.
Msextmzcfg.exe Diese ausführbare Datei ist ein Konfigurations-Tool, das meisten Schritte ausführt, die beteiligt sind Aktualisieren eines Servers Exchange Server.

Über die neue Version des Exchange-Tools

Aufgrund des Kundenfeedbacks von wurde eine neue Version des Exchange-Tools am 13. August 2007 veröffentlicht. Dieser Artikel bezieht sich auf die neue Version von der Exchange-Tool. Wenn Sie eine ältere Version des Exchange-Tools ausgeführt, Deinstallieren Sie sie, und dann installieren Sie die neue Version.

Die neue Version von das Exchange-Tool umfasst die folgenden Verbesserungen:
  • Die Zeitzone Extraktion und Kalender-Update-Prozesse sind um das Vierfache beschleunigt.
  • Die Benutzeroberfläche für das Konfigurationsdienstprogramm ist mehr optimierte und intuitiv.
  • Die Fähigkeit, Konferenzräume und Ressourcen aktualisieren Postfächer ist jetzt in das Konfigurations-Tool integriert.
  • Die Fähigkeit, Benutzerpostfächer zu aktualisieren ist nun integriert die Konfigurations-Tool.
  • Ein Dokument zur Fehlerbehebung ist nun enthalten, mit der Exchange-Tool, und es ist das Konfigurations-Tool integriert.
  • Die Zeitzone Extraktion Algorithmus und Fehlerbehandlung Funktionen werden verbessert.
  • Der Protokollierungsprozess ist benutzerfreundlicher.

Risiko der Ausführung des Exchange-Tools

Wenn Sie das Exchange-Tool ausführen, besteht die Gefahr, dass Einzelinstanz-Termine werden möglicherweise nicht korrekt aktualisiert. Zum Beispiel Einzelinstanz-Termine, die ein Benutzer erstellt, nachdem das Betriebssystem wurde Mai aktualisiert nicht ordnungsgemäß aktualisiert werden.

Um dieses Risiko zu verringern, verwenden Sie eine der die folgenden Methoden:
  • Reduzieren Sie das Intervall zwischen der Zeit, die Sie aktualisieren Client-Computer und die Uhrzeit, Mailbox-Kalender zu aktualisieren.
  • Wenn der Computer in der Organisation eine lange Zeit aktualisiert wurden vor, verwenden Sie die Wiederkehrende Besprechungen nur aktualisieren Einstellung inErweiterte Einstellungen.

    Normalerweise erstellt Menschen nicht Einzelinstanz-Termine viele Monate im voraus. Deshalb, wenn die Sommerzeit Updates wurden viele Monate vor, die meisten der Single-Instance-Sitzungen installiert. fallen in der erweiterten Sommerzeit wird erstellt wurden mithilfe der neuen Übergangsregeln DST. Diese Besprechungen müssen nicht aktualisiert werden.
  • Wenn Sie, das genaue wissen Datum alle Client-Computer wurden aktualisiert, verwenden Sie die Betriebssystem-Patch-Datum Einstellung inErweiterte Einstellungen. Wenn ein Datum angegeben ist, Single-Instance Termine, die nach diesem Datum erstellt wurden, werden nicht durch den Austausch aktualisiert Tool.
Hinweis Wenn Sie das Outlook-Tool oder das Exchange-Tool auf einem Client ausführen Computer mit Windows Vista, und führen Sie das Tool für Postfächer wo die Landeszeitzone New Zealand Standard Time, führen Sie das Tool ein zweites Mal am oder nach dem 1. Januar 2008. Weitere Informationen finden Sie unter den bekannten" Issues"Abschnitt.

Optionen, um Postfächer zu aktualisieren

Die folgende Tabelle listet fünf Optionen, die Sie verwenden können, um zu aktualisieren Benutzerpostfächer die Sommerzeit 2007 Zeitzone verwendet.
Tabelle minimierenTabelle vergrößern
OptionProfisNachteile
Verteilen Sie das Outlook-Tool für jeden Benutzer, und weisen Sie Benutzern, ihre eigenen Postfächer zu aktualisieren. Diese Option vermeidet das Risiko, Ausführen des Tools Exchange zugeordnet ist. Es ist schwierig garantieren Sie, dass alle Benutzer das Outlook-Tool ordnungsgemäß und rechtzeitig ausführen Art und Weise.

Benutzer, die nicht Outlook nicht ausgeführt werden die Outlook-Tool.

Sie müssen zusätzliche educational zu bemühen zu Verwirrung bei Benutzern zu verringern.
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, als im Abschnitt "Risiko der Ausführung des Exchange-Tools" beschrieben.
Führen Sie das Exchange-Tool, aktualisieren Sie nur Terminserien. Benutzer Einzelinstanz-Termine in ihren eigenen Postfächern mithilfe aktualisieren das Outlook-Tool. Ist das Risiko geringer Einzelinstanz-Termine falsch aktualisiert. Die Nachteile von Outlook-Tool ausgeführt werden. in Kombination mit der Nachteile der Ausführung des Exchange-Tools.
Führen Sie weder das Exchange-Tool noch das Outlook-Tool. Fordern Sie Benutzer Überprüfen Sie ihren Kalender und Termine annullierten nach Bedarf. Dies Option vermeidet das Risiko, das Ausführen des Exchange-Tools zugeordnet ist. Es sei denn, alle Benutzer alle betroffenen Termine annullierten, Kalender einige Elemente werden eine Stunde während der verlängerten DST deaktiviert sein.

Sie müssen Stellen Sie educational zusätzliche Anstrengungen zu Verwirrung bei Benutzern zu verringern.
Verteilen Sie das Outlook-Tool für jeden Benutzer, und weisen Sie Benutzern, ihre eigenen Postfächer zu aktualisieren. Verwenden Sie dann den Zeitzone Extraktion Modus das Exchange-Tool, um festzustellen, ob der Benutzer das Outlook-Tool ausführen.

Wenn der Benutzer das Outlook-Tool nicht ausführen, kann der administrator Führen Sie das Exchange-Tool.
Diese Option verringert das Risiko, dass Benutzer nicht Ausführen des Tools in einer angemessenen und vermeidet das Risiko, das verknüpft ist mit das Exchange-Tool ausführen. Dies ist keine Option, wenn Benutzer Microsoft Office Outlook 2007 wird ausgeführt.

Installieren Sie das Exchange-tool

Das Exchange-Kalender-Update-Tool steht zum Download in der eine selbstextrahierende ausführbare Datei (Msextmz.exe) Form. Dieses Tool ist verfügbar zum Download aus dem Microsoft Download Center:

Bild minimierenBild vergrößern
Download
Download das Exchange Calendar Update Tool-Paket jetzt.

Eine virtuelle Maschine wird erstellt, um Ihnen zu helfen Installieren Sie und verwenden Sie das Exchange-Tool. Die virtuelle Maschine basiert auf Microsoft WindowsServer 2003, Outlook 2007, Microsoft Office, Excel 2007 und Microsoft Office Word 2007. Die virtuelle Maschine funktioniert in beiden Microsoft Virtual PC 2004 und in Microsoft Virtual Server 2005 R2.

Weitere Informationen über die virtuelle Maschine für das Exchange Calendar Update Tool, klicken Sie auf die folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
933185Ein virtueller Computer ist zur Verfügung, um Ihnen bei der Bereitstellung von Updates für die Sommerzeit 2007 Kalender in einer Exchange-Organisation
Weitere Informationen zum Herunterladen von Microsoft Support Services Dateien, klicken Sie in folgendem Artikel in der Microsoft anzeigen Knowledge Base:
119591 So erhalten Sie Microsoft Support-Dateien aus online-Dienste
Microsoft hat diese Datei auf Viren. Microsoft hat am meisten verwendet. aktuelle Virenerkennungssoftware, die am Tag verfügbar war, dass die Datei gebucht wurde. Die Datei wird auf Servern mit verstärkter Sicherheit gespeichert, die zum verhindern nicht autorisierten Änderungen an der Datei.

Durch das Exchange-Tool unterstützten Sprachen

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

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

Das Tool Exchange kann Postfächer auf den folgenden Versionen aktualisieren. der Exchange Server:
  • 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 ausgeführt. Betriebssysteme:
  • Microsoft Windows Server 2003
  • Microsoft Windows XP
  • Windows Vista

Was 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 Computer werden korrekt aktualisiert. Installieren Sie hierzu das Windows-Sommerzeitupdate auf Clients und Servern. Weitere Informationen Informationen hierzu finden Sie in folgendem Artikel zu finden Sie in der Microsoft Knowledge Base:
942763Kumulatives Zeitzonenupdate für Microsoft Windows-Betriebssysteme von Dezember 2007

Wenn die Ausführung von Microsoft Exchange Server 2003 Service Pack 2 (SP2) installieren eine oder beide der folgenden Updates als geeignet für Ihre Organisation:
  • 911829 Aktualisieren
  • 924334 Aktualisieren
Weitere Informationen zu diesen Updates klicken Sie auf die folgenden Artikelnummern um den Artikel der Microsoft Knowledge Base anzuzeigen:
911829Sie erhalten eine Fehlermeldung, wenn Sie versuchen, alle Bearbeitungsaufgaben durchführen, oder müssen Sie bestehenrahmen im Outlook Web Access aktivieren
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 Exchange Server 2003
Wenn Benutzer innerhalb der Jerusalem, Central Portugiesisch (Brasilien) oder Südamerika E. der Zeitzone, lesen Sie die Anleitungen in den folgende Artikel der Microsoft Knowledge Base:

943390 Einige Outlook-Kalendereinträge sind falsch zurückgesetzt, wenn Sie Outlook Time Zone Data Update Tool verwenden, um Änderungen der Sommerzeit in bestimmten Zeitzonen angepasst

Überprüfen Sie die Systemanforderungen

Sie müssen das Exchange-Tool nur auf einem Computer ausführen, für die die folgende Bedingungen zutreffen:
  • Der Computer hat Microsoft Office Outlook 2003 Service Pack 2 (SP2) oder Microsoft Office Outlook 2007 installiert.
  • Der Computer hat das Outlook-Tool Time Zone installiert.
  • Microsoft.NET Framework, Version 2.0 installiert ist, auf die Client-Computer.
Das Exchange-Tool kann nicht auf einem Computer ausgeführt werden, die ausgeführt wird Exchange Server oder die Exchange-Systemverwaltungstools. Wenn Sie versuchen, installieren das Exchange-Tool auf einem Computer mit Exchange Server oder den Austausch System Management Tools, wird sinngemäß die folgende Fehlermeldung angezeigt:
Microsoft Exchange Kalender-Update-Tool kann nicht mit installiert werden Microsoft Exchange.

Überprüfen Sie die Berechtigungen und andere Benutzeranforderungen

Stellen Sie sicher, dass die folgenden Bedingungen erfüllt sind:
  • Auf jedem Exchange Information Store-Berechtigungen verwalten Server-Nachrichtendatenbank (MDB) werden aktualisiert.
  • Berechtigung "Senden als" für alle Postfächer sind aktualisiert.
  • Vollständige Postfachzugriff Berechtigungen für alle Postfächer sind aktualisiert.
  • Lokaler Administrator-Berechtigungen werden auf dem Computer erteilt. ist das Exchange-Tool ausgeführt wird.

Über das Skript "Postfach-Berechtigung erteilen"

Das Beispielskript GrantMailboxPermission.vbs können zu gewähren ein Domänenbenutzer Vollständiger Postfachzugriff und die Berechtigung "Senden als" für alle Postfächer.

Dieses Skript kann nur durch eine Exchange Server ausgeführt werden Administrator auf einem Computer mit Exchange 2000 Server oder Exchange Server 2003. Dieses Skript kann nicht auf einem Computer ausgeführt werden, auf denen Exchange ausgeführt wird Server 2007. Allerdings können Sie die Exchange-Verwaltungsshell zum Erteilen der Erforderliche Berechtigungen.

Der Code für das VBS-Skript wird bereitgestellt, der Im Abschnitt "Informationsquellen". Die folgende Tabelle beschreibt die beiden Modi der Skript ausgeführt wird.
Tabelle minimierenTabelle vergrößern
ModusBefehlBeschreibung
Hinzufügen CScript GrantMailboxPermission.vbs Listenfeld Domänenname \ User_name File_Name Dieser Befehl erteilt der Domänenname \ User_name Benutzer Vollständiger Postfachzugriff und die Berechtigung "Senden als" für die Benutzerpostfächer, die in der Eingabe aufgelistet sind Datei.

Die Eingabedatei muss eine Textdatei sein, die Legacy enthält Domain-Namen der Benutzerpostfächer. Diese Namen müssen durch einen Wagenrücklauf getrennt werden Return + Line Feed (CRLF).

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

Wenn ein expliziter "Zugriff verweigern" werden dem Benutzer das Skript zugewiesen. protokolliert diese Informationen in eine Datei mit dem Namen "GrantMailboxPermission.err". Die Skript gewähren oder ändern die Berechtigung nicht.

Wenn der Benutzer gehört eine Sicherheitsgruppe, die zugewiesen wurde "" Verweigern Sie Zugriff, gewährt das Skript Vollständige Postfachzugriff und Senden als-Berechtigungen. Allerdings wird der Benutzer möglich das Postfach anmelden. Alle Fehler werden protokolliert, dem GrantMailboxPermission.err-Datei.
Entfernen CScript GrantMailboxPermission.vbs ?removeDieser Befehl entfernt Vollständiger Postfachzugriff "und" Senden als Berechtigungen für die Postfächer, die in der GrantMailboxPermission.log aufgeführt sind Datei aus der Domänenname \ User_name Benutzer. Die Domänenname \ User_name Benutzer wird angegeben, der GrantMailboxPermission.log-Datei.
Notizen
  • Wenn Sie dieses Skript auf dem Computer ausführen, der ausgeführt wird Exchange Server, das Skript gibt einem Punktzeichen (.) als das Skript erfolgreich verarbeitet einen Benutzer. Das Skript gibt ein Ausrufezeichen Zeichen (!), wenn das Skript einen Benutzer nicht erfolgreich verarbeiten.
  • Die Ausgabedatei der Zeitzone Extraktion-Modus nicht möglich als Eingabedatei für dieses Skript verwendet. Die Eingabedatei für diese erstellen Script, fügen Sie den Inhalt der Ausgabedatei Zeitzone Extraktion-Modus in Editor, speichern den Inhalt als ein neues Dokument und verwenden Sie das neue Dokument als die Eingabedatei.

Gewusst wie: Verwenden Sie das Exchange-tool

Um das Exchange-Tool zu verwenden, starten Sie den Exchange-Kalender-Update Configuration-Tool (Msextmzcfg.exe). Dieses Programm hilft Ihnen mit der gesamten Prozess der Aktualisierung von Kalendern.

Ausführen des Extrahierungsvorgangs Zeitzone

Um Postfach-Kalender zu aktualisieren, müssen Sie die Zeitzone des bestimmen. die Kalender. Die Zeitzone Extraktionsprozess untersucht die Eigenschaften und die Termine der Mailbox Kalender ihre Zeitzonen zu bestimmen. Ausführen der Time Zone Extraktionsprozess, gehen Sie folgendermaßen vor:
  1. Klicken Sie auf der Seite Willkommen auf Weiter.

    Hinweis Die Seite Willkommen stellt Ihnen das Konfigurationstool und Beschreibt die Berechtigungen, die erforderlich sind, um das Tool auszuführen. Die Seite auch enthält einen Link zu diesem Artikel.
  2. Geben Sie die Einstellungen für das Konfigurationsdienstprogramm. Wir empfehlen Sie mindestens 200 Megabyte (MB) Speicherplatz zum Reservieren die Protokollierung.

    Wenn Sie die Standardeinstellungen ändern möchten, klicken Sie aufErweiterte Einstellungen. Weitere Informationen zu erweiterten Einstellungen, finden Sie in die Tabelle, die dieses Verfahren folgt.
  3. Wählen Sie die Exchange-Server im lokalen Active Directory Gesamtstruktur-Verzeichnisdiensts, die Sie aktualisieren möchten. Klicken Sie dann aufWeiter um die Zeitzone Extraktionsprozess zu starten.

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

    Beachten Sie, dass ein Status Bar, einen Link zum Protokollieren von Ausgabemeldungen und eine Echtzeitanzeige der Zeitzone Extraktion werden angezeigt. Nach der Zeitzone ist Extraktion abzuschließen, klicken Sie auf Weiter.

    Wenn Fehler aufgetreten sind, ein Link zu dem Dokument zur Fehlerbehebung wird angezeigt.
  4. Konfigurieren Sie die Postfächer ohne Zeit Zonen Seite, und klicken Sie dann auf Weiter Um Kalender zu scannen. Elemente.

    Hinweis Wenn das Tool Benutzer findet, die keinen Mailbox-Level-Eigenschaften anzuzeigen, dass die Zeitzone, das Tool scannt tatsächlichen Besprechungen und Termine in den Kalender zum Bestimmen der Zeitzone. Sie können die Anzahl angeben. Kalenderelemente, die das Konfigurations-Tool zum Scannen soll. Die größere Anzahl von Elementen, die Sie angeben, desto länger dauert die Überprüfung Vorgang,.
  5. In der Auflösen der unbekannten Zeitzone anzeigen Namen Seite fordert Sie das Tool zuordnen, das Tool die Zeitzonen eine bekannte Betriebssystem-Zeitzone nicht erkannt. Nachdem Sie dies tun, klicken Sie aufWeiter
  6. Wenn das Konfigurations-Tool Benutzer findet, die mehrere Zeitzonen Sie, werden Sie aufgefordert, um manuell den Konflikt zu lösen, indem eine Zeitzone mit dem Kalender des Benutzers zu aktualisieren. Nachdem Sie dies tun, klicken Sie aufWeiter.
  7. In der Postfach DNs mit nicht aufgelösten Zeit sparen Zonen Seite, haben alle verbleibenden Benutzer, die noch keine Zeitzone Informationen oder die Zeitzoneninformationen in Konflikt stehende noch im aufgezeichnet eine separate Protokolldatei. Klicken Sie auf Weiter.
Die Extraktion der Zeitzone ist nun abgeschlossen. Die Liste der Benutzer der extrahierte Zeitzonen befindet und in der Ausgabedatei (Output.txt) im das Installationsverzeichnis.

Erweiterte Einstellungen

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

In der Regel Menschen erstellen Sie keine Einzelinstanz-Termine viele Monate im voraus. Daher wären viele Monate die DST-Updates installiert bevor die meisten Single-Instance-Sitzungen, die in der erweiterten DST fallen Periode wird erstellten mithilfe der neuen Sommerzeitregeln Übergang. Diese Besprechungen müssen nicht aktualisiert werden.
Wenn ein Benutzer eine Einzel-Instanz erstellt. Besprechung viele Monate im voraus, ist diese Besprechung nicht aktualisiert, wenn diese Einstellung ist angegeben.Diese Einstellung gilt für alle Postfächer auf allen Konferenz Zimmer, und alle Benutzerkalender.
Betriebssystem-Patch-Installation DatumDiese Einstellung gibt an, dass Einzelinstanz-Termine sind nicht nach dem Datum, das Sie angeben, aktualisiert oder erstellt werden aktualisiert.Wenn Sie das genaue Datum wissen, wann alle Clientcomputer wurden aktualisiert werden, verwenden Sie diese Einstellung.

Wenn Sie Besprechungen dazu, die erstellt, nachdem das Update installiert ist, werden nicht aktualisiert. Diese Sitzungen fallen nach den neuen Regeln der Zeitzone.
Diese Einstellung ist nur wirksam, wenn die Client-Computern wurden alle aktualisiert innerhalb von weniger als 24 Stunden, und wenn es hohe Marktdurchdringung des Updates. (Es ist hohe Marktdurchdringung bei den Prozentsatz der Computer in der Organisation, die aktualisiert wurden, ist im hohen die 90-Bereich.)

Darüber hinaus können Administratoren nur eine angeben Datum der Aktualisierung. Besprechungen, die in verschiedenen Zeitzonen erstellt werden, die entsprechen spezifische aktualisiert und auf bestimmte Gruppen von Mal Zonen aktualisiert werden müssen.

Die Implikation für Konferenzräume ist, dass die Konferenz nur aktualisiert Räume sind in der Zeitzone.

Die Implikation für Benutzer Postfächer ist, falls die SuppressExchange Festlegen oder die SuppressAll Einstellung nicht angegeben ist, nur Benutzerpostfächer, gehören Sie zu bestimmten Zeitpunkt Zonen aktualisiert werden.
Diese Einstellung gilt für alle Postfächer, um alle Konferenzräume und alle Benutzerkalender.
SuppressExchange und MaxDepthDiese Einstellungen bewirken, dass alle Termine in einem Kalender des Benutzers, die betroffen sind durch die Zeitumstellung aktualisiert werden, unabhängig von Gibt an, ob der Benutzer der Organisator dieser Elemente im Kalender ist.

Wenn die Benutzer ist der Organisator ein Kalenderelement, Updates nicht an die Teilnehmer gesendet werden, die über verfügen Sie Exchange-Postfächer. Aktualisierungen werden an die Teilnehmer gesendet, die nicht mit Exchange verfügen Postfächer.

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

Die SuppressExchange die Einstellung ist besser als die SuppressAll Wenn die Organisation nicht-Exchange-Einstellung Kalender-Serversysteme und wenn Besprechungen geplant sind, zu den Teilnehmern gehören, sind außerhalb der Organisation.
Keine Besprechungsaktualisierungen werden gesendet, mit Ausnahme nicht-Exchange-Benutzern. Daher kopiert machen sicher, dass der gleichen Sitzung aktualisiert alle Postfächer in der Organisation muss für alle möglichen Teilnehmer aktualisiert werden.

Diese Bedingung kann die Anzahl der erheblich erhöhen. Postfächer, die aktualisiert werden müssen. Deshalb möglicherweise Verarbeitungszeiten erhöht.

Wenn große, geschachtelte Verteilerlisten auf die Teilnehmer sind Liste ist ein Prozess teuer, um zu bestimmen, die Teilnehmer für eine Besprechung und Bestimmen Sie, ob die Teilnehmer über die Exchange-Postfächer. Wenn Sie dies angeben. festlegen und einen hohen Wert für die MaxDepth Parameter, eine erhebliche Belastung für die Domäne genommen werden kann Domänencontroller.
Diese Einstellung gilt nur für Benutzerpostfächer.
SuppressAllDiese Einstellung bewirkt, dass alle Termine im Kalender des Benutzers, die von der Sommerzeit betroffen sind, ändern unabhängig davon, ob der Benutzer der Organisator dieser Kalender aktualisiert Elemente.

Wenn der Benutzer die Veranstalter eines Kalenderelements ist, sind Aktualisierungen nicht an die Teilnehmer gesendet.
Verwenden Sie diese Einstellung, wenn Sie nicht, dass Teilnehmer möchten erhalten von Besprechungsaktualisierungen von Organisatoren für Besprechungen, die betroffen sind die längere DST.Es werden keine Besprechungsaktualisierungen gesendet. Aus diesem Grund machen Sie sicher, dass Kopien der gleichen Sitzung für alle möglichen Teilnehmer aktualisiert werden, jedes Postfach in der Organisation muss aktualisiert werden.

Diese Bedingung kann erheblich erhöhen Sie die Anzahl der Postfächer, die aktualisiert werden müssen. Daher können die Verarbeitungszeiten erhöht werden.

Teilnehmer, die sich nicht haben Sie die Exchange-Postfächer werden keine Updates erhalten. Ihre Termine möglicherweise nicht aktualisiert, abhängig vom e-Mail-System, das sie ausgeführt werden und je nach die Aktionen, die ihr Administrator übernimmt.
Diese Einstellung gilt nur für Benutzerpostfächer.

Aktualisieren von Konferenzräumen und Ressourcenpostfächer

Sie müssen Konferenzräume und Ressourcenpostfächer zu vermeiden aktualisieren. Buchung steht in Konflikt. Gehen Sie hierzu folgendermaßen vor:
  1. Auf der Geben Sie Ressourcen und Konferenzraum Kalender Seite, geben oder fügen Sie der Liste der Aliase für Konferenzräume in Ihrer Organisation. Klicken Sie auf Auflösen Überprüfen Sie die Aliase, und klicken Sie dann auf Weiter.
  2. Auf der Zeitzonen für Ressource aufzulösen und Conference Room-Kalender Seite fordert Sie das Tool, manuell Geben Sie die Zeitzone für einen Konferenzraum, wenn nicht der Konferenzraum haben Sie eine Zeitzone. Dazu ein, und klicken Sie dann auf Weiter.
  3. Eine Erinnerung angezeigt wird, die Sie daran erinnern, dass das Tool Kalender aktualisiert wird. Klicken Sie auf Weiter.
  4. Beachten Sie, die eine Statusleiste, die einen Link zu der Ausgabe zu protokollieren, und ein Echtzeit-Anzeige der Ausgabe des Tools werden angezeigt. Klicken Sie aufWeiter.

    Wenn Fehler auftreten, einen Link zu der Problembehandlung bei Dokument wird am unteren Rand dieser Seite angezeigt.

Benutzer-Mailbox-Kalender aktualisieren

Gehen Sie hierzu folgendermaßen vor:
  1. Auf der Einstellungen für das Postfach des Benutzers aktualisieren Kalender Seite, konfigurieren Sie die Einstellungen für das Update.

    If Sie haben nicht angegeben die SuppressExchange oderSuppressAll Erweiterte Einstellungen, wählen Sie die Zeitzonen von der Sommerzeit betroffen. Wählen Sie andernfalls alle Zeitzonen.

    Klicken Sie aufWeiter.
  2. Eine Erinnerung angezeigt wird, die Sie daran erinnern, dass das Tool Kalender aktualisiert wird. Klicken Sie auf Weiter.
  3. Beachten Sie, die eine Statusleiste, die einen Link zu der Ausgabe zu protokollieren, und ein Echtzeit-Anzeige der Ausgabe des Tools werden angezeigt. Nach die Aktualisierung abzuschließen, klicken Sie auf Weiter.

    Wenn Fehler auftreten, ein Link zu dem Dokument zur Fehlerbehebung wird am unteren Rand dieser angezeigt. Seite.
  4. Klicken Sie auf Fertig stellen.

Exchange-Tool Log-Dateien und Unterverzeichnisse

Log-Dateien

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

    Diese Datei enthält eine Liste der Benutzerpostfächer für alle, die zusammen mit ihren Zeitzoneninformationen wurden extrahiert werden.
  • TimeZoneExtraction.log

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

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

    Dieses Protokoll enthält die kombinierte Ausgabe des Benutzers Mailbox-Update-Prozess für alle Server.
  • CalendarScan.log

    Dieses Protokoll enthält die kombinierte Ausgabe des Kalenders Scan-Vorgang für alle Server.
  • ConflictUsers.txt

    Dieses Protokoll enthält eine Liste der Benutzer, die widersprüchliche haben Zeitzonen. Z. B. die Postfacheigenschaften des Benutzers angeben, die sie mehrere Zeitzonen gehören.
  • NonExistent.txt

    Dieses Protokoll enthält eine Liste der Benutzer keine Zeitzone Informationen.

Unterverzeichnisse

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

    Dies ist das Unterverzeichnis arbeiten für den Updateprozess 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 Aktualisierungsprozess.
    • Errors.txt

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

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

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

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

    Es ist ein Unterverzeichnis für jeden server für die Extraktion der Zeitzone oder ein Kalender-Update ausgeführt wurde. Diese Unterverzeichnisse enthalten die folgenden Unterverzeichnisse:
    • CalendarScan

      Dies ist das Unterverzeichnis arbeiten für den Kalender-scan Prozess.
    • Extrahieren

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

      Dies ist das Unterverzeichnis arbeiten für das Benutzerpostfach Aktualisierungsprozess. Es enthält das folgende Unterverzeichnis:
      • LogFiles

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

Was tun, nach dem Ausführen des Exchange-Tools

Nachdem Sie das Exchange-Tool für alle Exchange ausgeführt haben Server in Ihrer Umgebung gelten die entsprechenden Exchange Server DST-Aktualisierungen. In der folgenden Liste wird organisiert von Exchange Server Versions- und Service Pack Ebene. Installieren Sie die Updates für Ihre Version von Exchange Server in Reihenfolge.

Exchange Server 2007
940006 Beschreibung von 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 Daylight Saving Time (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 ist eine Organisation in der Zeitzone Westaustralien
Exchange Server 2003 SP2
926666 Update für Änderungen der Sommerzeit im Jahr 2007 für Exchange 2003 Service Pack 2
931915 Update für in Neufundland Sommerzeit-Änderungen von 2007 für Exchange Server 2003 Service Pack 2
929895 Termine, die zwischen verschiedenen Exchange Server Organisationen gesendet werden möglicherweise nicht korrekt nach einer Stunde, wenn eine der Organisationen in der Zeitzone Westaustralien ist
937653 Erleben Sie eine oder mehrere Probleme in Exchange Server 2003 nach der Sommerzeit für Änderungen von Neuseeland 2007
Exchange Server 2003 SP1
940123 Treten Probleme in Exchange 2003 Servicepack 1 nach Daylight Saving Time (DST) in Neuseeland 2007 startet

Bekannte Probleme

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

    Wenn Sie auf die Exchange Server-Updates installieren den Bevor Sie aktualisieren die Postfächer wiederkehrende Besprechungen, die Exchange-server in Outlook Web Access erstellt werden durch das Exchange-Tool nicht aktualisiert.

    Um dieses Problem zu beheben, entfernen Sie die Exchange Server-Updates, führen Sie die Exchange Tool und anschließendes Neuinstallieren von Exchange Server-Updates an der Börse Server.
  • Exchange 2007 muss neu gestartet werden nach dem Ausführen des Exchange-Tools

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

    Das Exchange-Tool nicht erfolgreich Wenn installiert ist entweder ist der folgende Registrierungsschlüssel vorhanden ist:
    • HKEY_CLASS_ROOT\Outlook.Application.9
    • HKEY_CLASS_ROOT\Outlook.Application.10
    In diesem Szenario sinngemäß die folgende Fehlermeldung angezeigt Wenn Sie versuchen, das Exchange-Tool zu installieren:
    Exchange Server Neuen Basisadressen Kalenderprogramm kann nicht mit dieser Version von Microsoft installiert werden Outlook.
    Um dieses Problem zu umgehen, löschen Sie diese Registrierungsschlüssel, Installieren Sie das Exchange-Tool, und klicken Sie dann Wiederherstellen der Registrierung Schlüssel.

    Wichtig Dieser Abschnitt, Methode oder Aufgabe enthält Schritte, die Sie, wie sagen zu Ändern Sie die Registrierung. Allerdings können schwerwiegende Probleme auftreten, wenn Sie ändern die Registrierung falsch. Stellen Sie daher sicher, dass Sie diese Schritte sorgfältig durch. Für zusätzlichen Schutz sichern Sie die Registrierung, bevor Sie es ändern. Anschließend können Sie die Registrierung wiederherstellen, falls ein Problem auftritt. Weitere Informationen Informationen zum Sichern und Wiederherstellen der Registrierung, klicken im folgenden Artikel Nummer, um den Artikel der Microsoft Knowledge Base anzuzeigen:
    322756 Wie sichern und Wiederherstellen der Registrierung in Windows
  • Gibt es ein Limit für die Anzahl der Postfächer, die pro-Server verarbeitet werden können

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

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

    Wenn Sie das Exchange-Tool für ein Postfach ausführen, die hat bereits aktualisiert durch das Outlook-Tool oder umgekehrt, erleben Sie keine Seite Effekte. Jedoch, wenn Sie das Exchange-Tool ausführen, besteht keine Notwendigkeit für Benutzer das Outlook-Tool separat ausführen.
  • Non-Meeting Erinnerungen werden später als erwartet angezeigt.

    Non-Meeting Erinnerungen für Postfächer, die durch aktualisiert werden das Exchange-Tool werden nicht aktualisiert, wenn Outlook nie auf das Postfach verbunden ist im Onlinemodus. In diesem Fall Erinnerungen angezeigt eine Stunde später als erwartet.

    Wenn Outlook im Onlinemodus nie verbunden wurde, müssen Sie Passen Sie die falschen Erinnerungen für Termine im Kalender, die das Outlook-Tool sucht. Darüber hinaus ist der Erinnerungen Suchordner im Postfach nicht vorhanden. Daher wird das Tool e-Mail-Nachrichten, Kontakte oder andere Erinnerungen nicht aktualisiert.

    Z. B. aktualisieren das Tool die Erinnerung für ein e-Mail-Element nicht Follow-up zu einem Zeitpunkt in der Zukunft. Das Tool aktualisiert auch nicht die Erinnerung für einen Task-Element, 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 sie, und führen Sie Setup erneut"

    Wenn Sie Exchange-Kalender-Update bereits installiert Toolversion 1.0, müssen Sie diese Version deinstallieren bevor Sie Exchange installieren Kalender-Update-Tool Version 2.0.

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

    Wenn Sie weiterhin treten Sie Probleme auf, wenn Sie Version 2.0 des Exchange-Tools installieren, Versuchen Sie es erneut installieren und dann Version 1.0 des Tools Exchange deinstallieren. Do Dies mithilfe der MSI-Pakete anstelle von der Hinzufügen oder entfernen Programme Funktion in der Systemsteuerung. Starten Sie Ihren Computer und Installieren Sie Version 2.0 des Exchange-Tools.

    Wenn diese Prozedur führt nicht funktioniert, extrahieren Sie die Binärdateien direkt über die MSI-Pakete.
  • Wenn Sie Outlook oder Exchange-Update-Tools ausführen, sind Termine deaktiviert um eine Stunde auf Postfächer, in denen die Landeszeitzone Neuseeland Normalzeit ist

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

    Dieses Verhalten tritt auf, weil Windows Vista Time Zone behandelt. Informationen anders als andere Versionen von Windows tun. Wenn Sie nicht ausführen, die Outlook oder Exchange-Tools erneut am oder nach dem 1. Januar 2008 aktualisieren alle Termine im zweiten DST-Ereignis werden von einer Stunde deaktiviert sein. Der zweite DST Ereignis enthält Datumsangaben vom 16. März 2008 bis 6 April 2008.

    Wenn Sie nicht Warten Sie bis zum 1. Januar 2008 um Termine in der zweiten DST aktualisieren möchten Ereignis, können Sie Outlook oder Exchange-Update-Tools auf einem Computer ausgeführt Windows XP oder Windows Server 2003 ausgeführt.
  • Ein Datum im Format TT/MM/JJJJ wird im Format tt/mm/jjjj geändert.

    Festlegen der Betriebssystem-Patch-Datum Option in den Austausch Kalender-Update-Tool. Wenn Sie dies tun, das Exchange Calendar Update Tool funktioniert nicht ordnungsgemäß. Dieses Problem tritt auf, weil das Datumsformat DD/MM/JJJJ, tt/mm/jjjj geändert wird.

    Darüber hinaus eine Fehlermeldung ähnlich der folgende Fehlermeldung wird im Fehlerprotokoll protokolliert:
    [28/02/2008 7: 10: 21 AM] [776]: Wmain: Fehler beim Lesen der Konfiguration - Fehler 0 x 80070057.
    Dieses Problem tritt wegen eine falsche Einstellung im Abschnitt Beispiel Postfächer.ServernameINI-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" enthält, das Datum "2/28/08". Dieses Datum sollte im Format MM/TT/JJJJ.

    Um dieses Problem zu umgehen, verwenden Sie nicht die Betriebssystem-Patches Datum Option.

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: Mittwoch, 19. Oktober 2011 - Version: 1.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 und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
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