SlideShare una empresa de Scribd logo
1 de 47
1
2016
SharePoint 2013
PowerShell - Retours d’expériences
Ran MELLUL
Practice Manager
SharePoint
Mob. : +41 78 636 64 20
ran.mellul@altran.com
http://www.altran.ch
2
01—
A propos
05—
Fonctions
06—
Modules
07—
Profiles
02—
PowerShell
03—
Commandes
08—
Conclusion
04—
Scripts
A propos
Depuis maintenant quelques années j'accompagne les entreprises dans la
mise en place de solutions collaboratives SharePoint.
Mes missions sont très variées et peuvent couvrir les domaines suivants :
 Gouvernance
 Architecture
 Conception
 Développement
 Coaching
 Formation
J’ai (enfin!) décidé de faire partager mes expériences sur des cas concrets
issus de mes projets.
Cet article est donc basé sur ces retours d’expériences, il est destiné aux
administrateurs ayant déjà quelques connaissances sur PowerShell.
3
Ran MELLUL, Senior Architect & Practice Manager
PowerShell
 PowerShell est incontournable pour certaines tâches d’administration
Windows et SharePoint.
 Introduit en 2006, la version 4.0 cible Windows Serveur 2012 R2 et
Windows 8.1. PowerShell 4.0 utilise le Framework .Net 4.5.
 Plusieurs modes d’exécution existent
 Console Windows PowerShell
 SharePoint Management Shell
 ISE (éditeur de scripts)
 Cette présentation utilise un environnement Windows Serveur 2012 R2
avec SharePoint 2013 SP1 sur une installation On-Premise. Le compte
administrateur local et de la ferme est utilisé.
 Le but de cet article est de partager quelques commandes et techniques
que j’utilise assez fréquemment.
4
Késako ?
PowerShell
 Si l’UAC est activé sur votre machine, pensez à démarrer la console en
administrateur
 Le snap-in Microsoft.SharePoint.PowerShell est chargé et vous pouvez
commencer à exécuter vos commandes
5
SharePoint 2013 Management Shell
Commandes
 Taper $PSVersionTable pour connaître la version utilisée
6
$PSVersionTable
Commandes
 Au total, 810 commandes sont disponibles
7
Get-Command –PSSnapin Microsoft.SharePoint.PowerShell
Commandes
 Cette cmdlet permet de consigner toutes les saisies dans un fichier texte
8
Start-Transcript
Commandes
 Si vous n’êtes pas familiarisé avec les ft, fl, %, …, cette cmdlet est utile
9
Get-Alias
Commandes
 Cette cmdlet permet d’afficher les résultats dans une interface
graphique avec des options de filtres, ajouts de critères, etc.
 Pour faire un pipe (|) sur un clavier Suisse : Alt Gr + 710
Out-GridView
Commandes
 Cette cmdlet permet de découvrir, exécuter et copier une commande
11
Show-Command
Commandes
 Cette cmdlet permet de découvrir les membres (méthodes, propriétés)
des objets
12
Get-Member (alias:gm)
Commandes
 Cette cmdlet permet de sélectionner les propriétés à afficher
 Depuis PowerShell 3.0, cette notation est possible
Get-SPWeb http://c4968397007 | select url,webtemplate
13
Select-Object (alias:select)
Commandes
 Cette cmdlet permet de trier les propriétés
 Cette notation est possible
Get-SPServiceApplication | sort DisplayName
14
Sort-Object (alias:sort)
Commandes
 Cette cmdlet permet de filtrer les propriétés
 Cette notation est possible
Get-SPServiceApplication | where DisplayName -like Sec*
15
Where-Object (alias:where)
Commandes
 Cette cmdlet vous aidera à faire des aggrégations (compteur, somme,
moyenne, max et min)
 Vous pouvez utiliser cette notation
Get-SPSite -Limit All | measure
16
Measure-Object (alias:measure)
Commandes
 Tous les objets disposent de la propriété .count pour compter les
éléments
17
(…).count
Commandes
 Cette cmdlet permet d’afficher toutes les informations en supprimant les
fameux …
18
Format-Table –AutoSize -Wrap (alias:ft)
Commandes
19
Format-Table –AutoSize -Wrap (alias:ft)
Commandes
 Vous pouvez définir des variables pour faciliter l’écriture des
commandes : $MaVariable=XXX
 PowerShell utilise des variables système
20
Variables
Scripts
 L’ISE est l’outil pour la création des scripts, il dispose d’une interface
graphique et vous pourrez profiter de l’aide à la saisie, le débogage, etc.
21
Windows PowerShell ISE (éditeur de scripts)
Scripts
 Par défaut, SharePoint n’est pas reconnu, il faut donc charger le snap-in
avant de pouvoir créer un script.
22
Windows PowerShell ISE (éditeur de scripts)
Scripts
 Pour exécuter des scripts, il faut disposer de certaines autorisations.
Pour vérifier ces droits utilisez Get-ExecutionPolicy
 Pour modifier ces autorisations, utilisez Set-ExecutionPolicy
23
Sécurité
Scripts
 Ci-dessous, un exemple de script avec l’url du site paramétrable (à
renseigner lors de son exécution (F5))
24
Corps
Scripts
 Enregistrez le script puis depuis une console Windows ou SharePoint
Management PowerShell, vous pouvez ensuite l’exécuter
25
Exécution
Scripts
 Permet d’écrire un message dans la console
 Vous pouvez afficher le message dans une autre couleur en ajoutant
-ForegroundColor à la fin de Write-Host
26
Write-Host
Scripts
 Cette variable système indique quelle action doit être réalisée suite à une
erreur
 Les valeurs possibles sont
 Continue : affiche une erreur ET poursuit le programme (valeur par défaut)
 SilentlyContinue : n’affiche pas d’erreur ET poursuit le programme
 Inquire : demande à l’utilisateur quoi faire (arrêter / poursuivre)
 Stop : affiche une erreur ET arrête le programme
 Vous pouvez modifier cette variable
27
$ErrorActionPreference
Scripts
 Vous pouvez utiliser ce paramètre pour toutes les commandes
PowerShell
 Généralement, dans les scripts on utilise –ErrorAction et pas
$ErrorActionPreference
 Pour capturer les erreurs via un bloc Try…Catch, il faut utiliser la valeur
Stop !
28
-ErrorAction (alias:-EA)
Scripts
 Pour capturer les erreurs, utilisez cette instruction
 Attention, si vous ne mettez pas –ErrorAction à Stop, vous ne pourrez
pas capturer l’erreur et voici le message renvoyé
29
Try…Catch
Scripts
 Cette variable système stocke les erreurs rencontrées dans les scripts, il
s’agit d’un tableau dont l’erreur la plus récente est accessible via
$Error[0]
 Vous pouvez utiliser également $_ ErrorRecord à la place de $Error[0]
30
$Error
Fonctions
 Le script précédent peut être transformé en une fonction et celle-ci
appelée via son nom si vous utilisez l’ISE
31
Convertir un script en fonction
Fonctions
 Attention, si vous utilisez la console en exécutant ce script (devenu une
fonction) vous obtenez une erreur
 En effet, pour charger la fonction il faut utiliser cette notation (. Espace .)
32
Convertir un script en fonction
Fonctions
 Le passage de paramètre peut se faire en ligne de commande si vous ne
souhaitez pas prompter l’utilisateur
33
Convertir un script en fonction
Fonctions
 Permet de suivre pas à pas l’exécution du script
 Dans ce cas, les messages que vous ajoutez via Write-Verbose ne
s’affichent pas si vous n’ajoutez pas -Verbose
34
Write-Verbose
Fonctions
 Permet de suivre l’exécution du script en mode débogage
 Dans ce cas, les messages que vous ajoutez via Write-Debug ne
s’affichent pas si vous n’ajoutez pas -Debug
35
Write-Debug
Modules
 Un module peut contenir plusieurs fonctions
 Il s’agit d’un fichier .psm1
 Il peut être chargé automatiquement si il est placé au bon endroit ou
bien explicitement
 Vous pouvez obtenir ces emplacements en utilisant cette commande
36
Késako ?
Modules
 Cette cmdlet permet de voir les modules qui sont actuellement chargés
 Pour consulter tous les modules ajouter -ListAvailable
37
Get-Module
Modules
 Cette cmdlet permet de charger un module afin de pouvoir utiliser les
routines (fonctions etc) associés
38
Import-Module
Modules
 Par défaut, la console PowerShell ne permet pas d’utiliser la fonction
Get-SiteTitle créée précédemment
 Nous allons donc créer un module pour qu’elle soit chargée
automatiquement afin de pouvoir l’utiliser à tout moment
39
Convertir une fonction en module
Modules
 Pour ce faire, enregistrez le script.ps1 sous
C:WindowsSystem32WindowsPowerShellv1.0ModulesAltranAltran.
psm1
 Relancez une console, vous constatez que la fonction est chargée
automatiquement
40
Convertir une fonction en module
Profiles
 A chaque ouverture de la console ou de l’ISE, un/des profile(s) sont
chargés automatiquement
 Il s’agit d’un fichier .ps1 qui peut être stocké à plusieurs endroits et qui
peut contenir des commandes, modules, etc.
 Il permet donc de charger automatiquement des commandes, des
modules, etc.
 Par exemple, il est judicieux de créer un profile afin de pouvoir exécuter
les commandes SharePoint via la console Windows PowerShell car par
défaut elle ne le permet pas sans avoir chargé le snap-in au préalable
41
Késako ?
Profiles
 Comme vous l’avez constatez, avec le SharePoint Management Shell il
n’est pas requis de charger le snap-in car dans son raccourci il est
inscrit
C:WindowsSystem32WindowsPowerShellv1.0PowerShell.exe -
NoExit " & ' C:Program FilesCommon FilesMicrosoft SharedWeb
Server
Extensions15CONFIGPOWERSHELLRegistrationsharepoint.ps1 ‘ "
 Voici le contenu du fichier sharepoint.ps1
 Nous allons donc utiliser ces commandes afin de créer un profile pour
qu’on ait plu à charger ce snap-in via la console Windows PowerShell
42
SharePoint Management Shell
Profiles
 Avant de commencer, nous allons nous intéresser à ces deux variables
 A partir de ces éléments, voici où peuvent être stockés nos profiles
43
Créer un profile
Profiles Console ISE
Current user, current host
$homeDocumentsWindowsPowerShell
Microsoft.PowerShell_profile.ps1
$homeDocumentsWindowsPowerShell
Microsoft.PowerShellISE_profile.ps1
Current user, all hosts $homeDocumentsWindowsPowerShell Profile.ps1
$homeDocumentsWindowsPowerShell
Profile.ps1
All users, current host $pshomeMicrosoft.PowerShell_profile.ps1 $pshomeMicrosoft.PowerShellISE_profile.ps1
All users, all hosts $pshomeProfile.ps1 $pshomeProfile.ps1
Profiles
 Nous allons charger le snap-in afin que tous les utilisateurs puissent
disposer de ce profile, il sera donc stocké sous
C:WindowsSystem32WindowsPowerShellv1.0Profile.ps1
44
Créer un profile
Profiles
 Pour tester, ouvrez une console Windows PowerShell puis tapez une
commande SharePoint
 A présent, vous n’avez plus besoin d’ouvrir obligatoirement un
SharePoint Management Shell, vous pouvez utiliser la console Windows
PowerShell !
45
Créer un profile
Conclusion
D’autres articles, basés sur ce même modèle, viendront prochainement…et
orientés administrateurs, développeurs ou utilisateurs.
Pour ma part, j’ai pris beaucoup de plaisir à faire partager ces retours
d’expériences sur PowerShell en espérant que cet article sera apprécié,
autant dans son format que dans son contenu.
Des questions, suggestions d’articles, un projet ? Contactez-moi !
46
Ran MELLUL
Senior Architect & Practice Manager SharePoint
Altran Suisse
Mob. : +41 78 636 64 20
ran.mellul@altran.com
http://www.altran.ch
47

Más contenido relacionado

Similar a PowerShell - Retours d'expériences

Powershell
PowershellPowershell
PowershellUGAIA
 
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...GSoft
 
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...Franck Cornu
 
alphorm.com - Formation Powershell 2.0
alphorm.com - Formation Powershell 2.0alphorm.com - Formation Powershell 2.0
alphorm.com - Formation Powershell 2.0Alphorm
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Alexandre Touret
 
Formation Efficy CRM - Technical training
Formation Efficy CRM - Technical trainingFormation Efficy CRM - Technical training
Formation Efficy CRM - Technical trainingEfficy CRM
 
Scripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxScripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxFrancisRUKAN
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Alexandre Touret
 
Alphorm.com Formation Windows Server 2016 : Installation et Configuration
Alphorm.com Formation Windows Server 2016 : Installation et ConfigurationAlphorm.com Formation Windows Server 2016 : Installation et Configuration
Alphorm.com Formation Windows Server 2016 : Installation et ConfigurationAlphorm
 
2008-09-30 Administration automatisée avec Powershell
2008-09-30 Administration automatisée avec Powershell2008-09-30 Administration automatisée avec Powershell
2008-09-30 Administration automatisée avec PowershellPatrick Guimonet
 
Configuration Management avec Drupal 8
Configuration Management avec Drupal 8Configuration Management avec Drupal 8
Configuration Management avec Drupal 8Aurelien Navarre
 
La Console Symfony
La Console Symfony La Console Symfony
La Console Symfony Imad ZAIRIG
 
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !Paris Salesforce Developer Group
 
Power Shell V2 en action - avec Posh Board 2.0
Power Shell V2 en action - avec Posh Board 2.0Power Shell V2 en action - avec Posh Board 2.0
Power Shell V2 en action - avec Posh Board 2.0Patrick Guimonet
 
Développement de plug in sous eclipse
Développement de plug in sous eclipseDéveloppement de plug in sous eclipse
Développement de plug in sous eclipseISIG
 
F Les Scripts En Power Shell
F Les Scripts En Power ShellF Les Scripts En Power Shell
F Les Scripts En Power ShellUGAIA
 
Big Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBig Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBruno Bonnin
 

Similar a PowerShell - Retours d'expériences (20)

Powershell
PowershellPowershell
Powershell
 
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
 
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
 
alphorm.com - Formation Powershell 2.0
alphorm.com - Formation Powershell 2.0alphorm.com - Formation Powershell 2.0
alphorm.com - Formation Powershell 2.0
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
 
Formation Efficy CRM - Technical training
Formation Efficy CRM - Technical trainingFormation Efficy CRM - Technical training
Formation Efficy CRM - Technical training
 
Scripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxScripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptx
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
 
Sp summit2014 session 10-2
Sp summit2014   session 10-2Sp summit2014   session 10-2
Sp summit2014 session 10-2
 
Alphorm.com Formation Windows Server 2016 : Installation et Configuration
Alphorm.com Formation Windows Server 2016 : Installation et ConfigurationAlphorm.com Formation Windows Server 2016 : Installation et Configuration
Alphorm.com Formation Windows Server 2016 : Installation et Configuration
 
2008-09-30 Administration automatisée avec Powershell
2008-09-30 Administration automatisée avec Powershell2008-09-30 Administration automatisée avec Powershell
2008-09-30 Administration automatisée avec Powershell
 
Configuration Management avec Drupal 8
Configuration Management avec Drupal 8Configuration Management avec Drupal 8
Configuration Management avec Drupal 8
 
La Console Symfony
La Console Symfony La Console Symfony
La Console Symfony
 
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
 
Power Shell V2 en action - avec Posh Board 2.0
Power Shell V2 en action - avec Posh Board 2.0Power Shell V2 en action - avec Posh Board 2.0
Power Shell V2 en action - avec Posh Board 2.0
 
Développement de plug in sous eclipse
Développement de plug in sous eclipseDéveloppement de plug in sous eclipse
Développement de plug in sous eclipse
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
F Les Scripts En Power Shell
F Les Scripts En Power ShellF Les Scripts En Power Shell
F Les Scripts En Power Shell
 
Big Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBig Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache Zeppelin
 

PowerShell - Retours d'expériences

  • 1. 1 2016 SharePoint 2013 PowerShell - Retours d’expériences Ran MELLUL Practice Manager SharePoint Mob. : +41 78 636 64 20 ran.mellul@altran.com http://www.altran.ch
  • 3. A propos Depuis maintenant quelques années j'accompagne les entreprises dans la mise en place de solutions collaboratives SharePoint. Mes missions sont très variées et peuvent couvrir les domaines suivants :  Gouvernance  Architecture  Conception  Développement  Coaching  Formation J’ai (enfin!) décidé de faire partager mes expériences sur des cas concrets issus de mes projets. Cet article est donc basé sur ces retours d’expériences, il est destiné aux administrateurs ayant déjà quelques connaissances sur PowerShell. 3 Ran MELLUL, Senior Architect & Practice Manager
  • 4. PowerShell  PowerShell est incontournable pour certaines tâches d’administration Windows et SharePoint.  Introduit en 2006, la version 4.0 cible Windows Serveur 2012 R2 et Windows 8.1. PowerShell 4.0 utilise le Framework .Net 4.5.  Plusieurs modes d’exécution existent  Console Windows PowerShell  SharePoint Management Shell  ISE (éditeur de scripts)  Cette présentation utilise un environnement Windows Serveur 2012 R2 avec SharePoint 2013 SP1 sur une installation On-Premise. Le compte administrateur local et de la ferme est utilisé.  Le but de cet article est de partager quelques commandes et techniques que j’utilise assez fréquemment. 4 Késako ?
  • 5. PowerShell  Si l’UAC est activé sur votre machine, pensez à démarrer la console en administrateur  Le snap-in Microsoft.SharePoint.PowerShell est chargé et vous pouvez commencer à exécuter vos commandes 5 SharePoint 2013 Management Shell
  • 6. Commandes  Taper $PSVersionTable pour connaître la version utilisée 6 $PSVersionTable
  • 7. Commandes  Au total, 810 commandes sont disponibles 7 Get-Command –PSSnapin Microsoft.SharePoint.PowerShell
  • 8. Commandes  Cette cmdlet permet de consigner toutes les saisies dans un fichier texte 8 Start-Transcript
  • 9. Commandes  Si vous n’êtes pas familiarisé avec les ft, fl, %, …, cette cmdlet est utile 9 Get-Alias
  • 10. Commandes  Cette cmdlet permet d’afficher les résultats dans une interface graphique avec des options de filtres, ajouts de critères, etc.  Pour faire un pipe (|) sur un clavier Suisse : Alt Gr + 710 Out-GridView
  • 11. Commandes  Cette cmdlet permet de découvrir, exécuter et copier une commande 11 Show-Command
  • 12. Commandes  Cette cmdlet permet de découvrir les membres (méthodes, propriétés) des objets 12 Get-Member (alias:gm)
  • 13. Commandes  Cette cmdlet permet de sélectionner les propriétés à afficher  Depuis PowerShell 3.0, cette notation est possible Get-SPWeb http://c4968397007 | select url,webtemplate 13 Select-Object (alias:select)
  • 14. Commandes  Cette cmdlet permet de trier les propriétés  Cette notation est possible Get-SPServiceApplication | sort DisplayName 14 Sort-Object (alias:sort)
  • 15. Commandes  Cette cmdlet permet de filtrer les propriétés  Cette notation est possible Get-SPServiceApplication | where DisplayName -like Sec* 15 Where-Object (alias:where)
  • 16. Commandes  Cette cmdlet vous aidera à faire des aggrégations (compteur, somme, moyenne, max et min)  Vous pouvez utiliser cette notation Get-SPSite -Limit All | measure 16 Measure-Object (alias:measure)
  • 17. Commandes  Tous les objets disposent de la propriété .count pour compter les éléments 17 (…).count
  • 18. Commandes  Cette cmdlet permet d’afficher toutes les informations en supprimant les fameux … 18 Format-Table –AutoSize -Wrap (alias:ft)
  • 20. Commandes  Vous pouvez définir des variables pour faciliter l’écriture des commandes : $MaVariable=XXX  PowerShell utilise des variables système 20 Variables
  • 21. Scripts  L’ISE est l’outil pour la création des scripts, il dispose d’une interface graphique et vous pourrez profiter de l’aide à la saisie, le débogage, etc. 21 Windows PowerShell ISE (éditeur de scripts)
  • 22. Scripts  Par défaut, SharePoint n’est pas reconnu, il faut donc charger le snap-in avant de pouvoir créer un script. 22 Windows PowerShell ISE (éditeur de scripts)
  • 23. Scripts  Pour exécuter des scripts, il faut disposer de certaines autorisations. Pour vérifier ces droits utilisez Get-ExecutionPolicy  Pour modifier ces autorisations, utilisez Set-ExecutionPolicy 23 Sécurité
  • 24. Scripts  Ci-dessous, un exemple de script avec l’url du site paramétrable (à renseigner lors de son exécution (F5)) 24 Corps
  • 25. Scripts  Enregistrez le script puis depuis une console Windows ou SharePoint Management PowerShell, vous pouvez ensuite l’exécuter 25 Exécution
  • 26. Scripts  Permet d’écrire un message dans la console  Vous pouvez afficher le message dans une autre couleur en ajoutant -ForegroundColor à la fin de Write-Host 26 Write-Host
  • 27. Scripts  Cette variable système indique quelle action doit être réalisée suite à une erreur  Les valeurs possibles sont  Continue : affiche une erreur ET poursuit le programme (valeur par défaut)  SilentlyContinue : n’affiche pas d’erreur ET poursuit le programme  Inquire : demande à l’utilisateur quoi faire (arrêter / poursuivre)  Stop : affiche une erreur ET arrête le programme  Vous pouvez modifier cette variable 27 $ErrorActionPreference
  • 28. Scripts  Vous pouvez utiliser ce paramètre pour toutes les commandes PowerShell  Généralement, dans les scripts on utilise –ErrorAction et pas $ErrorActionPreference  Pour capturer les erreurs via un bloc Try…Catch, il faut utiliser la valeur Stop ! 28 -ErrorAction (alias:-EA)
  • 29. Scripts  Pour capturer les erreurs, utilisez cette instruction  Attention, si vous ne mettez pas –ErrorAction à Stop, vous ne pourrez pas capturer l’erreur et voici le message renvoyé 29 Try…Catch
  • 30. Scripts  Cette variable système stocke les erreurs rencontrées dans les scripts, il s’agit d’un tableau dont l’erreur la plus récente est accessible via $Error[0]  Vous pouvez utiliser également $_ ErrorRecord à la place de $Error[0] 30 $Error
  • 31. Fonctions  Le script précédent peut être transformé en une fonction et celle-ci appelée via son nom si vous utilisez l’ISE 31 Convertir un script en fonction
  • 32. Fonctions  Attention, si vous utilisez la console en exécutant ce script (devenu une fonction) vous obtenez une erreur  En effet, pour charger la fonction il faut utiliser cette notation (. Espace .) 32 Convertir un script en fonction
  • 33. Fonctions  Le passage de paramètre peut se faire en ligne de commande si vous ne souhaitez pas prompter l’utilisateur 33 Convertir un script en fonction
  • 34. Fonctions  Permet de suivre pas à pas l’exécution du script  Dans ce cas, les messages que vous ajoutez via Write-Verbose ne s’affichent pas si vous n’ajoutez pas -Verbose 34 Write-Verbose
  • 35. Fonctions  Permet de suivre l’exécution du script en mode débogage  Dans ce cas, les messages que vous ajoutez via Write-Debug ne s’affichent pas si vous n’ajoutez pas -Debug 35 Write-Debug
  • 36. Modules  Un module peut contenir plusieurs fonctions  Il s’agit d’un fichier .psm1  Il peut être chargé automatiquement si il est placé au bon endroit ou bien explicitement  Vous pouvez obtenir ces emplacements en utilisant cette commande 36 Késako ?
  • 37. Modules  Cette cmdlet permet de voir les modules qui sont actuellement chargés  Pour consulter tous les modules ajouter -ListAvailable 37 Get-Module
  • 38. Modules  Cette cmdlet permet de charger un module afin de pouvoir utiliser les routines (fonctions etc) associés 38 Import-Module
  • 39. Modules  Par défaut, la console PowerShell ne permet pas d’utiliser la fonction Get-SiteTitle créée précédemment  Nous allons donc créer un module pour qu’elle soit chargée automatiquement afin de pouvoir l’utiliser à tout moment 39 Convertir une fonction en module
  • 40. Modules  Pour ce faire, enregistrez le script.ps1 sous C:WindowsSystem32WindowsPowerShellv1.0ModulesAltranAltran. psm1  Relancez une console, vous constatez que la fonction est chargée automatiquement 40 Convertir une fonction en module
  • 41. Profiles  A chaque ouverture de la console ou de l’ISE, un/des profile(s) sont chargés automatiquement  Il s’agit d’un fichier .ps1 qui peut être stocké à plusieurs endroits et qui peut contenir des commandes, modules, etc.  Il permet donc de charger automatiquement des commandes, des modules, etc.  Par exemple, il est judicieux de créer un profile afin de pouvoir exécuter les commandes SharePoint via la console Windows PowerShell car par défaut elle ne le permet pas sans avoir chargé le snap-in au préalable 41 Késako ?
  • 42. Profiles  Comme vous l’avez constatez, avec le SharePoint Management Shell il n’est pas requis de charger le snap-in car dans son raccourci il est inscrit C:WindowsSystem32WindowsPowerShellv1.0PowerShell.exe - NoExit " & ' C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions15CONFIGPOWERSHELLRegistrationsharepoint.ps1 ‘ "  Voici le contenu du fichier sharepoint.ps1  Nous allons donc utiliser ces commandes afin de créer un profile pour qu’on ait plu à charger ce snap-in via la console Windows PowerShell 42 SharePoint Management Shell
  • 43. Profiles  Avant de commencer, nous allons nous intéresser à ces deux variables  A partir de ces éléments, voici où peuvent être stockés nos profiles 43 Créer un profile Profiles Console ISE Current user, current host $homeDocumentsWindowsPowerShell Microsoft.PowerShell_profile.ps1 $homeDocumentsWindowsPowerShell Microsoft.PowerShellISE_profile.ps1 Current user, all hosts $homeDocumentsWindowsPowerShell Profile.ps1 $homeDocumentsWindowsPowerShell Profile.ps1 All users, current host $pshomeMicrosoft.PowerShell_profile.ps1 $pshomeMicrosoft.PowerShellISE_profile.ps1 All users, all hosts $pshomeProfile.ps1 $pshomeProfile.ps1
  • 44. Profiles  Nous allons charger le snap-in afin que tous les utilisateurs puissent disposer de ce profile, il sera donc stocké sous C:WindowsSystem32WindowsPowerShellv1.0Profile.ps1 44 Créer un profile
  • 45. Profiles  Pour tester, ouvrez une console Windows PowerShell puis tapez une commande SharePoint  A présent, vous n’avez plus besoin d’ouvrir obligatoirement un SharePoint Management Shell, vous pouvez utiliser la console Windows PowerShell ! 45 Créer un profile
  • 46. Conclusion D’autres articles, basés sur ce même modèle, viendront prochainement…et orientés administrateurs, développeurs ou utilisateurs. Pour ma part, j’ai pris beaucoup de plaisir à faire partager ces retours d’expériences sur PowerShell en espérant que cet article sera apprécié, autant dans son format que dans son contenu. Des questions, suggestions d’articles, un projet ? Contactez-moi ! 46 Ran MELLUL Senior Architect & Practice Manager SharePoint Altran Suisse Mob. : +41 78 636 64 20 ran.mellul@altran.com http://www.altran.ch
  • 47. 47