Exchange 2007/2010/2013: Sprache des Postfaches bzw. Anzeigenamen der Ordner ändern

Ich habe öfters mal folgendes Problem: Exchange-Usern wird in Outlook (und auch im OWA) die Ordnernamen englisch angezeigt, bzw. das gesamte Postfach ist auf Englisch eingestellt. Das finden viele störend.

Man kann natürlich die Sprache im OWA (unter den Regional-Einstellungen) umstellen oder auch Outlook mit outlook.exe /resetfoldernames starten – aber die Sprache eines Postfaches und auch die Ordnernamen kann man als Administrator ziemlich einfach mit der Exchange-Powershell ändern:

Für ein einzelnes Postfach:

Set-MailboxRegionalConfiguration -Identity “Alias oder E-MailAdresse” -Language {de-DE} -LocalizeDefaultFolderName:$true -DateFormat “dd.MM.yyyy”

Für alle Postfächer:

Get-Mailbox | Set-MailboxRegionalConfiguration -Language {de-DE} -LocalizeDefaultFolderName:$true -DateFormat “dd.MM.yyyy”

Der Parameter –Language gibt die Sprache des Postfaches an. In meinem Beispiel ist das “Deutsch” – es kann auch ein anderer Regional Code angegeben werden. Eine Liste mit den Codes der verfügbaren Sprachen findet sich hier:

http://technet.microsoft.com/en-us/library/aa997435.aspx

Email versenden per Telnet

Sehr oft muss ich per Telnet Emails verschicken – meistens aus Testzwecken bei Exchange oder auch anderen Mailserver-Installationen. Hier mal einen kleine Anleitung wie das geht:

Beispiel: Ich komme von einer freigegebenen IP (ohne Authentifikation) und will mit test@mail.local eine Email an an test@mail.extern versenden. (Die Befehle und Eingaben sind hervorgehoben- die Antworten des Servers normal)

In der Konsole sieht das so aus:

telnet exchange.mail.local 25
220 exchange.mail.local Microsoft ESMTP MAIL Service ready at Sun, 23 Feb 2014 08:49:36 -0700
helo mail.local
250 host.local Hello [10.26.115.13]
mail from:test@mail.local
250 2.1.0 Sender OK
rcpt to:test@mail.extern
250 2.1.5 Recipient OK
data
354 Start mail input; end with < CRLF >.< CRLF >
From: Mein Anzeigename
To: Empfänger Anzeigename
Subject:Testemail mit Telnet

Inhalt der Testmail.
.

250 2.6.0 <8c642f92-e0e3-4c9e-b3d3-21054eed3244@exchange.domain.com> Queued mail for delivery
quit
221 2.0.0 Service closing transmission channel
Connection to host lost.

Somit haben wir die Email verschickt. Wie oben schon angedeutet funktioniert das versenden ohne Authentifikation nur von IP-Adressen die auf dem Exchange, Postfix etc. auch explizit für das mailen ohne Authentifzierung (Relay) freigegeben worden sind – wie für Exchange hier beschrieben 🙂

AD-User mit ausgeschalteter Vererbung der Rechte mit PowerShell finden

Bei Migrationen auf Exchange 2010/2013 gibt es immer wieder das Problem, dass bei Benutzern, deren Berechtigungen in AD nicht von ihrer OU geerbt sondern explizit vergeben sind, ActiveSync nicht in der Lage ist, ein Mobile Device-Objekt anzulegen. Resultat: Keine Synchronisation mit dem Smartphone und Event 1053 auf dem CAS Server.

Sind nur wenige User betroffen, kann man den Haken bei “Berechtigungen des übergeordneten Objekts übernehmen” freilich auch manuell setzen, zumal im Text der Fehlermeldung die User jeweils spezifiziert sind. Möchte man aber dem Problem von vorn herein aus dem Weg gehen, muss man solche Accounts global identifizieren und bereinigen können.

Das geht einfach mit PowerShell und den Dell (früher Quest) ActiveRoles Management Shell for Active Directory:

Get-QADUser -SizeLimit 0 | Where-Object {$_.DirectoryEntry.PSBase.ObjectSecurity.AreAccessRulesProtected}

Und um die Berechtigungen bei diesen Accounts wieder zu vererben:

Get-QADUser -SizeLimit 0 | Where-Object {$_.DirectoryEntry.PSBase.ObjectSecurity.AreAccessRulesProtected} | Set-QADObjectSecurity -UnLockInheritance

Natürlich sollte man sich vor dem globalem Setzten nochmal Fragen ob es irgendwelche Gründe für die Entfernung der Vererbung gegeben hat…

Quelle: http://blogs.microsoft.co.il/ScriptFanatic/

Exchange 2013 – Leere Seite nach dem Login

Wenn man dem Exchange 2013 ein neues Zertifikat zuweist und/oder das selbstsigniertes Zertifikat löscht, kommt nach dem Login auf die Verwaltungskonsole (ECP) nur noch eine weiße leere Seite.

Im Eventlog erscheint die Fehlermeldung: An error occurred while using SSL configuration for endpoint 0.0.0.0:444

Das Problem liegt hier am IIS, der das alte Zertifikat noch in der Zuordnung für das ECP hat. Das neue Zertifikat muss dem Back End – das auf dem Port 444 läuft – zugewiesen werden.

Das geht am einfachsten grafisch im IIS-Manager:

Als erstes markieren wir Exchange Back End und im Kontextmenü wählen wir Bindungen bearbeiten

Exchange-Cert-BackEnd1

Jetzt markieren wir die https Bindung mit Port 444 und wählen Bearbeiten

Exchange-Cert-BackEnd2

Unter SSL-Zertifikat wählen wir einfach unser neues Zertifikat und bestätigen die Auswhal mit OK

Exchange-Cert-BackEnd3

Jetzt noch am besten den IIS neustarten – ich mache das immer mit iisreset

Exchange-Cert-BackEnd-iisreset

fertig und alles funktioniert wieder 🙂

Alternativ kann das gleiche auch auf der Kommandozeile getan werden:

Zuerst muss die aktuelle Konfiguration ausgelesen werden:

netsh http show sslcert

die Ausgabe sollte man am besten kopieren – oder die Ausgabe mit netsh http show sslcert > c:\sslout.txt gleich in eine Textfile schreiben.

Danach muss man das Bindung, dass für das ECP zuständig ist (0.0.0.0:444), löschen

netsh http delete sslcert ipport=0.0.0.0:444

Danach muss das neue Zertifikat dem Bindung zugewiesen werden. Dazu braucht man den Hash des Zertifikats das man zuweisen will. Das kann man aus der Ausgabe von nethsh http show sslcert auslesen oder man öffnet das Zertifikat und kopiert aus den Eigenschaften den Hash:

hash

Des weiteren benötigt man noch die appid des Bindings. Das kann man ebenfalls aus der Ausgabe auslesen – es muss die gleiche appid sein wie vorher. Das sieht dann so aus:

netsh http add sslcert ipport=0.0.0.0:444 certhash=7d149a54c6bba851795c550358f15e10d45bc9fb appid=“{4dc3e181-e1445554554155455}“

Jetzt noch den IIS mit iisreset neustarten.

Danach funktioniert alles wieder 🙂

DPM 2012 SP1 und Exchange 2013: Das Replikat ist inkonsistent

Wenn man Exchange 2013 mit dem Microsoft Data Protection Manager 2012 SP1 sichern will, kann es vorkommen, dass es Probleme mit der Sicherung der Datenbanken gibt.

Die Fehlermeldung lautet dann: Das Replikat ist inkonsistent.

Das kann man durch die Installation der Visual C++ Redistributable für Visual Studio 2012 (mindestens SP1) beheben.

Danach den Job neustarten – und es funktioniert!

Quelle: compit.se

ReverseProxy für EAS (Exchange ActiveSync) und OWA (OutlookWebApp) mit NGINX

Falls man ActiveSync und OWA anbieten will, sollte dies unbedingt über einen ReverseProxy gelöst werden. Diesen ReverseProxy für die Exchange-Dienste kann man auch mit dem Webserver NGINX auf Linux (in meinem fall Ubuntu Server) lösen. Da Microsoft den TMG eingestellt hat ist diese Kombination auch eine gute Alternative – wenn man auf OutlookAnywhere (RPC over HTTPS) verzichten kann. NGINX unterstützen kein RPCoverHTTPS – das neue MAPIoverHTTPS ist aber möglich – ActiveSync (DirectPush) und OWA funktionieren aber wunderbar.

Hier eine kleine Anleitung wie man dies implementiert.

Weiter

Anzeigenamen (DisplayName) eines Benutzers unter Exchange 2007/2010 ändern oder hinzufügen

Wenn man den Anzeigenamen für eines Benutzer ändern oder hinfügen will, kann dies einfach über Die Exchange Management Shell machen.

Erst sollte man sich den aktuellen Anzeigenamen anzeigen lassen:

Get-Mailbox –Database “Name der Postfachdatenbank” |select Name,displayname

dann kann man mittels

set-mailbox “Alias oder E-Mail-Adresse” –DisplayName “Neuer Anzeigename”

den neuen Anzeigenamen setzten.

Quelle: http://www.frankysweb.de/?p=80

Anonymes Relay für Exchange 2007/2010

Manchmal braucht man die Möglichkeit über einen Exchange 2007/2010 anonym eMails zu senden. Das braucht man z. B. für den Autosupport von Netapp, für Scanner die eMailen, etc…

Am einfachsten wäre es einen eigenen Empfangsconnector dafür per Powershell anzulegen (am besten auf einer eigenen IP-Adresse)

New-ReceiveConnector -Name „Relay“ -Usage Custom -PermissionGroups AnonymousUsers -Bindings 10.20.30.1:25 -RemoteIpRanges 10.20.30.243

Dabei ist „Relay“ der Name des Connectors, AnonymousUsers die Berechtigungsgruppe auf den Connector (eben anonym), Bindings die IP-Adresse und der Port auf den der Connector „hört“ und RemoteIpRanges die Geräte die senden dürfen (es können natürlich auch mehr angegeben werden). Es sollte vermeidet werden, dass ein komplettes Netz anonym mailen darf – Stichwort SPAM 😉

Jetzt muss noch eine Berechtigung für die AnonymousUsers gesetzt werden:

Bei einem deutschen Server:

Get-ReceiveConnector „Relay“ | Add-ADPermission -User „NT-AUTORITÄT\ANONYMOUS-ANMELDUNG“ -ExtendedRights „Ms-Exch-SMTP-Accept-Any-Recipient“

Bei einem englischen Server:

Get-ReceiveConnector „Relay“ | Add-ADPermission -User „NT AUTHORITY\ANONYMOUS LOGON“ -ExtendedRights „Ms-Exch-SMTP-Accept-Any-Recipient“

Jetzt sollte das anonyme Mailen funtkionieren 🙂

Quelle: http://technet.microsoft.com/de-de/library/bb232021.aspx

Exchange 2010: Getrennte Postfächer löschen

Wird im Exchange 2010 ein Benutzer gelöscht, wird das Postfach des Benutzer nicht automatisch gelöscht sondern nur getrennt. Das Postfach bleibt somit bestehen – es ist nur keinen Bentuzer mehr zugeordnet. Die Löschung des Postfaches erfolgt erst nach dem auf der Mailbox Database eingestellten Wert „Gelöschte Postfächer aufgewahren für (Tage):

Will man jetzt die Postfächer gleich löschen, kann man dies mittels der Exchange Powershell Console.

Als erstes sollte man die Suche nach getrennten Postfächer anstoßen:

Get-MailboxDatabase | Clean-MailboxDatabase

Danach lassen wir uns die getrennten Postfächer anzeigen. So erhalten wir auch die zum löschen benötigten GUID (Identity)..

get-mailboxdatabase | get-mailboxstatistics | Where{ $_.DisconnectDate -ne $null } |fl displayName,Identity,disconnectdate

Jetzt hat man alle Informationen zum löschen. Mit dem Befehl

Remove-mailbox -database “Mailbox Database” -storemailboxidentity “Identity”

wird gelöscht. Sieht dann z. B. so aus:

Remove-mailbox -database “Mailbox Database″ -storemailboxidentity 553ad630-8131-6499-ad64-ef032046e87a

Und schon ist das Postfach weg 😉

Änderung mit dem Exchange 2010 SP1

Im Service Pack 1 des Exchange 2010 wurde ein neues CMDlet eingeführt, dass verwendet werden soll.

Vorgehensweiße wie oben – also erst

Get-MailboxDatabase | Clean-MailboxDatabase

get-mailboxdatabase | get-mailboxstatistics | Where{ $_.DisconnectDate -ne $null } |fl displayName,Identity,disconnectdate,database

und dann mit

Remove-StoreMailbox  -database “Mailbox Database” -Identity “Identity” -MailboxState SoftDeleted/Disabled

Neu ist auch der MailboxState SoftDeleted oder Disabled. SoftDeleted wird z. B. beim Verschieben eines Postfaches von einem MailboxStore zum anderen erstellt. Disabled ist ein Postfach wenn es den Bentuzer im ActiveDirectory nicht mehr gibt / gelöscht wurde.

Also entweder

Remove-StoreMailbox  -database “Mailbox Database” -Identity “553ad630-8131-6499-ad64-ef032046e87a” -MailboxState SoftDeleted

Remove-StoreMailbox  -database “Mailbox Database” -Identity “553ad630-8131-6499-ad64-ef032046e87a” -MailboxState Disabled