Hallo zusammen,
mal wieder ein seltsames Phänomen, welches sich aufzuschreiben lohnt. Ein Exchange 2013 (CU9) Multi-Role Server welcher Mitglied einer DAG ist, hatte permanent Probleme mit dem Content Index State der unterschiedlichsten Datenbanken. Durch die Bank war der Content Index State mal "healthy" und manchmal "failed".
Geprüft habe ich den jeweiligen Stauts mit folgenden PowerShell Befehl:
Get-MailboxDatabaseCopyStatus | FL Name,*Index*
Das Eregebnis war dann sehr aufschlussreich:
Name : Mailboxdatabase01
ContentIndexState : Failed
ContentIndexErrorMessage : An internal error occurred for the database or its index.
ContentIndexErrorCode : 2
Gleichzeitig wurde im Eventlog folgender Fehler (Event-ID 1009, MSExchangeFastSearch) protokolliert:
The indexing of mailbox database Mailboxdatabase01 encountered an unexpected exception. Error details: Microsoft.Exchange.Search.Core.Abstraction.OperationFailedException: The component operation has failed. ---> Microsoft.Exchange.Search.Core.Abstraction.OperationFailedException: The component operation has failed. ---> Microsoft.Exchange.Search.Fast.FastDocumentTimeoutException: The Content Submission Service returned failure for the document: Document timeout expired
. ---> System.TimeoutException: Document timeout expired
--- End of inner exception stack trace ---
at Microsoft.Exchange.Search.Fast.FastFeeder.EndSubmitDocument(IAsyncResult asyncResult)
at Microsoft.Exchange.Search.Mdb.RetryFeeder.DocumentCompleteCallback(IAsyncResult asyncResult)
--- End of inner exception stack trace ---
at Microsoft.Exchange.Search.Core.Common.Executable.EndExecute(IAsyncResult asyncResult)
at Microsoft.Exchange.Search.Engine.SearchFeedingController.ExecuteComplete(IAsyncResult asyncResult)
--- End of inner exception stack trace ---
at Microsoft.Exchange.Search.Core.Common.Executable.EndExecute(IAsyncResult asyncResult)
at Microsoft.Exchange.Search.Engine.SearchRootController.ExecuteComplete(IAsyncResult asyncResult)
Das Re-Seeding des Content Index, was ich als ersten getestet hatte, brachte leider nicht wirklich den Erfolg, Erst mit dem Anlegen einer globalen Sicherheitsgruppe namens "ContentSubmitters" konnte das Problem behoben werden. Sobald die Gruppe angelegt ist, in der Registerkarte "Sicherheit" die Benutzer "NetworkService" und "Administrators" die Berechtigung "Vollzugriff" zuweisen. Im Anschluss müssen die beiden folgenden Dienste neugestartet werden:
Restart-Service MSExchangeFastSearch
Restart-Service HostControllerService
Danach klappts auch wieder mit dem Content Index State.
Viele Grüße, Jens
Dienstag, 29. Dezember 2015
Freitag, 6. November 2015
BES5 / BES 10 Migration nach Exchange 2010 / Exchange 2013
Hallo zusammen,
im letzten Projekt hatten wir die Herausforderung Blackberry 5 und Blackberry 10 Benutzer von Exchange 2010 nach Exchange 2013 zu migrieren. Da dies alles in allem sehr zeitaufwendig und nervenaufreibend war möchte ich die gesammelten Erfahrungen gerne teilen...
Ausgangssituation:
X Benutzer auf BES5, die Postfächer liegen auf Exchange 2010
(Benutzerzugriff via Blackberry Technologie)
X Benutzer auf BES10, die Postfächer liegen auf Exchange
2010 (Benutzerzugriff via ActiveSync)
Der CAS Zugang ist bereits auf Exchange 2013 umgestellt,
d.h. alle Benutzer egal ob das Postfach auf Exchange 2010 oder 2013 liegt
greifen über die Exchange 2013er CAS Server auf die Mailboxen zu.
Ziel:
Alle Postfächer, egal ob BES5 oder BES10 nach Exchange 2013
migrieren ohne Auswirkungen auf die Endbenutzer (d.h. möglichst ohne
Neu-Aktivierung der Geräte)
Im Anschluss Migration der BES5 und BES10 Benutzer nach BES
12
Vorgehensweise
Blackberry 5:
- CDO.DLL auf Blackberry 5 aktualisiert, diese war nicht mehr aktuell, siehe http://support.blackberry.com/kb/articleDetail?ArticleNumber=000015779 (Download der CDO erfolgt hier: https://www.microsoft.com/en-us/download/details.aspx?id=3671 )
- Leitfaden für die Migration von BES5 nach Exchange 2013, http://support.blackberry.com/kb/articleDetail?articleNumber=000033406
- BES5 Vorbereitung zu Kommunikation mit Exchange 2013, http://support.blackberry.com/kb/articleDetail?ArticleNumber=000033413 (ist extrem wichtig, sonst kann BES5 kein Autodiscover was zwingend für Exchange 2013 notwendig ist). Jeder einzelne Schritt muss beachtet werden!
- Erteilen Postfachberechtigungen auf Exchange 2013 Benutzer für BESAdmin, http://support.blackberry.com/kb/articleDetail?ArticleNumber=000002276
- Migration BESAdmin von Exchange 2010 nach Exchange 2013
- Anpassung MAPI Profil auf BES5 unter „BlackBerry Server Configuration“ -> Blackberry Server -> Edit MAPI Profile, siehe auch http://support.blackberry.com/kb/articleDetail?ArticleNumber=000034416. Wichtig an dieser Stelle in Feld Servername muss zwingend die Exchange-GUID stehen. Steht dort noch der FQDN, so ist dies der FQDN des Exchange 2010 Servers und nunmehr falsch da sich das Postfach bereits auf Exchange 2013 befindet
- Der Regkey " RPCHTTPProxyMap_BES" unterhalb von HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem sollte sowohl die CAS URL als auch die Exchange 2013 GUID (aus der Server Configuration -> Blackberry Server - > edit MAPI Profile ) enthalten. Also so in etwa: *=https://cas.contoso.de; aaaaaaa-6a55-5678-1234-c3acaaaa3aa@contoso.de
- Durchführen erster BES 5 Testmigration nach Exchange 2013 inkl. Durchführung von Enterprise Aktivierung
Vorgehensweise
Blackberry 10:
Blackberry 10 arbeitet direkt mit Active Sync so dass hier
deutlich weniger Konfigurationsanpassungen durchgeführt werden müssen.
Auch der BES 10 hat ein konfiguriertes Profil welches im BAS
unter „Blackberry Solution Management“ -> „Profiles“ -> „Manage Profiles“
-> Registerkarte „Email Profile Settings“ angepasst werden muss. Hier wird
in aller Regel der Exchange 2010 CAS Server bzw. das CAS Server Array
hinterlegt sein. Dies bedeutet, dass Postfächer welche bereits auf Exchange 2013
liegen den Service Blackberry problemlos weiter konsumieren können – dies gilt
auch für Exchange 2010 Benutzer. Allerdings ist es nicht möglich das bereits
migrierte Benutzer auf Exchange 2013 eine Enterprise Aktivierung durchführen
können, da die URL auf Exchange 2010 zeigt. Die Umstellung auf das CAS2013
Array habe ich zum Abschluss der Postfachmigration von Exchange 2010 nach
Exchange 2013 durchgeführt. Ab diesem Zeitpunkt funktioniert auch wieder Email
Aktivierung für Blackberry 10 Geräte.
Viele Grüße, Jens
Labels:
Blackberry 10,
Blackberry 5,
Exchange 2010,
Exchange 2013,
Migration
Freitag, 11. September 2015
Organisator wird nicht im Termin angezeigt
Hallo zusammen,
hatte die Tage den Fall, dass Benutzer nicht mehr den Organisator im Termin einer Raum-Ressource gesehen hatten. Folgenden PowerShell Befehl wurde bereits abgesetzt:
Set-CalendarProcessing -Identity raum@contoso.com -AutomateProcessing Auotaccept -AddOrganizerToSubject $true
AutoAccept muss zwingend gesetzt werden, da ansonsten die Parameter -AddOrganizerToSubject nicht berücksichtigt werden.
Na ja, jedenfalls konnte ich im eigentlichen Termin des Raumpostfachs den Orgnaisator dennoch nicht anschauen, auch wenn natürlich dieser im Betreff bereits hinterlegt ist. Die Lösung war, dass meinem Benutzer bzw. der Gruppe schlicht die Berechtigung Reviewer gefehlt hatte:
set-MailboxFolderPermission -Identity raum@contoso.com:\calendar -User jens@contoso.com -AccessRights reviewer
Softern "\Calendar" nicht funktioniert, ist das Postfach aller Voraussicht nach in Deutsch und somit muss "\Kalender" hinterlegt werden.
Viele Grüße, Jens
hatte die Tage den Fall, dass Benutzer nicht mehr den Organisator im Termin einer Raum-Ressource gesehen hatten. Folgenden PowerShell Befehl wurde bereits abgesetzt:
Set-CalendarProcessing -Identity raum@contoso.com -AutomateProcessing Auotaccept -AddOrganizerToSubject $true
AutoAccept muss zwingend gesetzt werden, da ansonsten die Parameter -AddOrganizerToSubject nicht berücksichtigt werden.
Na ja, jedenfalls konnte ich im eigentlichen Termin des Raumpostfachs den Orgnaisator dennoch nicht anschauen, auch wenn natürlich dieser im Betreff bereits hinterlegt ist. Die Lösung war, dass meinem Benutzer bzw. der Gruppe schlicht die Berechtigung Reviewer gefehlt hatte:
set-MailboxFolderPermission -Identity raum@contoso.com:\calendar -User jens@contoso.com -AccessRights reviewer
Softern "\Calendar" nicht funktioniert, ist das Postfach aller Voraussicht nach in Deutsch und somit muss "\Kalender" hinterlegt werden.
Viele Grüße, Jens
Montag, 10. August 2015
Kurz notiert: Export der Email Adressen einer bestimmten OU
Hallo zusammen,
mit diesem PowerShell Script ist es möglich alle Mailbox Benutzer einer bestimmten OU zu exportieren - genauer gesagt wird hier lediglich die primäre Email Adresse exportiert, was aber beliebig erweitert werden kann.
get-mailbox -OrganizationalUnit "OU-Name" -resultsize unlimited | select-object PrimarySmtpAddress | Export-Csv "C:\temp\User.csv" -NoTypeInformation -Delimiter ";"
mit diesem PowerShell Script ist es möglich alle Mailbox Benutzer einer bestimmten OU zu exportieren - genauer gesagt wird hier lediglich die primäre Email Adresse exportiert, was aber beliebig erweitert werden kann.
get-mailbox -OrganizationalUnit "OU-Name" -resultsize unlimited | select-object PrimarySmtpAddress | Export-Csv "C:\temp\User.csv" -NoTypeInformation -Delimiter ";"
Viele Grüße, Jens
Labels:
Exchange 2010,
Exchange 2013,
PowerShell
Freitag, 10. Juli 2015
Handling ausgeschiedene Mitarbeiter
Hallo zusammen,
viele Firmen haben das Problem mit Postfachbehandlung ausgeschiedener Mitarbeiter. Sofern das Postfach gelöscht wird, versteht nahezu kein fachfremder ITler diesen komischen NDR, dass dieses Postfach nicht mehr existent ist.
Es muss also eine smartere, benutzer- und kundenfreundlichere Lösung her. Anbei beschreibe ich die Möglichkeit mit wenigen Befehlen eine anständige Abwesenheitsnotiz zentral durch die IT bereitgestellt in Kombination dass eingehende Emails direkt gelöscht werden, so dass das Postfach nicht potentiell überläuft und wieder unlesbare NDRs versendet werden:
viele Firmen haben das Problem mit Postfachbehandlung ausgeschiedener Mitarbeiter. Sofern das Postfach gelöscht wird, versteht nahezu kein fachfremder ITler diesen komischen NDR, dass dieses Postfach nicht mehr existent ist.
Es muss also eine smartere, benutzer- und kundenfreundlichere Lösung her. Anbei beschreibe ich die Möglichkeit mit wenigen Befehlen eine anständige Abwesenheitsnotiz zentral durch die IT bereitgestellt in Kombination dass eingehende Emails direkt gelöscht werden, so dass das Postfach nicht potentiell überläuft und wieder unlesbare NDRs versendet werden:
New-InboxRule -Mailbox %Mailbox%-MyNameInToOrCcBox $true –DeleteMessage $true
Mit dieser Posteingangsregel für den speziellen Benutzer
werden alle Emails die an dieses Postfach gesendet werden ohne Rückfrage gelöscht
$Message = Get-Content -path c:\temp\oof.txt
Mit diesem Befehl wird die Out-of-Office Vorlagen-Nachricht
in die Variable $Message eingelesen. Diese ist entsprechend der jeweiligen OOF
Meldung anzupassen.
Mit dem Befehl $Message kann man sich vorab schonmal das
Ergebnis anschauen
Set-MailboxAutoReplyConfiguration
-Id %Mailbox% -AutoReplyState enabled -InternalMessage "$Message"
-ExternalMessage "$Message"
Mit diesem Befehl
wird die OOF Nachricht für das entsprechende Postfach für eingehende und
ausgehende Emails ohne zeitlich Begrenzung gesetzt
Mit dem unten stehenden Befehl wird die OOF Einstellung wieder deaktiviert:
Set-MailboxAutoReplyConfiguration –id –AutoReplyState Disabled
Mit dem unten stehenden Befehl wird die OOF Einstellung wieder deaktiviert:
Set-MailboxAutoReplyConfiguration –id
Herzlichen Dank für Ihre E-Mail.
Leider existiert die von Ihnen angeschriebene E-Mailadresse nicht mehr.
Sehr gerne teilen wir Ihnen telefonisch einen persönlichen Ansprechpartner für Ihr Anliegen mit.
Wählen Sie hierzu einfach die Nummer unserer Zentrale.
Besten Dank und mit freundlichen Grüßen,
%Firmendaten%
Leider existiert die von Ihnen angeschriebene E-Mailadresse nicht mehr.
Sehr gerne teilen wir Ihnen telefonisch einen persönlichen Ansprechpartner für Ihr Anliegen mit.
Wählen Sie hierzu einfach die Nummer unserer Zentrale.
Besten Dank und mit freundlichen Grüßen,
%Firmendaten%
Viele Grüße, Jens
Labels:
ausgeschiedene Mitarbeiter,
Exchange 2013,
OOF,
PowerShell
Montag, 6. Juli 2015
Auswertung Mailbox Auslastung
Hallo zusammen,
mit dem unten stehenden PowerShell Script lässt sich einfach die aktuelle Mailbox Auslastung gemessen an der Quota als Exel Export darstellen:
mit dem unten stehenden PowerShell Script lässt sich einfach die aktuelle Mailbox Auslastung gemessen an der Quota als Exel Export darstellen:
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails
usermailbox | Where {$_.UseDatabaseQuotaDefaults -eq $false} | Select-Object
@{label="ProhibitSendQuota";expression={(get-mailbox
$_).ProhibitSendQuota.Value.ToMB()}},
@{label="TotalItemSize(MB)";expression={(Get-MailboxStatistics
$_).TotalItemSize.Value.ToMB()}} | Export-Csv "C:\Scripts\UserMailboxSizes.csv"
-NoTypeInformation -Delimiter ";"
Viele Grüße, Jens
Labels:
Exchange 2013,
PowerShell,
Scripts
Abonnieren
Posts (Atom)