Powershell:无法访问本地服务器场。具有 FeatureDependencyId 的 Cmdlet 未注册

Powershell:无法访问本地服务器场。具有 FeatureDependencyId 的 Cmdlet 未注册

我正在尝试从 Windows 批处理文件运行 PowerShell 脚本。这是一个使用 的 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

...

我确保USERBbatps1文件具有权限。

我正在使用PowerShell版本 2,SharePoint Server 2010

答案1

Sharepoint 很难对付。我怀疑 UserB 没有适当的 SharePoint 权限和/或对内容数据库的访问权限

我将在 Windows、Sharepoint 和 DB 级别比较用户 A 和用户 B 的权限以寻找差异。

答案2

好的,我设法让它工作了。

据微软称:

为了使用适用于 SharePoint 2010 产品的 Windows PowerShell,用户必须是SharePoint_Shell_访问配置数据库上的角色和管理员权限安装 SharePoint 2010 产品的计算机上的本地组。

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

去做这个:

  • 打开 SharePoint 命令行管理程序(如果已激活“用户帐户控制”,则以管理员身份运行)
  • SharePoint_Shell_Access为 SharePoint 配置数据库的 USERB添加角色。

可以使用以下 PowerShell 代码来执行此操作:

$dbs = Get-SPDatabase; foreach($d in $dbs) {If($d.name.contains("SharePoint_Config")){Add-SPShellAdmin "domain\USERB" -database $d}}
  • 确保 SharePoint 网站集和文档库/列表(如果有)也具有适当的权限USERB

相关内容