WWW.COLLAB365.EVENTSWWW.COLLAB365.EVENTS
Office 365 API & PowerShell : Le
meilleur des deux mondes!
WWW.COLLAB365.EVENTS
Qui est Sébastien Levert ?!
Montreal, Canada negotium.com MVP Office365
Développeur Web @sebastienlev...
WWW.COLLAB365.EVENTS
Agenda
• Introduction à PowerShell dans Office 365
• Utilisation de PowerShell avec SharePoint Online...
WWW.COLLAB365.EVENTS
Pour démarrer
• Annoncé à Ignite 2015
• http://powershell.office.com
• Plusieurs exemples, scénarios,...
WWW.COLLAB365.EVENTS
J’ai besoin de quoi pour débuter ?
• Un tenant Office 365 (!)
• Des privilèges d’administration sur v...
WWW.COLLAB365.EVENTS
Se connecter à SharePoint Online
• Avec le SharePoint Online Module
• Avec les APIs clientes CSOM
• A...
WWW.COLLAB365.EVENTS
Obtenir toutes vos
collections de sites
Démo
WWW.COLLAB365.EVENTS
Obtenir toutes vos collections de sites
Get-SPOSite
Get-SPOSite –Detailed
Get-SPOSite –Detailed –Filt...
WWW.COLLAB365.EVENTS
Utilisation du CSOM avec PowerShell
• Obtenir les librairies CSOM manuellement
• Charger manuellement...
WWW.COLLAB365.EVENTS
Trucs & astuces
• N’utilisez pas le SharePoint Online Management Shell
• Importer les modules PowerSh...
WWW.COLLAB365.EVENTS
Obtenir les librairies
CSOM
Démo
WWW.COLLAB365.EVENTS
Utiliser les librairies CSOM
Import-Module C:PathPTC.O365.PowerShell.psm1
Get-ClientAssemblies –Versi...
WWW.COLLAB365.EVENTS
Mélanger le CSOM et les Cmdlets SPO
• Il est simple de mlanger le CSOM et les Cmdlets SPO
• Utiliser ...
WWW.COLLAB365.EVENTS
Obtenir toutes les
collections de sites
Démo
WWW.COLLAB365.EVENTS
Obtenir tous les sites de chaque collection de sites
Import-Module C:PathPTC.O365.PowerShell.psm1
Imp...
WWW.COLLAB365.EVENTS
Exporter le contenu
d’une liste SharePoint
Démo
WWW.COLLAB365.EVENTS
Exporter le contenu d’une liste
SharePoint
$credentials = Get-SharePointOnlineCredentials
$context = ...
WWW.COLLAB365.EVENTS
Utilisation des PowerShell.Commands
• 123 nouveaux Cmdlets livrés par l’équipe OfficeDev PnP
• Série ...
WWW.COLLAB365.EVENTS
Ajouter et assigner un
thème à un site
Démo
WWW.COLLAB365.EVENTS
Ajouter et assigner un thème à un site
Connect-SPOnline –Url https://tenant.sharepoint.com
Add-SPOFil...
WWW.COLLAB365.EVENTS
Utilisation de REST avec SharePoint
Online• Excellente série d’article par Gary Lapointe
• Cmdlet mag...
WWW.COLLAB365.EVENTS
Requêter vos items
de listes avec OData
Démo
WWW.COLLAB365.EVENTS
Requêter vos items de listes avec OData
$url =
“https://tenant.sharepoint.com/_api/lists/GetByTitle('...
WWW.COLLAB365.EVENTS
Requêtes le Graph
avec les API REST
Démo
WWW.COLLAB365.EVENTS
Requêtes le Graph avec les API REST
$url =
“https://tenant.sharepoint.com/_api/search/query?Querytext...
WWW.COLLAB365.EVENTS
APIs Office 365
• Série d’APIs livrés pour unifier les APIs des produits
• Bâtis au dessus des applic...
WWW.COLLAB365.EVENTS
APIs Office 365 avec PowerShell
1. Créer une application Azure Active Directory
2. Créer un certifica...
WWW.COLLAB365.EVENTS
Les bases
Démo
WWW.COLLAB365.EVENTS
Les bases
makecert -r -pe -n "CN=PowerShell Office 365 API Application" -b
1/01/2015 -e 12/31/2016 -s...
WWW.COLLAB365.EVENTS
Obtenir un jeton
d’accès
Démo
WWW.COLLAB365.EVENTS
Obtenir un jeton d’accès
$global:AzureADApplicationTenantId = “TENANTID”
$global:AzureADApplicationCl...
WWW.COLLAB365.EVENTS
Obtenir le contenu de
votre boîte courriel
Demo
WWW.COLLAB365.EVENTS
Obtenir le contenu de votre boîte
courriel
$url = $exchangeResourceUri + “/api/v1.0/users(‘email’)/fo...
WWW.COLLAB365.EVENTS
Envoyer un courriel
Démo
WWW.COLLAB365.EVENTS
Préparation du corps du courriel
$body = @{
“Message” = @{
“Subject” = "This is a test email from Pow...
WWW.COLLAB365.EVENTS
Envoyer un courriel
$url = $exchangeResourceUri + “/api/v1.0/users(‘email’)/sendmail”
$response = Inv...
WWW.COLLAB365.EVENTS
Ce que le DevOps signifie pour moi…
• Automatiser tout ce qui est possible
• S’assurer qu’une configu...
WWW.COLLAB365.EVENTS
Dans un monde Office 365, ça signifie…
• Chacun des artéfact qui est créé doit être scripté et
déploy...
WWW.COLLAB365.EVENTS
Exportation d’une
configuration de site
Démo
WWW.COLLAB365.EVENTS
Exportation d’une configuration de site
Connect-SPOnline –Url https://tenant.sharepoint.com
Get-SPOPr...
WWW.COLLAB365.EVENTS
Importation d’une
configuration de site
Démo
WWW.COLLAB365.EVENTS
Import SharePoint site configuration
Connect-SPOnline –Url https://tenant.sharepoint.com
Apply-SPOPro...
WWW.COLLAB365.EVENTS
Ressources PowerShell pour Office 365
• PowerShell for Office 365
• http://powershell.office.com
• Mi...
WWW.COLLAB365.EVENTS
PowerShell for Office 365 Resources
• Azure Active Directory Module for Windows PowerShell
• http://g...
WWW.COLLAB365.EVENTS
PowerShell for Office 365 Resources
• Articles de Gary Lapointe “PowerShell and SharePoint
Online RES...
WWW.COLLAB365.EVENTS
Catch me!
Montreal, Canada negotium.com MVP Office365
Développeur Web @sebastienlevert pimpthecloud.c...
Stay tuned for more great sessions …
WWW.COLLAB365.EVENTS
Thanks for watching!
Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!
Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!
Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!
Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!
Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!
Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!
Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!
Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!
Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!
Prochain SlideShare
Chargement dans…5
×

Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!

1 069 vues

Publié le

Dans un monde où nous entendons plus en plus parler de DevOps et d'intégration continue, vos déploiements Office365 pourraient être victimes de quelques pratiques doûteuses et d'une automatisation de vos processus manquante. Dans cette session, nous couvrirons comment vous pouvez utiliser PowerShell pour faciliter vos déploiement de vos applications, de monitorer vos tenants Office365 et de maintenir chacun des produits couverts par la suite de productivité. Étant donné que cette session est très orientée vers les démos, n'ayez pas peur d'apercevoir beaucoup de code PowerShell et Office365 API!​
Les 3 éléments que vous pourrez soutirer de cette session sont :

- Vous apprendrez comment communiquer avec les API Office365 via PowerShell
- Vous serez introduit aux principes de DevOps dans un contexte Office365
- Vous serez en mesure de reproduire simplement ces acquis lorsque vous serez de retour au boulot

Publié dans : Technologie
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 069
Sur SlideShare
0
Issues des intégrations
0
Intégrations
339
Actions
Partages
0
Téléchargements
10
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!

  1. 1. WWW.COLLAB365.EVENTSWWW.COLLAB365.EVENTS Office 365 API & PowerShell : Le meilleur des deux mondes!
  2. 2. WWW.COLLAB365.EVENTS Qui est Sébastien Levert ?! Montreal, Canada negotium.com MVP Office365 Développeur Web @sebastienlevert pimpthecloud.com
  3. 3. WWW.COLLAB365.EVENTS Agenda • Introduction à PowerShell dans Office 365 • Utilisation de PowerShell avec SharePoint Online • Utilisation de PowerShell avec les APIs Office 365 • DevOps avec PowerShell dans Office 365
  4. 4. WWW.COLLAB365.EVENTS Pour démarrer • Annoncé à Ignite 2015 • http://powershell.office.com • Plusieurs exemples, scénarios, guides, …
  5. 5. WWW.COLLAB365.EVENTS J’ai besoin de quoi pour débuter ? • Un tenant Office 365 (!) • Des privilèges d’administration sur votre tenant Office 365 • Des privilèges d’administration sur votre machine locale • Les modules d’administration • Microsoft Online Services Sign-in Assistant • Azure Active Directory Module • SharePoint Online Module • Skype for Business Online Module
  6. 6. WWW.COLLAB365.EVENTS Se connecter à SharePoint Online • Avec le SharePoint Online Module • Avec les APIs clientes CSOM • Avec les commandes PowerShell OfficeDev • Avec les APIs REST de SharePoint
  7. 7. WWW.COLLAB365.EVENTS Obtenir toutes vos collections de sites Démo
  8. 8. WWW.COLLAB365.EVENTS Obtenir toutes vos collections de sites Get-SPOSite Get-SPOSite –Detailed Get-SPOSite –Detailed –Filter { Url –like “*term*” }
  9. 9. WWW.COLLAB365.EVENTS Utilisation du CSOM avec PowerShell • Obtenir les librairies CSOM manuellement • Charger manuellement les librairies CSOM dans votre session PowerShell • Assurez-vous d’avoir les plus récentes librairies [AppDomain]::CurrentDomain.GetAssemblies() | Where-Object { $_.FullName -like "*SharePoint*” –or $_.FullName –like “*Office*” } | Select FullName
  10. 10. WWW.COLLAB365.EVENTS Trucs & astuces • N’utilisez pas le SharePoint Online Management Shell • Importer les modules PowerShell SharePoint dans une session régulière PowerShell • Charger les librairies CSOM avant de charger le SharePoint Online Module • Utiliser le Cmdlet de Gary Lapointe’s Load- CSOMProperties. Tous les jours.
  11. 11. WWW.COLLAB365.EVENTS Obtenir les librairies CSOM Démo
  12. 12. WWW.COLLAB365.EVENTS Utiliser les librairies CSOM Import-Module C:PathPTC.O365.PowerShell.psm1 Get-ClientAssemblies –Version 16 –TargetDirectory C:assemblies Add-ClientAssemblies –AssembliesDirectory C:assemblies [AppDomain]::CurrentDomain.GetAssemblies() | Where-Object { $_.FullName -like "*SharePoint*” –or $_.FullName –like “*Office*” } | Select FullName
  13. 13. WWW.COLLAB365.EVENTS Mélanger le CSOM et les Cmdlets SPO • Il est simple de mlanger le CSOM et les Cmdlets SPO • Utiliser les Cmdlets pour obtenir les collections de sites • Utiliser le CSOM pour le reste
  14. 14. WWW.COLLAB365.EVENTS Obtenir toutes les collections de sites Démo
  15. 15. WWW.COLLAB365.EVENTS Obtenir tous les sites de chaque collection de sites Import-Module C:PathPTC.O365.PowerShell.psm1 Import-Module Microsoft.Online.SharePoint.PowerShell Connect-SPOService –Url https://tenant-admin.sharepoint.com $credentials = Get-SharePointOnlineCredentials Get-SPOSite | Where-Object { $_.Template –notlike “*EHS#0” } | ForEach-Object { $context = Get-Context –Url $_.Url –Credentials $credentials Get-Webs –Context $context | Select Url }
  16. 16. WWW.COLLAB365.EVENTS Exporter le contenu d’une liste SharePoint Démo
  17. 17. WWW.COLLAB365.EVENTS Exporter le contenu d’une liste SharePoint $credentials = Get-SharePointOnlineCredentials $context = Get-Context –Url “https://tenant.sharepoint.com” –Credentials $credentials $web = Get-Web -Context $context $list = Get-List –Web $web –Title “Tasks” $items = Get-ListContent –List $list -Fields @(“ID”, “Title”, “DueDate”) $items | Select @{ Name = “ID”; Expression = { $_[“ID”] } }, @{ Name = “Title”; Expression = { $_[“Title”] } }, @{ Name = “DueDate”; Expression = { $_[“DueDate”] } } | Export-CSV –Path C:Tasks.csv –NoTypeInformation –Encoding UTF8
  18. 18. WWW.COLLAB365.EVENTS Utilisation des PowerShell.Commands • 123 nouveaux Cmdlets livrés par l’équipe OfficeDev PnP • Série de Cmdlets utilisés pour exécuter du CSOM simplement sur vos environnements Online et On- Premises • Utilise le OfficeDevPnP.Core framework • Doit être installé sur votre machine • La vraie puissance de PowerShell avec la puissance de CSOM à la saveur PnP
  19. 19. WWW.COLLAB365.EVENTS Ajouter et assigner un thème à un site Démo
  20. 20. WWW.COLLAB365.EVENTS Ajouter et assigner un thème à un site Connect-SPOnline –Url https://tenant.sharepoint.com Add-SPOFile –Path C:theme.spcolor –Folder “_catalogs/theme/15” Add-SPOFile –Path C:image.jpg –Folder “SiteAssets” Set-SPOTheme ` –ColorPaletteUrl “/_catalogs/theme/15/theme.spcolor ” ` -BackgroundImageUrl “/SiteAssets/image.jpg”
  21. 21. WWW.COLLAB365.EVENTS Utilisation de REST avec SharePoint Online• Excellente série d’article par Gary Lapointe • Cmdlet magique fourni  Invoke-SPORestMethod • Facilite l’utilisation d’objets “typés” dans vos scripts PowerShell • Ne jamais oublier de gérer vos caractères “$”
  22. 22. WWW.COLLAB365.EVENTS Requêter vos items de listes avec OData Démo
  23. 23. WWW.COLLAB365.EVENTS Requêter vos items de listes avec OData $url = “https://tenant.sharepoint.com/_api/lists/GetByTitle('Tasks')/ite ms?`$select=Id,Title,DueDate,PercentComplete&`$filter=PercentComp lete gt 0.5” $items = Invoke-SPORestMethod –Url $url $items.results | Out-GridView
  24. 24. WWW.COLLAB365.EVENTS Requêtes le Graph avec les API REST Démo
  25. 25. WWW.COLLAB365.EVENTS Requêtes le Graph avec les API REST $url = “https://tenant.sharepoint.com/_api/search/query?Querytext=‘*’&Pr operties='GraphQuery:ACTOR(ME)’&RowLimit=100” $results = Invoke-SPORestMethod –Url $url $results = Get-RestSearchResults –Results $results | Out-GridView
  26. 26. WWW.COLLAB365.EVENTS APIs Office 365 • Série d’APIs livrés pour unifier les APIs des produits • Bâtis au dessus des applications Azure Active Directory • Utilise OAuth et les JWT pour chacun des appels • Permet les permissions déléguées et les “App-Only” • Permet de donner des permissions sur certaines données • Une fois l’infrastructure en place, très simple à utiliser
  27. 27. WWW.COLLAB365.EVENTS APIs Office 365 avec PowerShell 1. Créer une application Azure Active Directory 2. Créer un certificat local 3. Importer le certificat dans la configuration de votre application Azure Active Directory 4. Utiliser le certificat avec son mot de passe dans votre code PowerShell 5. Se connecter à l’API Office 365 6. Jouer avec vos données!
  28. 28. WWW.COLLAB365.EVENTS Les bases Démo
  29. 29. WWW.COLLAB365.EVENTS Les bases makecert -r -pe -n "CN=PowerShell Office 365 API Application" -b 1/01/2015 -e 12/31/2016 -ss my -len 2048 $keyCredentials = Get-KeyCredentialsManifest –Path C:Certificate.cer
  30. 30. WWW.COLLAB365.EVENTS Obtenir un jeton d’accès Démo
  31. 31. WWW.COLLAB365.EVENTS Obtenir un jeton d’accès $global:AzureADApplicationTenantId = “TENANTID” $global:AzureADApplicationClientId = “APPLICATIONID” $global:AzureADApplicationCertificatePath = “C:Certificate.pfx” $global:AzureADApplicationCertificatePassword = “Passw0rd” $exchangeResourceUri = “https://outlook.office365.com/” $token = Get-AccessToken -ResourceUri $exchangeResourceUri
  32. 32. WWW.COLLAB365.EVENTS Obtenir le contenu de votre boîte courriel Demo
  33. 33. WWW.COLLAB365.EVENTS Obtenir le contenu de votre boîte courriel $url = $exchangeResourceUri + “/api/v1.0/users(‘email’)/folders/inbox/messages?$top=50" $response = Invoke-SecuredRestMethod -Method "GET" -AccessToken $token -EndpointUri $url $hasMore = $true $messages = @() while($hasMore) { $response = Invoke-SecuredRestMethod -Method "GET" -AccessToken $token-EndpointUri $url $response.value | ForEach-Object { $messages += $_ } $hasMore = $response.'@odata.nextLink' -ne $null $url = $response.'@odata.nextLink’ } $messages | Select Subject | Out-GridView
  34. 34. WWW.COLLAB365.EVENTS Envoyer un courriel Démo
  35. 35. WWW.COLLAB365.EVENTS Préparation du corps du courriel $body = @{ “Message” = @{ “Subject” = "This is a test email from PowerShell!” “Body” = @{ “ContentType” = “Text”; “Content” = “This email was sent from PowerShell using the Office 365 API.” } “ToRecipients” = @( @{ “EmailAddress” = @{ “Address” = “slevert@sebastienlevert.com” } } ) } $body.SaveToSentItems = $false }
  36. 36. WWW.COLLAB365.EVENTS Envoyer un courriel $url = $exchangeResourceUri + “/api/v1.0/users(‘email’)/sendmail” $response = Invoke-SecuredRestMethod –Method “POST” -AccessToken $token -EndpointUri $url –Body ($body | ConvertTo-Json $body –Depth 4)
  37. 37. WWW.COLLAB365.EVENTS Ce que le DevOps signifie pour moi… • Automatiser tout ce qui est possible • S’assurer qu’une configuration peur être répliquée à tout moment • Gagner un maximum de contrôle sur vos déploiements • Cesser d’avoir peur de ses usagers…
  38. 38. WWW.COLLAB365.EVENTS Dans un monde Office 365, ça signifie… • Chacun des artéfact qui est créé doit être scripté et déployé automatiquement • Usagers • Boîtes courriel • SharePoint • Sites • Colonnes • Types de contenu • Listes • … • …
  39. 39. WWW.COLLAB365.EVENTS Exportation d’une configuration de site Démo
  40. 40. WWW.COLLAB365.EVENTS Exportation d’une configuration de site Connect-SPOnline –Url https://tenant.sharepoint.com Get-SPOProvisioningTemplate –Out C:template.xml - PersistComposedLookFiles
  41. 41. WWW.COLLAB365.EVENTS Importation d’une configuration de site Démo
  42. 42. WWW.COLLAB365.EVENTS Import SharePoint site configuration Connect-SPOnline –Url https://tenant.sharepoint.com Apply-SPOProvisioningTemplate –Path C:template.xml
  43. 43. WWW.COLLAB365.EVENTS Ressources PowerShell pour Office 365 • PowerShell for Office 365 • http://powershell.office.com • Microsoft Online Services Sign-In Assistant for IT Professionals • http://www.microsoft.com/en-us/download/details.aspx?id=41950 • SharePoint Online Management Shell • http://www.microsoft.com/en-us/download/details.aspx?id=35588 • Windows PowerShell Module for Skype for Business Online • http://www.microsoft.com/en-us/download/details.aspx?id=39366
  44. 44. WWW.COLLAB365.EVENTS PowerShell for Office 365 Resources • Azure Active Directory Module for Windows PowerShell • http://go.microsoft.com/fwlink/p/?linkid=236298 (32-bit Version) • http://go.microsoft.com/fwlink/p/?linkid=236297 (64-bit Version) • OfficeDevPnP.PowerShell Commands • https://github.com/OfficeDev/PnP/tree/master/Solutions/PowerShell.Commands • PimpTheCloud PowerShell Office 365 Modules • https://github.com/PimpTheCloud/PTC.O365.PowerShell
  45. 45. WWW.COLLAB365.EVENTS PowerShell for Office 365 Resources • Articles de Gary Lapointe “PowerShell and SharePoint Online REST” • http://www.itunity.com/article/sharepoint-rest-service-windows-powershell-1381 • http://www.itunity.com/article/custom-windows-powershell-function-sharepoint- rest-service-calls-1985 • http://www.itunity.com/article/working-lists-list-items-sharepoint-rest-service- windows-powershell-2077 • http://www.itunity.com/article/working-folders-files-sharepoint-rest-service- powershell-2159
  46. 46. WWW.COLLAB365.EVENTS Catch me! Montreal, Canada negotium.com MVP Office365 Développeur Web @sebastienlevert pimpthecloud.com
  47. 47. Stay tuned for more great sessions … WWW.COLLAB365.EVENTS Thanks for watching!

×