Archive

Exchange 2010: Berechtigungen auf Verteilergruppen prüfen

Im Artikel über Verwalter von Verteilergruppen habe ich berichtet, dass man in der Exchange 2010 Verwaltungskonsole zwar einen Verwalter eintragen kann, dieser dadurch aber nicht die Berechtigungen erhält, die Gruppe über das Outlook Adressbuch zu bearbeiten, sprich Mitglieder hinzuzufügen bzw. zu entfernen.

Mit dieser Erkenntnis wäre es interessant zu wissen, bei welchen Verteilern der eingetragene Manager nicht über die erforderlichen Bearbeitungsrechte verfügt, um ggf. die Berechtigungen nachzutragen.

Der folgende Powershell Code gibt jeweils eine Zeile mit dem Namen des Verteilers und dem Distinguished Name des eingetragenen Verwalters aus, wenn die Active Directory Berechtigungen ReadProperty und WriteProperty auf die Eigenschaft Member nicht gesetzt sind. Es werden alle Verteiler geprüft. Der Code kann unter Exchange 2007 nicht verwendet werden, da hier noch einiges anders ist. Für Exchange 2007 werde ich das entsprechende Script separat veröffentlichen.

#Alle Verteiler prüfen, bei denen das Property "ManagedBy" gefüllt ist
$groups = get-distributiongroup -ResultSize Unlimited | where-Object {$_.ManagedBy -ne $Null}
 
#Schleife wird für jeden gefundenen Verteiler durchlaufen
foreach ($group in $groups) {
 
	#Es können mehrere Verwalter eingetragen werden, deshalb der Zusatz -expandProperty
	$managers = $group.ManagedBy
 
	#Schleife wird für jeden gefundenen Verwalter durchlaufen
	foreach ($manager in $managers) {
 
		#Prüfe ob für den Verwalter eine Berechtigung für das Property "Member" eingetragen ist
		$permprop = get-adpermission $group.SamAccountName -user $manager.DistinguishedName | where-Object {$_.Properties -match 'Member'}
 
		#Wenn keine Berechtigung vorhanden ist, Ausgabe des Gruppennamens und des Verwalters
		if ($permprop -eq $Null) {
			Write-Host "Gruppe: " $group.SamAccountName "Verwalter: " $manager.DistinguishedName
		} Else {
 
			#Es müssen die Berechtigungen Read Property _und_ Write Property auf "Member" vorhanden sein
			$permright = $permprop.AccessRights
			if ($permright -notcontains "ReadProperty, WriteProperty") {
				Write-Host "Gruppe: " $group.SamAccountName "Verwalter: " $manager.DistinguishedName
			}
		}
	}
}

Hinweise: Die mehrfachenAbfragen get-adpermission sind leider erforderlich, da sonst das Abfrageergebnis nicht verarbeitet werden kann. Das Script wurde in einer Umgebung mit Exchange 2010 SP1 (Beta) erfolgreich getestet. Wer Fehler findet, bitte in den Kommentaren melden. Danke.

Share

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Comment Spam Protection by WP-SpamFree