Office 365 Dev PnP & PowerShell :
Exploitez enfin le potentiel de votre écosystème Office 365
Gilles Pommier
MVP SharePoint
Etienne Bailly
MVP Office Servers & Services
@etienne_bailly
ISTEP
@gipisback
SMARTVIEW
Gilles Pommier
Montpellier, FRANCE smartview.fr Office365 MVP
Community Member gilles.pommier@smartview.fr http://www.smartview.fr
Etienne Bailly
Lyon, FRANCE istep
Office 365 & SharePoint
enthusiast :)
MCT @etienne_bailly www.istep.fr/blog
Etienne Bailly
Agenda
Let’s connect to Office 365 !
PowerShell & Power BI
Gouvernance avec PowerShell
Office PnP-PowerShell : Unlock the power
Demos, Demos, Demos
Let’s connect to Office 365 !
Pourquoi utiliser PowerShell avec Office 365 ?
Automatiser des tâches
Administrer plus !
Surveillance / Gouvernance
Gérer tous les produits Office 365 (et non Office 365) avec le même
langage
Import / Export de données en masse
Prérequis
PowerShell pour Office 365
Windows 7 ou +
Windows Server 2008 R2 ou +
Microsoft .NET Framework 3.51 ou +
Microsoft Online Services Sign-in Assistant
Module Azure Active Directory pour Windows PowerShell
Toutes les infos pour bien démarrer avec PowerShell sur
powershell.office.com
http://powershell.office.com/get-started
Se connecter aux différents Services Office 365
Petite gymnastique : Un langage unique mais des modules séparés
# Exchange Online
$exchSession = New-PSSession `
–ConfigurationName Microsoft.Exchange `
-ConnectionUri https://ps.outlook.com/powershell `
-Credential $c `
-Authentication Basic `
–AllowRedirection
Import-PSSession $exchSession –AllowClobber
# SharePoint
Import-Module Microsoft.Online.Sharepoint.PowerShell
Connect-SPOService -Url https://tenant-admin.sharepoint.com/ -Credential $c
Module Azure Active Directory
(MSOnline)
# Skype for Business
Import-Module LyncOnlineConnector
$skypeSession = New-CsOnlineSession -Credential $c
Import-PSSession $skypeSession –AllowClobber
# Connexion à AzureAD
Import-Module MSOnline
$c = Get-Credential
Connect-MsolService –Credential $c
Démo
Mettre en place une stratégie de signature mail
#
# Appliquer une signature de mail
# pour les utilisateurs ciblés
#
# Connexion & Importation du Module complémentaire Exchange Online
Import-Module MSOnline
$c = Get-Credential
$session = New-PSSession `
–ConfigurationName Microsoft.Exchange `
-ConnectionUri https://ps.outlook.com/powershell `
-Credential $c `
-Authentication Basic `
–AllowRedirection
Import-PSSession $session –AllowClobber
Connect-MsolService –Credential $c
$fichHTML = "C:DevPowerShellInPowserShellWeTrustInPwShellWeTrustHTMLsignature_MSExp16_DYNAMIQUE.html"
# On applique la signature spécifique à tous les utilisateurs
Get-MsolUser | Where { $_.UserPrincipalName -like '*@experiences16.onmicrosoft.com' } |
ForEach {
$signHTML = (Get-Content $fichHTML) -f $_.DisplayName, $_.Title, $_.MobilePhone, $_.UserPrincipalName
Write-host $_.UserPrincipalName
Set-MailboxMessageConfiguration `
–Identity $_.UserPrincipalName `
-AutoAddSignature $True `
-SignatureHtml $signHTML
}
Démo – Mettre en place une signature dynamique
Champs personnalisés liés
à l’utilisateur
Bannière globale commune
à tous les utilisateurs
PowerShell & Power BI
Démo – PowerShell & PowerBI
Gouvernance avec PowerShell
Exemple – Surveillance des Groupes Office 365
Source : Benjamin Niaulin – ShareGate - “Think You Know What's in Office 365? Think Again"
http://en.share-gate.com/blog/what-is-in-office-365
Au delà des fonctionnalités
initiales (Discussions / Calendrier /
OneDrive / Bloc-Notes),
les groupes Office 365
deviennent la couche
transverse permettant de
connecter les bonnes
personnes aux services O365
(PowerBI / Planner / ….)
Connecter les bonnes personnes
aux services O365
Azure
Active Directory
Apps
Schéma source : Microsoft Ignite – 2015 May - Christophe Fiessinger – Amit Gupta https://channel9.msdn.com/Events/Ignite/2015/BRK2114
Avantages :
• Simple à utiliser
• Complètement transverse
• Réussi à gérer les agendas de manière
simple
• Totalement intégré à Office 2016 (Outlook)
• + d’intégration à venir (Delve, Yammer, …)
Inconvénients :
• Tout le monde peut en créer sans
restriction
• A ce jour pas facile à maîtriser pour
les admins
• C’est encore un nouvel espace de
stockage, encore un nouvel espace
de conversation…
Les groupes Office 365
Après un pilote concluant, mon client lance un déploiement massif d’Office 365 pour
tous les utilisateurs
Une stratégie est mise en place :
• Un intranet structuré (Team Sites) en SharePoint Online
(la création des espaces/sites est maîtrisée par les admins)
• Les partages externes sont assurés par Yammer
• OneDrive 4 Business est autorisé pour les fichiers « de travail »
Les groupes Office 365 arrivent en force (de force ?)
• Nouvel espace de stockage (sans gouvernance)
• Tout le monde peut créer des groupes ….
• Le déploiement est en cours …
• Panique chez les administrateurs…
Retour d’expérience terrain
Office 365 Groups
Set-OwaMailboxPolicy -Identity istep365.onmicrosoft.comOwaMailboxPolicy-Default `
-GroupCreationEnabled $false
Attendre plusieurs heures avant que la répercussion soit
effectuée sur toutes les boites aux lettres …
Désactiver globalement la création
des groupes Office 365
New-OwaMailboxPolicy -Name MyNewPolicy
Set-OwaMailboxPolicy -Identity pshell365.onmicrosoft.comMyNewPolicy `
-GroupCreationEnabled $false
Set-CASMailbox obiwan@pshell365.onmicrosoft.com `
-OwaMailboxPolicy "MyNewPolicy"
1. On crée une nouvelle Policy sur laquelle on applique la restriction.
2. On applique cette Policy aux utilisateurs concernés
Désactiver plus finement la création des
groupes Office 365
Etienne a
accès à la
création de
groupes
Obiwan ne peut pas
créer de groupes
Démo
Gouvernance autour des Groupes Office 365
Maîtriser les “accès invités externes” (nouveauté !)
PnP
Office PnP-PowerShell
Unlock the power
Getting started with PnP PowerShell
Installer les bibliothèques PnP-PowerShell
https://github.com/officedev/pnp-powershell/releases
Customization & automation for
SharePoint Online
With the
SharePoint Online
Module
With the
SharePoint Client
Side Object Model
(CSOM)
With the
OfficeDev PnP
PowerShell
Commands
With the
SharePoint REST
APIs
With the Classical
dev solutions
SharePoint Online Module CmdLets
Previously … CSOM
PnP-PowerShell commands : what?
Démo
Office Dev PnP – PowerShell Commands
Le petit plus !
Des nouveautés sur PnP
Un peu de lecture
Liens & ressources utiles
aka.ms/OfficeDevPnP
Documentations PnP
https://docs.com/officedevpnp
N° 33
Exemples de Codes ? C’est possible!
http://dev.office.com/code-samples
N° 34
N° 35
@microsoftfrance @Technet_France @msdev_fr
@gipisback @etienne_bailly
N° 36
N° 37

Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosystème Office 365

  • 1.
    Office 365 DevPnP & PowerShell : Exploitez enfin le potentiel de votre écosystème Office 365
  • 2.
    Gilles Pommier MVP SharePoint EtienneBailly MVP Office Servers & Services @etienne_bailly ISTEP @gipisback SMARTVIEW
  • 3.
    Gilles Pommier Montpellier, FRANCEsmartview.fr Office365 MVP Community Member [email protected] http://www.smartview.fr
  • 4.
    Etienne Bailly Lyon, FRANCEistep Office 365 & SharePoint enthusiast :) MCT @etienne_bailly www.istep.fr/blog Etienne Bailly
  • 5.
    Agenda Let’s connect toOffice 365 ! PowerShell & Power BI Gouvernance avec PowerShell Office PnP-PowerShell : Unlock the power Demos, Demos, Demos
  • 6.
    Let’s connect toOffice 365 !
  • 7.
    Pourquoi utiliser PowerShellavec Office 365 ? Automatiser des tâches Administrer plus ! Surveillance / Gouvernance Gérer tous les produits Office 365 (et non Office 365) avec le même langage Import / Export de données en masse
  • 8.
    Prérequis PowerShell pour Office365 Windows 7 ou + Windows Server 2008 R2 ou + Microsoft .NET Framework 3.51 ou + Microsoft Online Services Sign-in Assistant Module Azure Active Directory pour Windows PowerShell Toutes les infos pour bien démarrer avec PowerShell sur powershell.office.com http://powershell.office.com/get-started
  • 9.
    Se connecter auxdifférents Services Office 365 Petite gymnastique : Un langage unique mais des modules séparés # Exchange Online $exchSession = New-PSSession ` –ConfigurationName Microsoft.Exchange ` -ConnectionUri https://ps.outlook.com/powershell ` -Credential $c ` -Authentication Basic ` –AllowRedirection Import-PSSession $exchSession –AllowClobber # SharePoint Import-Module Microsoft.Online.Sharepoint.PowerShell Connect-SPOService -Url https://tenant-admin.sharepoint.com/ -Credential $c Module Azure Active Directory (MSOnline) # Skype for Business Import-Module LyncOnlineConnector $skypeSession = New-CsOnlineSession -Credential $c Import-PSSession $skypeSession –AllowClobber # Connexion à AzureAD Import-Module MSOnline $c = Get-Credential Connect-MsolService –Credential $c
  • 10.
    Démo Mettre en placeune stratégie de signature mail
  • 11.
    # # Appliquer unesignature de mail # pour les utilisateurs ciblés # # Connexion & Importation du Module complémentaire Exchange Online Import-Module MSOnline $c = Get-Credential $session = New-PSSession ` –ConfigurationName Microsoft.Exchange ` -ConnectionUri https://ps.outlook.com/powershell ` -Credential $c ` -Authentication Basic ` –AllowRedirection Import-PSSession $session –AllowClobber Connect-MsolService –Credential $c $fichHTML = "C:DevPowerShellInPowserShellWeTrustInPwShellWeTrustHTMLsignature_MSExp16_DYNAMIQUE.html" # On applique la signature spécifique à tous les utilisateurs Get-MsolUser | Where { $_.UserPrincipalName -like '*@experiences16.onmicrosoft.com' } | ForEach { $signHTML = (Get-Content $fichHTML) -f $_.DisplayName, $_.Title, $_.MobilePhone, $_.UserPrincipalName Write-host $_.UserPrincipalName Set-MailboxMessageConfiguration ` –Identity $_.UserPrincipalName ` -AutoAddSignature $True ` -SignatureHtml $signHTML } Démo – Mettre en place une signature dynamique Champs personnalisés liés à l’utilisateur Bannière globale commune à tous les utilisateurs
  • 12.
  • 13.
  • 14.
    Gouvernance avec PowerShell Exemple– Surveillance des Groupes Office 365
  • 15.
    Source : BenjaminNiaulin – ShareGate - “Think You Know What's in Office 365? Think Again" http://en.share-gate.com/blog/what-is-in-office-365 Au delà des fonctionnalités initiales (Discussions / Calendrier / OneDrive / Bloc-Notes), les groupes Office 365 deviennent la couche transverse permettant de connecter les bonnes personnes aux services O365 (PowerBI / Planner / ….) Connecter les bonnes personnes aux services O365
  • 16.
    Azure Active Directory Apps Schéma source: Microsoft Ignite – 2015 May - Christophe Fiessinger – Amit Gupta https://channel9.msdn.com/Events/Ignite/2015/BRK2114 Avantages : • Simple à utiliser • Complètement transverse • Réussi à gérer les agendas de manière simple • Totalement intégré à Office 2016 (Outlook) • + d’intégration à venir (Delve, Yammer, …) Inconvénients : • Tout le monde peut en créer sans restriction • A ce jour pas facile à maîtriser pour les admins • C’est encore un nouvel espace de stockage, encore un nouvel espace de conversation… Les groupes Office 365
  • 17.
    Après un piloteconcluant, mon client lance un déploiement massif d’Office 365 pour tous les utilisateurs Une stratégie est mise en place : • Un intranet structuré (Team Sites) en SharePoint Online (la création des espaces/sites est maîtrisée par les admins) • Les partages externes sont assurés par Yammer • OneDrive 4 Business est autorisé pour les fichiers « de travail » Les groupes Office 365 arrivent en force (de force ?) • Nouvel espace de stockage (sans gouvernance) • Tout le monde peut créer des groupes …. • Le déploiement est en cours … • Panique chez les administrateurs… Retour d’expérience terrain Office 365 Groups
  • 18.
    Set-OwaMailboxPolicy -Identity istep365.onmicrosoft.comOwaMailboxPolicy-Default` -GroupCreationEnabled $false Attendre plusieurs heures avant que la répercussion soit effectuée sur toutes les boites aux lettres … Désactiver globalement la création des groupes Office 365
  • 19.
    New-OwaMailboxPolicy -Name MyNewPolicy Set-OwaMailboxPolicy-Identity pshell365.onmicrosoft.comMyNewPolicy ` -GroupCreationEnabled $false Set-CASMailbox [email protected] ` -OwaMailboxPolicy "MyNewPolicy" 1. On crée une nouvelle Policy sur laquelle on applique la restriction. 2. On applique cette Policy aux utilisateurs concernés Désactiver plus finement la création des groupes Office 365
  • 20.
    Etienne a accès àla création de groupes Obiwan ne peut pas créer de groupes
  • 21.
    Démo Gouvernance autour desGroupes Office 365 Maîtriser les “accès invités externes” (nouveauté !)
  • 22.
  • 23.
    Getting started withPnP PowerShell
  • 24.
    Installer les bibliothèquesPnP-PowerShell https://github.com/officedev/pnp-powershell/releases
  • 25.
    Customization & automationfor SharePoint Online With the SharePoint Online Module With the SharePoint Client Side Object Model (CSOM) With the OfficeDev PnP PowerShell Commands With the SharePoint REST APIs With the Classical dev solutions
  • 26.
  • 27.
  • 28.
  • 29.
    Démo Office Dev PnP– PowerShell Commands
  • 30.
    Le petit plus! Des nouveautés sur PnP
  • 31.
    Un peu delecture Liens & ressources utiles
  • 32.
  • 33.
  • 34.
    Exemples de Codes? C’est possible! http://dev.office.com/code-samples N° 34
  • 35.
  • 36.
  • 37.

Notes de l'éditeur

  • #24 When migrating existing Angular applications it’s the easiest to first move the code over to SPFx. Once it’s working you can extend the code to better integrate with the Web Part API so that users can configure the different properties