Outlook Suche: Onlineergebnisse sind auf 250 Elemente begrenzt! Es werden nicht alle Suchergebnisse angezeigt

Ich hatte folgenden Fehler bei Outlook-User, die eine größere Ordnerstruktur durchsucht haben


Die User bekommen tatsächlich nur 250 Suchergebnisse angezeigt, was jetzt nicht besonders viel ist, wenn man eine ältere Mail sucht!

Ich dachte erste, dass es was mit den MaxObjects zu tun hat und habe daher die MaxObjects für Folder, FolderView, Message und MessageView auf 2000 gesetzt. Heute besteht das Problem weiterhin. Nach etwas Recherche habe ich doch dann tatsächlich einen Eintrag gefunden, der das Problem schildert und löst.
Dieses Einstellung kann erst seit Exchange 2013 CU11 geändert werden und muss aber manuell angepasst werden.

1.) Öffnen Sie die Datei "%ExchangeInstallPath%/Bin/Microsoft.Exchange.Store.Worker.exe.config"
2.) Suchen Sie hier den Schlüssel /runtime
3.) Fügen Sie danach folgende Zeilen hinzu:



Hiermit werden die Sucheregbnisse auf 1.000 Elemente erweitert.
4.) Starten Sie den Informationsspeicher durch

Damit aber noch nicht genug, da wir hiermit die Beschränkung auf dem Server aufgehoben haben, aber NICHT am Client.
Hier gibt es noch eine Einstellung im Outlook, die die Suchergebnisse ebenfalls beschränkt:

Scheinbar gibt es aber in den Microsoft-GPOs keine Einstellungmöglichkeit und somit muss man einen RegKey per GPO ausstreuen. Diese Einstellung gibt es aber erst ab Outlook 2013. Hier die RegKeys dazu:
Office 2013: HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Search
Office 2016: HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Search
REG_DWORD “SearchResultsCap” anlegen
Hier den Wert “0” vergeben (Hier kann auch der gleiche Wert wie auf dem Server eingetragen werden)

Ein scheinbar kleines Problem hat mich gut bechäftigt!

Quelle: somoit: Exchange 2013 – Solved the “Search results limited to 250” bug

Exchange Autodiscover: Wie wird die Autodiscover-URL ermittelt?

Problem:
Für mich hat sich die Frage gestellt, wie der Outlook-Client (gerade außerhalb der Organisation über Outlook Anywhere) den Autodiscover FQDN bekommt, die er anfragt um seine Autodiscover-Informationen zu bekommen.

Lösung:
Der Outlook-Client geht hier nach einem fest definierten Schema vor, dass man wissen sollte, da man sonst nicht versteht, warum der Client keine Autodiscover-Informationen erhält.

WICHTIG VORWEG: Als Mail-Domäne nimmt der Client nicht die Windows-Domäne sondern die Mail-Domäne der PRIMÄREN Mail-Adresse des Benutzers
Das kann Probleme machen, wenn man einem Benutzer nur eine interne Mailadresse gibt oder dieser verschiedene externe Mail-Adresse zugewiesen bekommen hat. Vor allem, wenn der Benutzer per Outlook Anywhere zugreift und keinen SCP erreichen kann und somit die Autodiscover-URLS abklappert.

Folgenden Ablauf durchläuft der Client für das Autodiscover-Ermittlung:
1.) Abfrage SCP (Service Connection Point) aus dem AD (ClientAccessServer AutodiscoverServiceInternalURI)
2.) Anfrage auf https://mail-domäne/autodiscover/autodiscover.xml
3.) Anfrage auf https://autodiscover.mail-domäne/autodiscover/autodiscover.xml
4.) Anfrage auf http://autodiscover.mail-domäne/autodiscover/autodiscover.xml
5.) Abfrage eines SRV-Records
6.) Verwendung der lokalen autodiscover.xml, soweit bereits vorhanden

Quelle: SebastianHetzel.net: Exchange Autodiscover

Exchange 2007 - 2013 Migration: Outlook verlangt ständig Anmeldedaten (Credential Popup) für Öffentliche Ordner

Problem:
Ich bin gerade bei einer Migration von Exchange 2007 auf Exchange 2013.
Da die Migration im laufenden Betrieb durchgeführt wird und Exchange 2013 nicht direkt auf die Öffentlichen Ordner von Exchange 2007 zugreifen kann, musste ich die Discovery-Mailbox-Variante wählen um den Zugriff der umgezogenen Clients zu ermöglichen (siehe Quelle unten).
Dabei ist aufgefallen, dass alle umgezogenen Benutzer auf Exchange 2013 mehrmals am Tag die Verbindung zum Öffentlichen Ordner auf Exchange 2007 verloren haben und sich ein Anmeldefenster dazu öffnet. Das war sehr lästig und ich habe viel an den IIS-Einstellungen vom alten und neuen Exchange versucht - alles erfolglos!
Daraufhin habe ich herausgefunden, dass ich Outlook über die Exchange-Proxy-Einstellungen zu einem TCP-Connect "zwingen" kann, indem ich dort den Haken "Bei schneller Verbindung zuerst über HTTP verbinden" entferne. Damit versucht Outlook erst eine TCP-Verbindung und dann eine HTTP-Verbindung. Das klappt super gut und die Verbindung zum alten Server geht über RPC/TCP und zum neuen über RPC/HTTP.
Das nächste Problem: Das Autodiscover überschreibt meine Einstellungen und setzt mir den Haken immer wieder neu!!!

Lösung:
Man kann mittels Registry eine Policy setzen, wodurch man die Einstellung dauerhaft festsetzen kann.
Hier die Policy, wie ich Sie aktuell für Outlook 2007 - 2013 erfolgreich einsetze:

Key : HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\office\xx.0\Outlook\RPC
Value Name : proxyserverflags
Value Type : REG_DWORD
Value : 39 (27h)


Wobei xx für die jeweilige Office-Version steht (12 = Office 2007, 14 = Office 2010, 15 = Office 2013, 16 = Office 2016)

Das ist zwar nicht die sauberste Lösung, da ich eigentlich das Problem am Exchange 2007 nicht gelöst habe doch will ich gerade nicht die Konfiguration des alten Servers so extrem abändern, dass mir etwas anderes "um die Ohren fliegt". Außerdem wird der alte Exchange-Server nach der Migration sowieso abgeschaltet und damit erledigt sich dann auch das Problem.

Quelle für Flags: getadmx.com: RPC/HTTP-Verbindungs-Flags

Quelle Discover Public Folder 2013: Technet: Konfigurieren älterer öffentlicher Ordner, wenn sich die Postfächer der Benutzer auf Exchange 2013-Servern befinden


Exchange: Anzahl der gesendeten und empfangenen Mails eines Benutzers in einem bestimmten Zeitraum ermitteln

Problem:
Ich habe die Aufgabe bekommen, als unabhängige Instanz. zur ermitteln, wie viele Mails ein Benutzer in einem bestimmten Zeitraum empfängt bzw. versendet (z.B. um einen Arbeitsaufwand des Mailaufkommens zur ermitteln).

Lösung:
Ich habe hier ein sehr schönes Powershell-Skript auf MSExchange.org von Nuno Mota gefunden, das genau diese Information ausgibt. Vielen Dank hierfür!!

[Int] $intSent = $intRec = 0
Get-TransportServer | Get-MessageTrackingLog -ResultSize Unlimited -Start “10/01/2012” -End “11/01/2012” -Sender "user@domain.com" -EventID RECEIVE | ? {$_.Source -eq "STOREDRIVER"} | ForEach { $intSent++ }
Get-TransportServer | Get-MessageTrackingLog -ResultSize Unlimited -Start “10/01/2012” -End “11/01/2012” -Recipients "user@domain.com" -EventID DELIVER | ForEach { $intRec++ }
Write-Host "E-mails sent:    ", $intSent
Write-Host "E-mails received:", $intRec


Die Original-Quelle können Sie dem Link unten entnehmen. Ich möchte das Skript nur hier trotzdem veröffentlichen, falls der Link mal down geht. Getestet habe ich das Skript unter Exchange 2007 SP3.

Quelle:
MSExchange.org: Number of E-mails Sent and Received by one User by Nuno Mota
“Sicher ist, dass nichts sicher ist. Selbst das nicht.”
Joachim Ringelnatz