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 Active-Directory, Exchange, powershell, Scripting, shared-mailboxwith 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 .ics, Exchange, Kalender, Mailstorewith comments disabled.