Exchange 2013 internes Relay nach „RCPT TO:“ sehr langsam

exchange-delay-after-rcpttoProblem

Ein Exchange 2013 Receive Connector reagiert nach dem RCPT-Kommando extrem langsam. so langsam, das verschiedene SMTP-Clients sogar mit einem timeout reagieren. Die Zustellung klappt aber in den meisten Fällen.

Lösung

Der Empfangsconnector umgeht warscheinlich die Anti-Spam Agents nicht. In der Standardeinstellung hat eine Anonyme Verbindung (wie es bei einem Relay meistens der Fall ist) auf einem Connector nicht das Recht, die lokalen Filter zu umgehen. Daher kommt es zu (RBL und Tarpitting) Wartezeiten.

Umgehen der filter für Anonyme Verbindunge erlauben:

[PS] C:\> Get-ReceiveConnector -Identity "SERVER\Connectorname" | Add-ADPermission -user "NT-Autorität\Anonymous-Anmeldung" -ExtendedRights Ms-Exch-Bypass-Anti-Spam

In der Englischen Version eines Active Directory ist die (in UTF-8 geschriebene) „NT-Autorität\Anonymous-Anmeldung“ durch das entsprechende Prinzipal eines EN Active Directory zu ersetzen: „NT AUTHORITY\ANONYMOUS LOGON“.

In einen sehr guten Artikel zu dem Thema Connectoren“ hat der Zach schon vor einer Weile die wichtigen eigenschaften und das Schema zusammengefasst: http://www.the-little-things.net/blog/2014/07/06/exchange-receive-connector-tango-part-1/

Office 365 Powershell Download/Setup/Installation

Die Windows PowerShell für Office 365 ist ein sehr leistungsfähiges Tool. Erweiterbar wie ein IBM Universal  Business Adapter und in etwa auch so komplex. Es gibt einen Punkt in der Lernkurve, an dem Anfänger häufig den Faden verlieren; dies passiert in der Regel nach dem Erlernen der einfachsten Cmdlets und bevor die Erstellung nützlicher Lösungen vollständig verstanden worden ist. Es ist eine einfache Sache „Get-Process“ auszuführen, aber eine andere eine Reihe von Cmdlets in eine Pipeline für einen Remotecomputer einzureihen, um eine Aktion remote auszuführen. Grade Office 365 ist beispielsweise nicht vollständig in die „Ausliefershell“ integriert und benötigt einige zusätzliche Module und die Initialisierung der Remote-Shell.

So gehts auf in die Office 365 Powershell

  1. Betriebssysteme unter Windows7/2008R2 brauchen WinRM2.0 mit der Powershell 2.0
  2. Download und Installation Microsoft Online Services Sign-in Assistant
  3. Download und Installation Azure Active Directory (AD) Module (x64, eine 32-bit-VErsion gibt es noch, wird aber nicht mehr supported)
  4. Optional: „SharePoint Online Module“ (Zur Sharepoint-Verwaltung)
  5. Optional: „Skype for Business Online Module“ (Zur Lync Skype for Business Verwaltung)

Verbindung zur Office 365 Powershell

$credential = get-credential
Import-Module MSOnline
Connect-MsolService -Credential $credential

Verbindung zur Skype for Business Powershell

Import-Module LyncOnlineConnector
$lyncSession = New-CsOnlineSession -Credential $credential
Import-PSSession $lyncSession

Verbindung zur Sharepoint Powershell

Import-Module Microsoft.Online.Sharepoint.PowerShell
Connect-SPOService -url https://contoso-admin.sharepoint.com -Credential $credential

Verbindung zur Exchange Powershell

$ExchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://outlook.office365.com/powershell-liveid/" -Credential $credential -Authentication "Basic" -AllowRedirection
Import-PSSession $ExchangeSession

Verbindung zu den Office 365 Onlinediensten via Poweshell-Function

function Connect-O365 {
<#
.Synopsis
 Connects powershell to Office 365
.DESCRIPTION
 Use this to connect powershell to Office 365. You will be prompted for credentials.
.EXAMPLE
 Connect-O365
#>
 Set-ExecutionPolicy RemoteSigned
 $Cred = Get-Credential
 $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $Cred -Authentication Basic -AllowRedirection
 Import-Module (Import-PSSession $Session -Allowclobber) -Global
 Connect-MsolService -Credential $Cred
}

(Danke Alex)

Outlook 2011/2016 für Mac fragt immer wieder nach Benutzername und Passwort

Problem

Microsoft Outlook für Mac 2011 und Outlook für Mac 2016 fragen bei der Anbindung an einen lokalen Exchange-Server (Exchange 2007/2010/2013/2016) immer wieder nach Name und Kennwort („Benutzernam eoder Kennwort falsch), obwohl die Eingabe ganz ganz ganz sicher richtig ist. Egal ob man sich mit „benutzername“ oder „domäne\benutzername“ oder „domä.ne\benutzername“ anmeldet – es wir immer wieder nachgefragt. Spannenderweise kann das Adressbuch aber mit den selben Daten problemlos synchronisiert werden.

Lösung

MacOSX hat seit 93 Äonen einen Bug im Keyring, der dafür sorgt das alle Benutzerdaten vor dem „\“ (Slash) entfernt werden. Man fügt also einen zusätzlichen slash ganz an am anfang des Namens hinzu und schon läuft wieder alles ..

\Domä.ne\Benutzername

Diesen Slash einfach hinzufügen.

Outlook 2010/2013 „Diese Ordnergruppe kann nicht geöffnet werden. Fehler bei der Anmeldung an Microsoft Exchange“

Problem

Ein Outlook-Client möchte freigegebene oder „gemeinsam genutzte“ Mailboxen („Gemeinsame Ordner“) von einem Exchange Server 2010/2013 nicht mehr freiwillig öffnen. Das passiert bei Exchange 2013 nach der Installation von CU5 (oder höher) aber auch sporadisch. Die Ordner werden zwar weiterhin per Automapping ins Outlook eingebaut und sind dort sichtbar, können aber nicht geöffnet werden. Manchmal sind die Ordnernamen dort auch nicht mehr korrekt, sondern es wird nur noch ein Name mehrfach hintereinander angezeigt.

Achtung: Die selben Symptome treten auch auf, wenn eine PST-Datei mit Outlook verbunden ist, die nicht richtig glesen werden kann. Bei wiederspenstigen PST-Files hilft aber SCANPST („%ProgramFiles(x86)%\microsoft office\officeNN“) schnell und zuverlässig weiter.

Lösung

Es gibt da einen „Effekt“ bei der Anwendung der Exchange-Updates (CU5/CU6/CU7 bisher). Was genau die Ursache ist wissen wir nicht und betrachten es auch nicht als unsere Aufgabe, den Fehler zu suchen. Fakt ist, das die Automapping-Services tatsächlich falsche Daten an einge Outlook-Clients übergeben. In der XML-Datei sind tatsächlich doppelte Ordnernamen und falsche IDs enthalten.

Der Fehler kann manuell schnell (wir sind ja hier bei ugg.li) behoben werden, durch die Umgehung der AutoMapping-Funktion:

  1. Rechte auf dem betroffenen Postfach erst entfernen
    Remove-MailboxPermission -Identity GEMINSAMESPOSTFACH -user USERNAME -AccessRights FullAccess -InheritanceType All
  2. Dann die Rechte wieder hinzufügen, ohne Automapping
    Add-MailboxPermission -Identity GEMEINSAMESPOSTFACH -user USERNAME -AccessRights FullAccess -InheritanceType All -AutoMapping $false
  3. Gemeinsam genutze Postfächer manuell im Outlook-Profil verbinden (Profil Ändern > Erweiterte Einstellungen > Tab „Erweitert“ > hinzufügen). Dann klappts auch wieder mit dem Zugriff.

 

Exchange 2010/2013 PST-Dateien per PowerShell importieren (und mögliche Fehler)

Es ist seit Exchange 2010 SP1 möglich, mit der PowerShell PST-Dateien direkt in Exchange-Mailboxen zu importieren. Dazu verwendet man man am bestem das CMDlet New-MailboxImportRequest. Die PST-Dateien müssen auf einem UNC-Pfad zur Verfügung stehen.

Vorher: Exchange Role („Rolle“) „Mailbox Import Export“ anpassen

New-ManagementRoleAssignment –Role "Mailbox Import Export" –User MEINUSER

Der aufrufende Nutzer muss Mitglied der RBAC-Rolle „Mailbox Import Export“ sein. NAch diesem PowerShell-Kommando ab- und wieder anmelden und eine neue Powershell-Sitzung starten. Erst dann steht das New-MailboxImportRequest CMDlet zur Verfügung.

Eine PST Mailbox Importieren
Nur eine einzige PST in eine einzige Mailbox:

New-MailboxImportRequest -Mailbox USERAALIAS -FilePath \\esp-ho-ex2010a\pst\USERAALIAS.pst -BadItemLimit 20

Das BadItemLimit ist eine Vorsichtmaßnahme aus der Praxis, damit der Import nicht an einer kaputten Spam-Mail aus dem Jahr 1994 scheitert. Für Härtefälle die PST-Datei mehrfach mit Scanpst behandeln oder mittels „-AcceptLargeDataLoss“ alle Defekte ausschliessen.

Eine PST Mailbox Importieren, in einen Postfach-Unterordner

New-MailboxImportRequest -FilePath \\SERVER\c$\PST\foobar.pst -Mailbox foobar -TargetRootFolder "NAME DES ORDNERS" -BadItemLimit 20

Ab und an macht das Sinn, vor allem wenn Benutzer ihr Postfach dringend mal aufräumen sollten …

Eine PST Mailbox Importieren, in ein persönliches Archiv

Einfach ein -IsArchive an den New-MailboxImportRequest anhängen. Das persönliche Exchange Archiv muss schon existieren und entsprechend lizenziert sein.
Mehrere PST-Dateien in Mailboxen Importieren
Sofern der Benutzer-Alias und der Name der PST-Datei übereinanderstimmen, ist es kein Problem alle Import-Auträge auf eoinmal zu erstellen (Exchange arbeitet diese Nacheinander ab):

Get-ChildItem \\SERVER\c$\PST\*.pst | %{ New-MailboxImportRequest -BadItemLimit 20 -Mailbox $_.BaseName -FilePath $_.FullName }

Status des Importvorganes kontrollieren

Get-MailboxImportRequest -Identity USERALIAS | Get-MailboxImportRequestStatistics -IncludeReport

Alle Importvorgänge (nach Status sortiert) kontrollieren

Get-MailboxImportRequest -Status Completed
Get-MailboxImportRequest -Status Queued
Get-MailboxImportRequest -Status InProgress
Get-MailboxImportRequest -Status Failed

Statusmeldung „StalledDueToCI“ und kein Fortschritt

Exchange 2013 hat eien Bug, der die Gruppe für den Suchdienst nicht korrekt anlegt. Mit dem Setup aus CU7 oder höher ist das behoben. Das kann man aber manuell nacholen:

  • Erstelle die Gruppe „ContentSubmitters“ (genau so geschrieben) in CN=Users
  • Den „Administratoren“ und dem „Netzwerkdienst“ Vollzugriff auf diese GRuppe geben
  • Den „Microsoft Exchange Search“ und den „Microsoft Exchange Search Host Controller“ Dienst neu starten.

Alle Importvorgänge aus der Warteschlange löschen

Get-MailboxImportRequest | Remove-MailboxImportRequest

Vollständige Importvorgänge aus der Warteschlange löschen

Get-MailboxImportRequest | where {$_.status -eq "Completed"} | Remove-MailboxImportRequest