En utilisant Sharepoint otite chronique avec PowerShell
Il existe de nombreux exemples en ligne de la façon de l'accès/l'utilisation de SharePoint Côté Client, le Modèle d'Objet avec PowerShell. Mais bien sûr, ils ne semblent pas fonctionner pour moi. Il me semble avoir de la difficulté à accéder à certaines informations d'identification code:
PS C:\Scripts> $webUrl = "https://abc.sharepoint.com>"
PS C:\Scripts> $username = "user3"
PS C:\Scripts> $password = "password"
PS C:\Scripts>
PS C:\Scripts> $ctx = new-object Microsoft.SharePoint.Client.ClientContext($webUrl)
PS C:\Scripts> $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password)
New-Object : Cannot find type Microsoft.SharePoint.Client.SharePointOnlineCredentials]: make sure the assembly containing this type is loaded.
At line:1 char:30
+ $ctx.Credentials = New-Object <<<< Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password)
+ CategoryInfo : InvalidType: (:) [New-Object], PSArgumentException
+ FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand
Je tente d'accéder à un serveur SharePoint 2010 que nous maintenons qui exige l'authentification d'ouverture de session. Personne ne sait ce que je fais de mal?
OK, donc beaucoup de réponses m'ont dit que je suis en utilisant la mauvaise agrément de type pour cette connexion. J'ai donc changé:
$clientContext = New-Object Microsoft.SharePoint.Client.ClientContext($url)
$clientContext.AuthenticationMode = "FormsAuthentication"
$clientContext.FormsAuthenticationLoginInfo = New-Object Microsoft.SharePoint.Client.FormsAuthenticationLoginInfo("myDomain\myUser", "myPassword")
qui semble bien fonctionner. Mais alors...
$web = $clientContext.Web
$properties = $web.AllProperties
$clientContext.Load($web)
me donne:
> Cannot find an overload for "Load" and the argument count: "1". At
> line:1 char:20
> + $clientContext.Load <<<< ($web)
> + CategoryInfo : NotSpecified: (:) [], MethodException
> + FullyQualifiedErrorId : MethodCountCouldNotFindBest
et quand j'essaie de regarder le $clientContent objet:
PS C:\Scripts> $clientContent | get-member
Get-Member : No object has been specified to the get-member cmdlet.
At line:1 char:28
+ $clientContent | get-member <<<<
+ CategoryInfo : CloseError: (:) [Get-Member], InvalidOperationException
+ FullyQualifiedErrorId : NoObjectInGetMember,Microsoft.PowerShell.Commands.GetMemberCommand
qui n'a aucun sens. Quelqu'un a une aide pour cela?
OriginalL'auteur Michael Frederick | 2013-08-20
Vous devez vous connecter pour publier un commentaire.
C'est de travailler pour moi pour SharePoint online
OriginalL'auteur Joseph Saad
SharePointOnlineCredentials est utilisé pour l'authentification à Office365/SharePoint 2013 services en Ligne. Si vous n'avez pas hébergé 2013 exemple, il n'est pas surprenant que le PS ne peut pas trouver le type.
Si vous travaillez sur un serveur que vous conservez dans votre propre nom de domaine et que vous utilisez l'Authentification Windows, votre contexte de ramasser votre jeton de sécurité.
Si vous êtes en train de faire les formes ou les droits de l'authentification, vous devrez dire à votre contexte:
Il y a aussi un ClientContext.Les informations d'identification bien si vous avez besoin d'entrer d'autres informations d'identification.
OriginalL'auteur Reacher Gilt
Au début de votre script powershell, spécifiez le chemin d'accès complet de l'otite chronique Dll vous avez besoin, comme ceci:
Qui résout l'erreur 403 pour moi. Si je charge la dll à l'aide d'une variable d'environnement dans le cadre de la voie qu'il ne fonctionne pas sur mon serveur, mais sur mon poste de travail.
OriginalL'auteur JohnJ
Je suis en utilisant la suite avec succès contre un SharePoint 2013 sur site de l'installation. C'est un peu différent à votre exemple, qu'il invites pour les informations d'identification - mais je pense que c'est généralement une meilleure approche que d'entrer le mot de passe dans le script.
Je suis enfin prêt à essayer ce nouveau. J'ai mis à jour mon approche et je suis en utilisant une partie de cette réponse: >PS C:\Scripts> AddCSOM >PS C:\Scripts> $context = New-Object SharepointClient.PSClientContext("siteCollection") >PS C:\Scripts> $informations d'identification = Get-Credential # Ici, j'ai été invité pour et fourni mon domaine\nom d'utilisateur et mot de passe >PS C:\Scripts> $contexte.Les informations d'identification = $informations d'identification >PS C:\Scripts> $contexte.ExecuteQuery() >à l'Exception d'appeler "ExecuteQuery" avec "0" argument(s): "Le serveur distant a retourné une erreur: (403) Interdit". Que faire maintenant?
OriginalL'auteur Martin D