Zugriff aus freigegebenes Postfach über Benutzer-Gruppe steuern

Problembeschreibung

Microsoft Exchange lässt eine Steuerung des Zugriffs auf ein freigegebenes Postfach über Benutzergruppen nicht zu. In der Grafischen-Umgebung (ECP) ist lediglich das hinzufügen von Benutzern für den Zugriff auf ein freigegebenes Postfach möglich. Verwendet man nun zur Anlage eines neues Benutzers die Kopie eines vorhandenen Benutzers wäre es doch von Vorteil wenn der Zugriff auf freigegebene Postfächer über die Mitgliedschaft in einer Gruppe mit kopiert werden könnten.

Lösungsansatz

Über die PowerShell ist es möglich auch Benutzergruppen Zugriff auf ein freigegebenes Postfach zu geben. Damit wäre der erste Schritt für den Zugriff erledigt, leider funktioniert danach das Auto-Mapping der freigegebenen Postfächer nicht, da hierzu das AD-Attribute „msExchDelegateListLink“ mit den entsprechenden Mitglieder der Gruppe gefüllt werden muss. Um das Ad-Attribute nun mit den entsprechenden Informationen zu füllen habe ich ein PowerShell-Script* erstellt. Dieses kann nun nach Änderungen von Hand oder per Aufgabenplanung (z.B. alle 15 Minuten) gestartet werden.

Einrichtung

Zunächst müssen die Gruppen für die Postfächer erstellt werden, hier nun Beispielhaft für ein Info- und ein Support-Postfach.

New-ADGroup Mailbox_Info_Vollzugriff

New-ADGroup Mailbox_Support_Vollzugriff

Den erstellten Gruppen werden dann im zweiten Schritt die Berechtigungen auf die Postfächer erteilt. Wichtig ist hierbei das diese in der Exchange-Shell ausgeführt werden. Setzen des Vollzugriffs:

Add-MailboxPermission info -User „Mailbox_Info_Vollzugriff“ -AccessRights Full

Add-MailboxPermission support -User „Mailbox_Support_Vollzugriff“ -AccessRights Full

Setzen der Berechtigung „Senden als“:

Add-ADPermission info -User „Mailbox_Info_Vollzugriff“ -AccessRights ExtendedRight -ExtendedRights „Send As“

Add-ADPermission support -User „Mailbox_Support_Vollzugriff“ -AccessRights ExtendedRight -ExtendedRights „Send As“

Nun sind die Vorarbeiten abgeschlossen und die Gruppen können mit Benutzern befüllt werden. Wenn dies erledigt ist das PowerShell-Script* ausführen um das Automapping zu „aktivieren“.

Verwendete Scripts

Mailbox_Zugriff_Automapping.ps1

Mit diesem Script wird das Automapping für die User der gruppe aktiviert, indem die User in das Attribut „msExchDelegateListLink“ übernommen werden.

Mailbox_Zugriff_Setzen.ps1

Dieses Script dient dazu den Gruppen Vollzugriff auf ein Postfach zu geben, dies ist über die grafische Oberfläche nicht möglich, da nur Benutzer zur Auswahl stehen.

# Mailbox_Zugriff_Automapping.ps1
# Neue Postfächer in Form "samacountname", "Mailbox-Gruppe" hinzufügen
$array = @( @("info", "Mailbox_Info_Vollzugriff"), `
 @("support", "Mailbox_Support_Vollzugriff") )

for ($i=0; $i -lt $array.length; $i++){
    $postfachname = $array[$i][0]
    $gruppenname = $array[$i][1]


# Mitglieder der Gruppe auslesen
$user = Get-ADGroupMember $gruppenname

# Inhalt des Attributs löschen
Set-ADUser $postfachname -clear msExchDelegateListLink


foreach($users in $user){

 # Alle Mitglieder in das Attribut übernehmen
 Set-ADUser $postfachname -Add @{msExchDelegateListLink=$User.distinguishedName}
}}
# Mailbox_Zugriff_Automapping.ps1
# Exchange Management Shell einbinden
$CallEMS = ". '$env:ExchangeInstallPath\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto -ClientApplication:ManagementShell "
Invoke-Expression $CallEMS

Add-MailboxPermission Info -User "Mailbox_Info_Vollzugriff" -AccessRights Full
Add-ADPermission Info -User "Mailbox_Info_Vollzugriff" -AccessRights ExtendedRight -ExtendedRights "Send As"

Add-MailboxPermission Support -User "Mailbox_Support_Vollzugriff" -AccessRights Full
Add-ADPermission Support -User "Mailbox_Support_Vollzugriff" -AccessRights ExtendedRight -ExtendedRights "Send As"

Einrichtung Aufgabenplanung

Mithilfe der Aufgabenplanung lässt sich das PowerShell-Script in bestimmten Abständen durchführen. Hierdurch reicht die Pflege der Gruppe aus und das Automapping erfolgt automatisch. Die benötigten Einstellungen für die Aktion wären hierbei:

Aktion Programm starten mit folgenden Einstellungen: Programm/Script:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Argument hinzufügen:

-command „C:\Scripts\Mailbox_Zugriff_Automapping.ps1“

Ich hoffe das beschriebene Verfahren ist für den ein oder anderen Nützlich. 🙂

IT-Fanatic


Posted in Allgemein, Exchange Server and tagged , , , , with comments disabled.

Mailstore: Der Ordner mit der FolderID „xxx“ hat keinen gültigen Namen.

Die in der Überschrift genannte Fehlermeldung führte in Mailstore dazu das bei einigen Postfächer keine fehlerfreie Archivierung mehr durchgeführt wurde. Hier ein Screenshot der Meldung:

Erstes Ziel nun zu ermitteln um was für einen Ordner es sich den wohl handelt. Mit folgendem Befehl ließen sich die FolderIDs der betroffenen Postfächer anzeigen:

Get-MailboxFolderStatistics -Identity tim.taylor@it-fanatic.de | select Name, FolderId

Zwei Sachen waren hierbei nun auffällig zunächst haben die FolderIDs einen anderen Aufbau als die in der Meldung in Mailstore, allerdings gab es einen Ordner der keinen Namen hatte (rot) und diese ID passte wenigstens im hinteren Teil zu der aus der Meldung im Mailstore.

Eine Überprüfung der Ordner im OWA ergab das es sich um einen namenlosen Kalender handelte. Dieser wurde dadurch erzeugt, das es eine Termineinladung gab die in Form eines ICS-Kalenders beim Benutzer eintraf.

Durch das Bestätigen mit Ja wurde hierbei nicht ein Eintrag im eigenen Kalender erzeugt, sondern gleich ein komplett eigenständiger Kalender. Dieser war natürlich aufgrund des fehlenden Namens im Outlook nicht zu sehen, aber im OWA.

Nach Übernahme des Termins in den eigenen Kalender und löschen des Kalenders ohne Namen lief der Archivierungsjob wieder fehlerfrei.

PS: Den Papierkorb natürlich auch leeren 😉


Posted in Allgemein and tagged , , , with comments disabled.

Das Verhalten beim Löschen und senden von Mails bei shared Postfächern steuern

Verwendet man eine shared-Mailbox fällt einem auf das wenn jemand eine Mail aus diesem Postfach versendet, diese nicht unter den gesendeten Mails des Postfach zu finden sind, sondern nun in dem des Sendenden. Genauso verhält es sich beim Löschen von Mails aus einer shared-Mailbox, die gelöschte Mail landet in der Mailbox desjenigen der sie gelöscht hat. Wenn mehrere Personen mit so einem Postfach arbeiten, wird es schwierig bestimmte Vorgange nachzuverfolgen.

Das zuvor beschriebene Verhalten ist als Standard zu verstehen und erstmal von seitens Microsoft auch so gewollt. Das ganze lässt sich aber über den Exchange selbst und Outlook steuern.

In der Exchange-Konsole lässt sich mit folgenden Befehlen das Verhalten vom senden so steuern, das gesendete Mails sowohl im gesendete Elemente Ordner der shared-Mailbox sowie in der des Sendenden landet.

Befehl für „Senden im Auftrag..“:
Set-Mailbox <Identity> -MessageCopyForSendOnBehalfEnabled $true

Befehl für „Senden als…“:
Set-Mailbox <Identity> -MessageCopyForSentAsEnabled $true

Das Verhalten beim löschen lässt sich dahingehend nur über Oulook selbst steuern, hierzu muss eine entsprechender Registry-Eintrag am System gesetzt werden:

Registry-Wert:
HKCU\SOFTWARE\Microsoft\Office\16.0\Outlook\Options\General

DelegateWastebasketStyle
REG_DWORD
Wert: 0x4 (4)

Hierbei macht es Sinn diesen Wert über Gruppenrichtlinien zu verteilen.


Posted in Exchange Server and tagged , , , , with comments disabled.

Mailstore: Aktivierung des HTTPS-Zugriff auf Exchange führt zu einem EWS Fehler bei Verwendung des FQDN

Mailstore kann bei Installation direkt auf dem Exchange nicht über den FQDN auf das EWS zugreifen. Es kommt zu einem Authentifizierungs-Fehler. Erfolgt der Zugriff über localhost, funktioniert die Authentifizierung reibungslos. Grund hierfür ist die Änderung eines Registry-Wertes durch Updates des Exchange-Servers.

HKLM\SYSTEM\CurrentControlSet\Control\Lsa

DisableLoopbackCheck Dword 1

Durch diesen Eingriff funktioniert die Autodiscover-Funktion direkt am Exchange nicht mehr.

Testen kann man dies mit folgendem Befehl in der Exchange-Konsole:

Test-OutlookWebServices -identity: xxx@mydomain.com –MailboxCredential (Get-Credential)

Die Autoermittlung wird in der Ausgabe der Konsole mit „failure“ angegeben.

Über den folgenden Befehl können wir uns weitere Informationen einblenden unter anderem den Eintrag „realm=“xxx““. Diesen Wert benötigen wir zum beheben des Problems.

Test-OutlookWebServices -identity: xxx@mydomain.com –MailboxCredential (Get-Credential) |
fl

Um das Problem nun zu beheben erstellen wir folgenden Registry-Eintrag:

HKLM\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0

BackConnectionHostNames (Wert der mehrteiligen Zeichenfolge) den Wert aus REALM eintragen.

Nach einem Neustart des IIS, sollte die AutoErmittlung lokal am Exchange Server wieder funktionieren.

Ab der Version 13.0.2 von Mailstore wird einem beim anlegen eines Archivierungstask weiterhin die Möglichkeit angeboten SSL-Warnungen zu ignorieren. Allerdings wird dies im LOG nicht mehr als Information sondern als Warnung dokumentiert.

Dies führt bei Sensoren zur Überwachung dazu, das diese den Fehler nun auch melden obwohl die Funktion nicht eingeschränkt ist.


Posted in Exchange Server and tagged , , , with comments disabled.