Implikationen des Beispiels
-
Eine Exchange 2010 Umgebung
-
ein Benutzer Anton
-
Benutzer BE01 und BE02 (mit Postfach). Beide sollten keine Mailbox-Policy haben (also automatische Aktualisierung der Adressen deaktiviert).
-
Eine OU namens MyUsers, in der BE01 platziert wird. BE02 liegt in einer anderen OU.
1. Anlegen einer neuen Managementrolle, welche sich aus der Rolle „Mail Recipients" ableitet und deren Entries erbt
New-ManagementRole -Parent "Mail Recipients" -Name "MgmtRole SMTP Modifcation"
Hinweis: Entfernen der Rolle
Remove-ManagementRole "MgmtRole SMTP Modifcation" -confirm:$False
2. Prüfen, welche cmdlets in dieser Rolle erlaubt sind
Get-ManagementRoleEntry "MgmtRole SMTP Modifcation\*" | Format-List
3. Löschen aller RoleEntries ausser „Set-Mailbox" in der Rolle
Get-ManagementRoleEntry "MgmtRole SMTP Modifcation\*" | Where-Object {$_.identity -ne "MgmtRole SMTP Modifcation\Set-Mailbox"} | Remove-ManagementRoleEntry -confirm:$False
4. Prüfen, ob alle cmdlets ausser „Set-Mailbox" in dieser Rolle entfernt sind - Prüfen der Parameterliste
Get-ManagementRoleEntry "MgmtRole SMTP Modifcation\*" | Format-List
5. Alle Parameter entfernen
Set-ManagementRoleEntry "MgmtRole SMTP Modifcation\Set-Mailbox" -Parameters $Null
6. Prüfen, welche Parameter zum cmdlet „Set-Mailbox" in dieser Rolle erlaubt sind
(Get-ManagementRoleEntry "MgmtRole SMTP Modifcation\Set-Mailbox").Parameters
7. Zuweisen der Parameter, die von den Mitgliedern der Rollengruppe mit dem cmdlet Set-Mailbox ausgeführt werden sollen
Set-ManagementRoleEntry "MgmtRole SMTP Modifcation\Set-Mailbox" -Parameters Identity, PrimarySMTPAddress, EmailAddresses -AddParameter
Hinweis: Entfernen eines Parameters
Set-ManagementRoleEntry "MgmtRole SMTP Modifcation\Set-Mailbox" -Parameters Identity -RemoveParameter
8. Prüfen, das nur die zugewiesenen Parameter zum cmdlet „Set-Mailbox" in dieser Rolle erlaubt sind
(Get-ManagementRoleEntry "MgmtRole SMTP Modifcation\Set-Mailbox").Parameters
9. Eine neue Rollengruppe erzeugen, ihr die entsprechenden Rollen und Mitglieder zuweisen
New-RoleGroup -Name "MgmtRoleGroup SMTP Modifcation" -Roles "MgmtRole SMTP Modifcation" -Members anton
Hinweis: Entfernen einer RollenGruppe
Remove-RoleGroup -Name "MgmtRoleGroup SMTP Modifcation"
10. Den Benutzer (benötigt nicht zwingend eine eigene Mailbox) der Rollengruppe zuweisen
Add-RoleGroupMember "View-Only Organization Management" -Member anton
Hinweis: Den Benutzer aus der Rolle entfernen
remove-RoleGroupMember "View-Only Organization Management" -Member anton
11. Hinweis: Hinter den Kulissen wurde zwischen der Rollengruppe und der Rolle das Linkobjekt "MgmtRole SMTP Modifcation-MgmtRoleGroup SMTP Modifcation" erzeugt.
Anmerkung: Dieses muss gelöscht warden, bevor man die Rollengruppe oder die Rolle entfernen möchte
Get-ManagementRoleAssignment -Role "MgmtRole SMTP Modifcation" | fl identity
remove-ManagementRoleAssignment "MgmtRole SMTP Modifcation-MgmtRoleGroup SMTP Modifcation"
12. Abschlusstest: Der Benutzer anton führt folgende cmdlets aus:
Set-Mailbox be01@xchg10.com -alias "bbbb" - erwartete Fehlermeldung: A positional parameter cannot be found that accepts argument '-alias'.
Set-Mailbox be01@xchg10.com -ForwardingAddress administrator@xchg10.com - dito
Set-Mailbox be01@xchg10.com -CustomAttribute1 "Text" -dito
Set-Mailbox be01@xchg10.com -EmailAddresses "SMTP:bbb@xchg10.com" - funktioniert
Erweiterungen
Auf Anregung habe ich das Beispiel noch so erweiteret, dass Anton die Adressen nur derjenigen Benutzer ändern darf, die in der OU MyUsers sind.
- Anlegen eines "Scope"-Objektes
New-ManagementScope -Name "MyUsers Scope" -RecipientRestrictionFilter { RecipientType -eq '*' } -RecipientRoot "x10a.biz/myusers" - Zuweisen des Scopes an das Link-Objekt
Set-ManagementRoleAssignment "MgmtRole SMTP Modifcation-MgmtRoleGroup SMTP Modifcation" -CustomRecipientWriteScope "MyUsers Scope"
-
Test:
Set-Mailbox be02@xchg10.com -EmailAddresses "SMTP:bxy@xchg10.com" - Erwartetes Ergebnis: Fehlermeldung: isn't within a vaild write scope!
Set-Mailbox be01@xchg10.com -EmailAddresses "SMTP:bxx@xchg10.com" - Erwartetes Ergebnis: funktioniert
Zusammenfassung:
Exchange 2010 ermöglicht durch sein rollenbasiertes Administrationsmodell (rollenbasierte Zugriffssteuerung) mithilfe von Remote-PowerShell, Aufgaben auf kontrollierte Weise an zuständige Benutzer zu delegieren und so den Bedürfnissen des Unternehmens nachzukommen. Spezielle Rollen für Mitarbeiter des Helpdesks oder Exchange-Serveradministratoren lassen sich leicht erstellen und verwalten und vereinfachen die Exchange-Administration.
Leider läßt sich diese filigrane Weise nicht bis in die GUI-Tools durchsetzen. Als Anton eingeloggt kann er die SMTP-Adressen weder über Outlook Web App noch über die Exchange Management Konsole ändern. Da hat entweder Microsoft noch etwas zu verbessern - oder ich hab' was übersehen.

Hi Hans,
bin heute nachmittag über diesen Artikel gestolpert.
Prima geschrieben und gutes Praxisbeispiel rausgesucht, gefällt mir sehr gut. Ergänzend könntest du noch auf die Management Scopes eingehen. Evtl. damit das Ändern der SMTP Adresse nur für bestimmte OUs erlauben.
Grüße
Wolfgang