Dieser Artikel beschreibt, wie mittels einfacher PowerShell-Kommandos die Benutzer und Berechtigungen von einer Site Collection eines SharePoint Servers ausgelesen werden können.
Durch das PowerShell SharePoint-AddIn werden eine Fülle von Befehlen bereitgestellt, mit denen man Informationen aus dem SharePoint 2010 auslesen, anlegen oder aber auch den SharePoint konfigurieren kann.
Das folgende PowerShell-Commandlet ist folgendermaßen aufgebaut:
- Hinzufügen des SharePoint Powershell-AddIn
- Abfrage aller Benutzer und deren Berechtigungen über den Befehl Get-SPUser
- Speichern der Informationen in einem Objekt für eine spätere Ausgabe
In diesem Fall möchten wir die folgenden Benutzer und deren Berechtigungsinformationen ausgeben:
- Loginname
- Benutzername
- explizite Benutzerrolle
- Benutzerrolle innerhalb der Gruppe
- Gruppe(n)
param($Site = "<Name der Site Collection>") if((Get-PSSnapin -Name "Microsoft.SharePoint.PowerShell" -EA 0) -eq $null) { Add-PSSnapin "Microsoft.SharePoint.PowerShell" } #Auslesen aller Benutzer mit Detailinformationen wie Gruppen, Rollen, etc. innerhalb der aktuellen Site Collection Url. $users = Get-SPUser -Web $Site -ErrorAction Stop | select UserLogin, DisplayName, @{Label="ExplicitGivenRoles";expression={$_.Roles}}, @{Label="RolesGivenViaGroups";expression={$_.Groups | %{$_.Roles}}}, Groups $users | foreach{ $strGroups = "" $strGroupWithoutPraefix = "" $_.Groups | foreach{$strGroups += "$_, "} if($strGroups -ne "") {$strGroupWithoutPraefix = $strGroups.Substring(0,$strGroups.Length-2)} $object = New-Object PSObject $object | add-member noteproperty -name "UserLogin" -value $_.UserLogin $object | add-member noteproperty -name "DisplayName" -value $_.DisplayName $object | add-member noteproperty -name "ExplicitRoles" -value $_.ExplicitGivenRoles $object | add-member noteproperty -name "GroupRoles" -value $_.RolesGivenViaGroups $object | add-member noteproperty -name "SPGroup" -value $strGroupWithoutPraefix $object }
Fazit
Das innerhalb dieses Artikels beschriebene Powershell-Commandlet ermöglicht es, mit wenigen Zeilen Code die Benutzer und Berechtigungen einer Site Collection im SharePoint Server auszulesen.
Zusätzlich zum aktuell verwendeten Commandlet Get-SPUser, existieren innerhalb des SharePoint SnapIns noch weitere Commandlets, welche Sie auf den Microsoft Technet noch näher erläutert finden.