Powershell: местная ферма недоступна. Командлеты с FeatureDependencyId не зарегистрированы

4412
thilina R

Я пытаюсь запустить скрипт PowerShell из командного файла Windows. Это сценарий, связанный с SharePoint, который используетImport-SPData .

Это работает без каких-либо проблем при использовании USERAвхода в систему. Однако, если я пытаюсь запустить тот же пакетный файл из USERBимени входа в систему, я получаю ошибку ниже:

c:\PS>ExecMyPowershellScript.bat  c:\PS>C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -psconsolefile " C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\CONFIG\P OWERSHELL\Registration\psconsole.psc1" -command "c:\ps\MyPSScript.ps1"  The local farm is not accessible. Cmdlets with FeatureDependencyId are not regis tered. Import-SPData : Cannot access the local farm. Verify that the local farm is pro perly configured, currently available, and that you have the appropriate permis sions to access the database before trying again. At C:\ps\Run_MyPSScript.ps1:5 char:18  ... 

Я убедился, что USERBимеет право доступа к ресурсу batи к ps1файлам.

Я использую PowerShellверсию 2 иSharePoint Server 2010

0

2 ответа на вопрос

1
Keltari

Sharepoint - зверь, с которым приходится иметь дело. Я бы сказал, что UserB не имеет надлежащих разрешений sharepoint и / или доступа к базе данных контента.

Я бы сравнил разрешение для UserA и UserB на уровне Windows, Sharepoint и DB, чтобы найти различия.

0
thilina R

Ok, I managed to get this to work.

According to Microsoft:

In order to use Windows PowerShell for SharePoint 2010 Products, a user must be a member of the SharePoint_Shell_Access role on the configuration database and a member of the WSS_ADMIN_WPG local group on the computer where SharePoint 2010 Products is installed.

http://technet.microsoft.com/en-us/library/ff607596%28v=office.14%29.aspx

To do this:

  • Open the SharePoint management shell (run as administrator if you have User Account Control activated)
  • Add SharePoint_Shell_Access role to USERB for the SharePoint configuration database.

Can use the following PowerShell code to do this:

$dbs = Get-SPDatabase; foreach($d in $dbs) } 
  • Make sure the SharePoint site collection and document library/list (if any) also have the proper permissions for USERB

Похожие вопросы