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.