Powershell: La ferme locale n'est pas accessible. Les applets de commande avec FeatureDependencyId ne sont pas enregistrées

0

J'essaie d'exécuter un script PowerShell à partir d'un fichier de commandes Windows. Ceci est un script SharePoint qui utilise Import-SPData.

Cela fonctionne sans problème lors de l'utilisation de USERAla connexion. Cependant, si j'essaie d'exécuter le même fichier de commandes à partir de USERBla connexion, le message d'erreur ci-dessous s'affiche:

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

...

Je me suis assuré que cela USERBa des permissions sur le batet les ps1fichiers.

J'utilise la PowerShellversion 2 etSharePoint Server 2010

Thilina R
la source

Réponses:

1

Sharepoint est une bête à gérer. Je souhaiterais que l'utilisateur ne dispose pas des autorisations adéquates pour le sharepoint et / ou d'un accès à la base de données de contenu.

Je voudrais comparer l'autorisation pour UserA et UserB au niveau Windows, Sharepoint et DB pour rechercher des différences.

Keltari
la source
0

Ok, j'ai réussi à faire en sorte que cela fonctionne.

Selon Microsoft:

Pour utiliser Windows PowerShell pour les produits SharePoint 2010, un utilisateur doit être membre du rôle SharePoint_Shell_Access sur la base de données de configuration et du groupe local WSS_ADMIN_WPG sur l'ordinateur sur lequel les produits SharePoint 2010 sont installés.

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

Pour faire ça:

  • Ouvrez le shell de gestion SharePoint (exécuté en tant qu'administrateur si le contrôle de compte d'utilisateur est activé)
  • Ajoutez un SharePoint_Shell_Accessrôle à USERB pour la base de données de configuration SharePoint.

Peut utiliser le code PowerShell suivant pour cela:

$dbs = Get-SPDatabase; foreach($d in $dbs) {If($d.name.contains("SharePoint_Config")){Add-SPShellAdmin "domain\USERB" -database $d}}
  • Assurez-vous que la collection de sites SharePoint et la bibliothèque / liste de documents (le cas échéant) disposent également des autorisations appropriées pour USERB
Thilina R
la source