Outlook Offline Adressbuch (OAB) - Hinter den Kulissen
Wer Outlook im Cached Mode oder gar Offline betreibt, hat auf dem lokalen PC nicht nur eine OST-Datei mit einer Kopie des Postfachs und optional den öffentlichen Ordnern Favoriten, sondern auch eine Kopie des Adressbuchs der Firma. Outlook lädt dazu beim ersten Start eine vollständige Kopie eines vom Server bereit gestellten Adressbuchs herunter und in der Folge immer nur noch die Änderungen . Nur wenn Outlook länger als 30 Tage "offline" war oder die Anzahl der Änderungen mehr als 10% ausmachen, startet Outlook wieder einen kompletten Download.
Generierung
Damit der Client überhaupt ein OAB herunter laden kann, muss der Server diese Information natürlich erst einmal bereit stellen. Das Verfahren ist seit Exchange 5.5 (?) nahezu unverändert. Ein Hintergrundprozess erstellt per Default gegen 05:00 uhr Ortszeit ein Update und legt dieses zum Download bereit. Dazu kommen je nach Exchange Version unterschiedliche Orte zum Einsatz:
Ort | Outlook Version | Exchange 5.5 | 2000/2003 | 2007/2010 |
---|---|---|---|---|
MAPI:Public Folder V1 |
nur alte Dos/Windows Clients mit Exchange 4.0/5.0 |
nein |
nein |
nein |
MAPI:Public Folder V2 |
Alle "non unicode-Clients" Outlook 2007/2010 |
Ja |
Ja |
Optional |
MAPI:Public Folder V3 |
Alle "Unicode-Clients" Outlook 2003 |
Ja |
Ja |
Optional |
MAPI:Public Folder V4 |
Outlook 2003 ab SP2 |
Nein |
Ja |
Optional |
http://server/OAB |
Outlook 2007/2010 |
Nein |
Nein |
Default |
Die weiteren Details sind auf den Seiten E2K7:OABGen und Exchange Offline Adressbuch anlegen beschrieben.
In Office 365 können Sie den Zeitpunkt
der Generierung meines Wissens nach nicht bestimmen.
Offline address books in Exchange Online (https://technet.microsoft.com/en-us/library/mt763296(v=exchg.150).aspx)
- OAB Version 4 in Exchange Server 2003 Service Pack 2
http://technet.microsoft.com/en-us/library/aa996131(EXCHG.65).aspx - Setting up Servers to Support Offline Address Books
http://technet.microsoft.com/en-us/library/bb124041(EXCHG.65).aspx - Determining the OAB version being used by Outlook
2003 SP2
http://blogs.technet.com/b/exchange/archive/2006/03/29/423532.aspx
Download per Public Folder (Alle Outlook Versionen)
Outlook 97 bis Outlook 2010 unterstützen weiterhin den Download von Offline Adresslisten per MAPI aus den öffentlichen Ordnern. Dieser Weg ist in der Regel problemlos und kann nur daran scheitern, dass der Server kein Adressbuch bereit stellt oder der Client kein Replikat des Ordners erreichen kann. Hierzu gibt es aber aber ausreichend Quellen im Internet und aufgrund der schnellen Abnahme von Exchange 2003 und älter und Outlook 2003 zugunsten von Exchange 2007 und neuer und Outlook 2008 beschäftigt sich diese Seite nur mit dem Download per HTTP
OAB Download mit Outlook 2007/2010
Outlook2007/2010 und Exchange 2007/2010 laden das Offline Adressbuch vom Server nicht mehr MAPI sondern über HTTP des IIS und BITS. Outlook 2007 stellt also auf dem Client in den BITS-Dienst den Auftrag ein, er möge doch bitte das Offline Adressbuch herunter laden. Und wenn dies nicht funktioniert, dann findet der Anwender eben einen ziemlich nichtssagende Fehlermeldung in seinem Ordner "Synchronisierungsprobleme":
Wenn Sie aber nun wissen, dass der Download nicht von Outlook selbst sondern über BITS erfolgt, dann sollten Sie in einer DOS-Box einfach mal BITSADMIN verwenden. (oder zukünftig die passenden PowerShell Befehle). Hier sehen Sie genau den Job und auch die Fehlermeldung dazu.
Selbst wenn der Download, wie bei uns, per HTTP erfolgt. Hier das ganze noch mal als Text, damit auch Google und andere Suchmaschinen diese Seite finden können.
C:\>bitsadmin /list /verbose BITSADMIN version 3.0 [ 7.5.7600 ] BITS administration utility. (C) Copyright 2000-2006 Microsoft Corp. BITSAdmin is deprecated and is not guaranteed to be available in future versions of Windows. Administrative tools für the BITS service are now provided by BITS PowerShell cmdlets. GUID: {14F18F96-E68B-4BF5-B680-67533D8EA94B} DISPLAY: 'Microsoft Outlook Offline Address Book' TYPE: DOWNLOAD STATE: TRANSIENT_ERROR OWNER: MSXFAQ\fcarius PRIORITY: NORMAL FILES: 0 / 1 BYTES: 0 / 25073 CREATION TIME: 09.04.2010 16:19:17 MODIFICATION TIME: 09.04.2010 16:19:45 COMPLETION TIME: uNKNOWN ACL FLAGS: NOTIFY INTERFACE: uNREGISTERED NOTIFICATION FLAGS: 3 RETRY DELAY: 600 NO PROGRESS TIMEOUT: 1209600 ERROR COUNT: 5 PROXY USAGE: PRECONFIG PROXY LIST: NULL PROXY BYPASS LIST: NULL ERROR FILE: https://owa.netatwork.de/OAB/d7348a69-9919-4f90-9d85-c15536c228ee/oab.xml -> C:\\AppData\Local\Microsoft \Outlook\oab17.xml ERROR CODE: 0x801901f4 - HTTP-Status 500: Der Server kann die Anforderung aufgrund eines unbekannten Fehlers nicht erfüllen. ERROR CONTEXT: 0x00000005 - Fehler beim Verarbeiten der Remotedatei. DESCRIPTION: Microsoft Outlook Offline Address Book Directory JOB FILES: 0 / 25073 WORKING https://owa.netatwork.de/OAB/d7348a69-9919-4f90-9d85-c15536c228ee/oab.xml -> C:\\AppData\Loca l\Microsoft\Outlook\oab17.xml NOTIFICATION COMMAND LINE: none owner MIC integrity level: MEDIUM owner elevated ? false Peercaching flags Enable download from peers :false Enable serving to peers :false CUSTOM HEADERS: NULL Listed 1 job(s). C:\>
Hier ist also zu sehen, dass der Server mit einem 500er Fehler antwortet.
Troubleshooting
Am einfachsten ist es nun erst mal, die angefragte URL in einem Browser einzugeben und zu sehen, ob sie dann die Datei bekommen, nachdem ich mich natürlich erst mal authentifiziert hatte
In meinem Fall war das aber kein Problem. Also kann es nur an einer besonderen Art des "Request" liegen, mit der BITS hier die Anfrage stellt. Im Hintergrund macht der IIS seine Arbeit. Also hier ein Blick ins Log geworfen. (gekürzt).
POST /Autodiscover/Autodiscover.xml - 443 - 192.168.100.20 Microsoft+Office/12.0 401 0 0 0 POST /Autodiscover/Autodiscover.xml - 443 MSXFAQ\fcarius 192.168.100.20 Microsoft+Office/12.0 200 0 0 31 HEAD /OAB/d7348a69-9919-4f90-9d85-c15536c228ee/oab.xml - 443 - 192.168.100.12 Microsoft+BITS/7.5 401 2 5 124 HEAD /OAB/d7348a69-9919-4f90-9d85-c15536c228ee/oab.xml - 443 - 192.168.100.12 Microsoft+BITS/7.5 401 2 5 171
Ok, hier kommen also erst Autodiscover und dann zwei anonyme Anfragen an, aber keine 500er Rückmeldung, die mein Client vermeldet.
Also galt meine Aufmerksamkeit dann dem ISA-Server, welche in meinem Fall die Anfragen einsammelt. Um das besser "debuggen" zu können habe ich eine eigene Web Veröffentlichungsregel erstellt, die OAB bereit gestellt hat.
Dann war die Anzeige im ISA-Status einfacher zu filtern.
Hier sieht man, dass die Anfragen anscheinend fehl schlagen. Etwas stöbern im Netz hat mehrere mögliche Gründe angegeben:
- IIS HTTP Redirect auf der Webseite
Wer den Zugriff auf OWA vereinfachen möchte, indem er einen Zugriff auf die Wurzel dank IIS auf "/owa" umleitet, bricht damit auch den OAB-Download. War bei mir nicht der Fall. - ISA-Delegation
Wer am ISA eine "Vorauthentifizierung" macht, muss sicherstellen, dass die Authentifizierung zwischen ISA und Backend natürlich auch übereinstimmt. Ein entsprechender Fehler ist aber einfach im ISA-Log zu erkennen und war bei mir nicht der Fall- ISA Delegation breaks OAB downloads
http://blogs.msdn.com/dgoldman/archive/2008/05/29/isa-delegation-breaks-oab-downloads.aspx - Using ISA Server with Outlook
Anywhere
http://technet.microsoft.com/en-us/library/bb331965.aspx - ISA 2006 SP1 Configuration with
Exchange 2010
http://blogs.technet.com/b/exchange/archive/2009/12/17/453625.aspx - 912122 Error message when you try to connect to a Web site that is published by using ISA Server 2004 Service Pack 2: "403" or "500"
- Server Publishing is Failing through
ISA Server
http://blogs.technet.com/isablog/archive/2009/01/09/server-publishing-is-failing-through-isa-server.aspx
- ISA Delegation breaks OAB downloads
- Anmeldung
Im Log habe ich gesehen, dass die Anfragen "anonym" kommen. Entsprechend haben ich die Anmeldeoptionen beim ISA und Backend-Server überprüft. Da die Verbindungen alle per SSL verschlüsselt sind, musste ich mir mit dem privaten Key des ISA und Wireshark behelfen, um den SSL-Traffic von meinem Client zu entschlüsseln. ("80.66.20.20,443,http,c:\isa.key")
Die erste Anfrage landet auf einem 401 um dann per NTLM ohne Challenge noch einen Fehler zu bekommen und dann auf einem 500er Fehler zu landen, der aber auf dem Exchange Server nicht zu sehen ist.
Nach dem das alles nichts gefruchtet hat und also Zugriffe, SSL-Zertifikate, Authentifizierung etc. alles ausgeschlossen war, war guter Rat teuer. Aber
Bösewicht Link Translation
Letztlich habe ich aber durch die Recherche doch noch eine Option gehabt, "OAB not downloading für external clients (http://forums.isaserver.org/m_2002068861/mpage_1/key_/tm.htm#2002069031)" führte mich dann auf die Spur, dass ein besonderes Feature des ISA-Servers hier mit einen Streich spielen könnte. Allerdings würde das nicht dazu passen, da auch der interne Download ohne ISA-Server bislang ebenfalls nicht funktioniert hat. Aber in dem Zusammenhang bin ich dann auf eine Fall in Verbindung mit RPC over HTTP gestoßen. Ich hatte hier nämlich eingestellt, dass ich für schnelle und langsame Verbindungen RPC/HTTP aktiviert hatte.
In Verbindung mit Autodiscover kamen dabei gar nicht meine "Exchange RPC"-Einstellungen für interne Zugriffe zu tragen, sondern immer die "Exchange HTTP"-Einstellungen. Damit ist mein Client von Intern auch über die externe URL auf den Exchange Server gegangen. Nachdem ich die "Link Translation" auf der OAB-Regel deaktiviert habe, konnte mein Outlook dann auch endlich per BITS wieder sein Offline Adressbuch herunter laden.
Wobei auch hier die vergangenen Probleme und Versuche erst mal dazu geführt haben, dass in der BITS-Warteschlange noch einige Reste standen und erst ein Neustart von Outlook und ein manueller Download eines kompletten Adressbuchs den Knoten gelöst hat. Wobei das auch meiner ungeduld geschuldet war. Vielleicht hätte sich Outlook auch noch selbst gefangen.
Passende Lösung
Das ganze führt aber natürlich zu einer ganz neuen Betrachtung des Outlook Cached Mode, RPC over HTTP, E2K7:OABGen und Autodiscover. Vielleicht ist es doch passender, wenn man "schnelle Verbindungen" erst per TCP nutzt und damit "RPC Native" gegen Exchange CAS-Server einsetzt um damit auch die "InternalURL"-Einstellungen für die sonstigen Dienste zu nutzen und Outlook erst dann auf RPC over HTTP umschaltet, wenn der Server per TCP direkt nicht zu erreichen ist. Nebenbei ist das sicher auch eine interessante Basiskonfiguration für Direct Access, also das IPSec-VPN über IPV6, welches mit Windows 7 und Windows 2008 R2 verfügbar wird.
Alternativ könnte ein Split-DNS derart helfen, dass auch Zugriff auf die über "ExternalURL" spezifizierten Adressen aus dem internen LAN doch auf den internen Servern landen. Allerdings müssen diese dann natürlich auch in den Zertifikaten die externen Namen haben. Wenn zudem der externe Zugriff per ISA Authentifizierung vielleicht mit Tokens gesichert ist, dann kann es wieder stören, dass intern keine Anmeldemaske kommt ,sondern die integrierte Anmeldung den direkten Zugriff erlaubt.
Weitere Links
- Outlook Cached Mode
- RPC over HTTP
- E2K7:OABGen
- Exchange Offline Adressbuch anlegen
-
Offline address books in Exchange Online
https://technet.microsoft.com/en-us/library/mt763296(v=exchg.150).aspx - 831124 How to force Outlook 2007 or Outlook 2003 to
resolve proxy addresses and custom properties in Cached
Exchange Mode
Outlook ts receive error 0x8004010f when downloading the
Offline Address Book
http://blogs.technet.com/b/exchange/archive/2007/04/19/437902.aspx - 811870 XADM: Troubleshoot offline address book download issues
- Exchange 2007 Offline Address Book Web Distribution
http://blogs.technet.com/b/exchange/archive/2006/11/15/431502.aspx - OAB Downloads fail with 0x80190197
http://blogs.msdn.com/dgoldman/archive/2007/02/15/oab-downloads-fail-with-0x80190197.aspx - Offline address book Connecting to Microsoft
Exchange
http://lugies15.blogspot.com/2008/09/offline-address-book-connecting-to.html - MIME Types in ISA Server 2004 - Link Translation and
Content Types
http://technet.microsoft.com/en-us/library/cc302528.aspx - How large is my Exchange Offline Address Book (OAB)?
https://blogs.technet.microsoft.com/exchange/2012/04/27/how-large-is-my-exchange-offline-address-book-oab/