While this error has been around for a while, I recently discovered a new possible cause. An opportunity to pack up this post with all causes identified until now (Therefore a feeling of déjà may be experienced by the reader).
Incorrect Windows PowerShell Version
You recently upgrade to Powershell V3.0 as part of the Windows Management Framework 3.0, it’s likely you see the error message hereunder when starting the SharePoint 2010 Management Shell.
microsoft sharepoint is not supported with version 4.0.30319 of the microsoft .net runtime
the local farm is not accessible cmdlets with feature dependency are not registered
Powershell V3.0 makes use of the .Net Framework 4.0. This combination prevents SharePoint’s Management Shell from working.
Locate the SharePoint 2010 Management Shell shortcut from the Windows Start Menu then edit it
For the parameter Target, add the parameter -version and value 2 as described hereunder:
C:WindowsSystem32WindowsPowerShellv1.0PowerShell.exe –version 2 -NoExit ” & ‘ C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14CONFIGPOWERSHELLRegistrationsharepoint.ps1 ‘ “
This will instruct PowerShell to behave like it would do with version 2.0 instead of 3.0.
To get the effective version of the PowerShell host running, simply use the $Host object:
The logged on user is not granted SharePoint_Shell_Access
Assuming you’re not granted high privileges on the SQL Server Instance hosting your SharePoint databases such as SYSADMIN role, using SharePoint 2010 Management Shell requires the logged on user to be granted SharePoint_Shell_Access on the Configuration database.
Use the command Add-SPShellAdmin cmdlet to grant the user the necessary role.
- To retrieve the list of user granted SharePoint_Shell_Access, use the cmldet Get-SPShellAdmin
- To remove a user from the SharePoint_Shell_Access role, use Remove-SPShellAdmin
The logged on user is not administrator of the SharePoint server or server has UAC enabled
Using the SharePoint 2010 Management Shell requires the logged on use to be effective administrator of the SharePoint server where it runs.
Therefore there are 2 possible causes:
- The user is not member of the local administrators group at all
- The User Account Control is on and the logged on user did not chose to start SharePoint 2010 Management Shell as Administrator
Always start SharePoint 2010 Management Shell with a domain user, logged on as administrator and chose the option “Run as Administrator” when right-clicking on the shortcut.
To make your life simpler, you can also edit the shortcut of the SharePoint 2010 Management Shell, then click on the button Advanced and finally select the check bow corresponding to the option “Run as administrator”. This will not prevent the UAC prompt from popping up but at least, the shell will always start as admin.