[SharePoint2010] The local farm is not accessible. Cmdlets with FeatureDependencyId are not registered
При попытке запустить SharePoint 2010 Management Shell вылезло сообщение — «The local farm is not accessible. Cmdlets with FeatureDependencyId are not registered», и соответственно не работают командлеты PowerShell для SharePoint 2010.
При траблшутинге выяснилось, что ошибка появилась после установки PowerShell 3.0 на сервер Server 2008 R2, а точнее после установки обновления KB2506143. Все дело в том, что SharePoint 2010 использует .NET Framework 3.5, а для PowerShell 3.0 нужен NET Framework 4.0, который SharePoint не поддерживает. Решение простое, нужно для SharePoint 2010 Managment Shell запускать PowerShell в режиме 2.0. А как это сделать расскажу ниже…
Чтобы узнать какая версия PowerShell на данный момент задействована — нужно в командной строке ввести следующие команды:
$ver=$host | select version $ver.Version
На скриншоте видно, что на данный момент версия PowerShell 3.0 (об этом говорит надпись – Major 3), и командлет SharePoint не сработал. Чтобы при запуске SharePoint 2010 Managment Shell версия PowerShell была 2.0, нужно внести изменение в ярлык. В строке Target дописываем параметр «–version 2. В результате строка должны выглядеть так:
C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe -version 2 -NoExit " & ' C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\CONFIG\POWERSHELL\Registration\\SharePoint.ps1 ' "
Запускаем SharePoint 2010 Managment Shell от имени администратора.
SharePoint 2010 Managment Shell запустится без ошибок, PowerShell 2.0 и все командлеты SharePoint будут работать.
Microsoft знает об этой проблеме (link1, link2, link3). Они собираются поправить этот недочет в одном из следующих Service Pack для SharePoint 2010.
Нашли опечатку в тексте? Пожалуйста, выделите ее и нажмите Ctrl+Enter! Спасибо!
Хотите поблагодарить автора за эту заметку? Вы можете это сделать!