Damit ein Benutzer die PowerShell-CMDlets zur Verwaltung der SharePoint-Farm verwenden kann, muss dieser zuerst dafür mit dem CMDlet Add-SPShellAdmin berechtigt werden.
Hier zeige ich kurz wie das gemacht wird, was dabei im Hintergrund passiert und was die Voraussetzungen für die Durchführung sind.
SpShellAdmin PowerShell CMDlet
Normalerweise kann ein Benutzer nicht auf die SharePoint-Farm per PowerShell zugreifen auch wenn dieser zum Farmadministrator gemacht wurde.
Es fehlen Berechtigungen auf der Datenbankebene.
Die Fehlermeldungen lauten:
Auf die lokale Farm kann nicht zugegriffen werden. Vergewissern Sie sich, dass die lokale Farm ordnungsgemäß konfiguriert sowie aktuell verfügbar ist und Sie über ausreichende Berechtigungen verfügen, um auf die Datenbank zugreifen zu können, bevor Sie es erneut versuchen.
oder
Cannot access the local farm. Verify that the local farm is properly configured, currently available, and that you have the appropriate permissions to access the database before trying again
Add-SPShellAdmin – Benutzer hinzufügen
Um die nötigen Berechtigungen zu geben gibt es das folgende PowerShell-CMDlet. (Als Admin in einer SharePoint-Verwaltungsshell)
Add-SPShellAdmin -UserName DOMAIN\User
Dabei erhält der Benutzer die Datenbankrolle „SharePoint_Shell_Access“ und „SPDataAccess“ für die Config-DB und wird auf den SharePoint-Servern Mitglied in der lokalen Gruppe „WSS_ADMIN_WPG“
Get-SpShellAdmin – Eingetragene Benutzer auflisten
Get-SpShellAdmin
Remove-SPShellAdmin – Benutzer entfernen
Mit folgendem Kommando kann man dem Benutzer SpShellAdmin-Rechte (Datenbankrolle „SharePoint_Shell_Access“ und „SPDataAccess“) wieder entziehen.
Hinweis: Dabei wird die Mitgliedschaft in der lokalen Gruppe „WSS_ADMIN_WPG“ nicht verändert.
Remove-SpShellAdmin -UserName DOMAIN\User
Voraussetzungen
Voraussetzung für die Nutzung des SpShell-Kommandos:
Der Ausführende Benutzer muss Mitglied in der SQL-Server-Rolle „securityadmin“ und in der Datenbankrolle „db_owner“ für die Datenbank (im Standardfall Config-DB) und lokaler Administrator auf dem Server sein.