Dans cet article nous verrons comment envoyer des fichiers dans SharePoint/Teams en utilisant PowerShell et l'API Graph uniquement, sans modules.
Contexte
- Vous avez un site SharePoint
- Vous souhaitez y envoyer des fichiers
- Vous ne voulez pas utiliser de module
Dans cet article je vous montrerais commet utiliser directement l'API Graph sans modules.
Auparavant j'avais l'habitude d'utiliser le module pnp.powershell et celui-ci fonctionnait très bien. Cependant depuis certaines mises à jours du module, des choses fonctionnaient à moitié.
C'est pourquoi j'ai décidé de procéder sans module et je dirais que de manière générale cela vous évitera toujours des problèmes à des mises à jours ainsi qu'une meilleure compréhension de l'API Graph.
Fonctionnement
Nous procèderons comme ci-dessous:
- Création d'une app Azure
- Ajout de permissions
- Ajout secret ou certificat
- Utiliser PowerShell et Graph
*Dans mon cas j'utiliserais un secret
Obtenir l'ID du site SharePoint
J'ai le site SharePoint suivant:https://systanddeploy.sharepoint.com/sites/Support
Dans le but de pouvoir envoyer des fichiers il nous faut l'ID correspondant au site.
Pour cela il vous suffit d'utiliser votre navigateur et de saisir l'adresse ci-dessous:
https://systanddeploy.sharepoint.com/sites/Support/_api/site/id
Création de l'app Azure
1. Allez dans le portail Azure
2. Allez dans App registrations
3. Cliquez sur New registration
4. Saisissez un nom
5. Laissez par défaut et cliquez sur Register
Ajout des permissions
Pour tous les sites
1. Allez dans API permissions
2. Cliques sur Add a permission
3. Sélectionnez Microsoft Graph
4. Séléctionnez Application permissions
5. Cochez Sites.ReadWrite
6. Cliquez sur Add permissions
7. Cliquez sur Grant admin consent
Pour un site spécifique
Ici nous souhaitons gérer uniquement un site particulier (plus secure quand même).
Nous procèderons comme ci-dessous:
1. Allez dans API permissions
2. Cliquez sur Add a permission
3. Sélectionnez SharePoint
4. Sélectionnez Application permissions
6. Cochez Sites.Selected
7. Cliquez sur Add permissions
8. Cliquez sur Grant admin consent
10. Ouvrez Graph Explorer ici
11. Choisissez la méthode POST
12. Dans url saisissez l'URL suivante et remplacez yoursharepointsiteid avec l'ID de votre site:
https://graph.microsoft.com/v1.0/sites/yoursharepointsiteid/permissions
13. Allez dans Request body
14. Saisissez le JSON suivant et remplacez avec vos infos:
{
"roles": ["write"],
"grantedToIdentities": [{
"application": {
"id": "azure app id",
"displayName": "azure app displayname"
}
}]
}
15. Cliquez sur Run query
16. Vous devriez maintenant avoir accès à votre site
Création du secret
1. Allez dans le portail Azure
2. Allez dans votre app Azure
3. Cliquez sur Certificates & secrets
4. Cliquez sur New client secret
Envoyez du contenu dans SharePoint
Nous aurons besoin des infos suivantes:
- L'URL du site SharePoint
- L'ID de l'app Azure
- Le secret lié à votre application
Pour obtenir le script cliquez sur le bouton GitHub ci-dessous:
0 Commentaires