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
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
6. 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
7.
8. 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
13. 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
14. 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.
17. 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
23. 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
25. 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”
26.
27. 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 “$”
31. 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
32.
33. 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
34. 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!
42. 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
}
45. 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…
46. 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
• …
• …
52. 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
53. 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
54. 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