Ziemlich ärgerlich, wenn man mit Sharepoint Shell arbeiten möchte und es kommt folgende Fehlermeldung:
Auf die lokale Farm kann nicht zugegriffen werden. Cmdlets mit 'FeatureDependencyID sind nicht registriert.
Grundsätzlich sind mir drei Arten bekannt, wie es zu diesem Fehler kommt. Entweder hat man nicht das entsprechende Shell Recht in der Sharepoint_Konfigurationsdatenbank, es liegt eine “Art” Fehler bei Powershell vor oder es liegt an den Rechten auf dem Server (UAC)
Fangen wir doch mal mit letzten zuerst an.
Problem Benutzerkontensteuerung
Wenn sie die Sharepoint Verwaltungsshell öffnen, starten Sie diese immer mit “Als Administrator ausführen”!
So, nun aber zu den zwei wahrscheinlicheren Problemen. Nummer eins auf der Liste: Sie haben seitens Sharepoint kein Recht die Powershell auszuführen. Das kann entweder manuell oder per PowerShell erledigt werden.
Natürlich sollten Sie auch lokaler Administrator sein!
Variante 1: Manueller Eintrag in SQL Server und Editieren von Gruppen
In der Sharepoint Konfigurationsdatenbank gibt es eine Datenbankrolle “Sharepoint _Shell_Access”. Diese regelt, wer die Sharepoint Shell innerhalb der Farm verwenden darf.
Ehrlich gesagt, ist dies am leichtesten nicht innerhalb der Datenbank zu erledigen, sondern im Bereich Sicherheit unter den Ameldungen:
Hier können Sie mit einem KLick sozusagen, die Anmeldung hinzufügen und unter Benutzerzuordnungen, die neue Anmeldung gleich der Datenbankrolle in der SP Konfigurationsdatenbank zuweisen.
Der Benutzer muss außerdem auf allen Webservern in der Farm zu der Gruppe der WSS_Admin_WPG hinzugefügt werden!
Variante 2: Per Sharepoint Shell
Wie so oft hat die Sharepoint Verwaltungshell auch dafür wieder einen passenden Befehl:
Add-SPShellAdmin -Username [-database]
Der Parameter –database wird nur gebraucht, wenn sie einer speziellen Datenbank die Rolle Sharepoint_Shell_Access und den User hinzufügen wollen. IN der Konfigurationsdatenbank wird er auf jeden Fall hizugefügt und die Rolle, falls nicht vorhanden, ebenso.
Zitat aus der Onlinedokumentation:
“…Der Benutzer wird der Rolle WSS_Admin_WPG auf allen Webservern hinzugefügt, wenn er der Rolle SharePoint_Shell_Access hinzugefügt wird. Wenn die Zieldatenbank keine Rolle SharePoint_Shell_Access aufweist, wird
Mit Get-SPShellAdmin können Sie auch bereits enthaltene User auflisten lassen:
oder auch wieder entfernen mit Remove-SPShellAdmin.
Letztes Problem: Powershell
Falls das immer noch nicht klappen sollte, dan nkann das durchaus an der Powershell selbst liegen:
Probieren Sie doch mal folgendes aus:
Öffnen Sie die Sharepoint Verwaltungsshell und geben $Host ein:
Finden Sie hier unter Version auch die 3.0?
Dann haben wir das Problem, dass wir nur mit der Version 2.0 arbeiten können
Das läßt sich der Powershell durchaus mitteilen:
C:WindowsSystem32WindowsPowerShellv1.0PowerShell.exe –version 2 -NoExit ” & ‘ C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14CONFIGPOWERSHELLRegistrationsharepoint.ps1 ‘ “
Führen Sie dieses Skript einfach in der Sharepoint Verwaltungshell aus und anschliessend können sie wieder normal Shell arbeiten. Die $Host sollte nun Version 2 anzeigen.
Erfolg sieht dann so aus:
Viel Spaß damit..