Successfully reported this slideshow.
Windows PowerShell  une nouvelle approche de l’administration des environnements Windows
Objectif <ul><li>Pour les néophiques : découvrir Windows PowerShell </li></ul><ul><li>Pour les experts : comment étendre W...
Windows PowerShell <ul><li>Windows PowerShell est une invite de commande (shell) interactive et un environnement de script...
Agenda <ul><li>Découverte de Windows PowerShell </li></ul><ul><li>Windows PowerShell et l’administration </li></ul><ul><li...
Découverte de  PowerShell
<ul><ul><li>Mieux comprendre la structure et les bénéfices de PowerShell !  </li></ul></ul><ul><li>« J’ai refait tous les ...
Découverte de PowerShell <ul><li>Les bases </li></ul><ul><ul><li>Le modèle des commandes </li></ul></ul><ul><ul><li>Que ma...
Ressemblances et parenté <ul><li>Le cœur du langage est basé sur la norme POSIX 1003.2 suivie par  Korn shell . </li></ul>...
Configuration de PowerShell <ul><li>Version 1.0 </li></ul><ul><li>Pré-requis  :  Framework .Net 2.0 </li></ul><ul><li>Disp...
Multi-langues <ul><li>Version anglaise (KB926139) </li></ul><ul><li>Ou version localisée en 10 autres langues (KB926140) :...
Homogénéité & Cohérence <ul><li>Get-Command   sur le modèle : </li></ul><ul><li>avec un certain nombre de paramètres omnip...
Les 4 commandes de découverte <ul><li>Get-Command   informations de base sur les commandes </li></ul><ul><li>Get-help aide...
5 categories de commandes Plus de détails :  get-command * | group commandtype
Manipulation des objets du langage
Tout est objet ! (date).adddays(100)
Le Pipeline gps|?{$_.handles -gt 500}|sort handles|ft name,handles gps (Get-Process) CLR PowerShell Engine ? (Where-Object...
L’accès aux objets est uniformisé ! .Net Object Adapter WMI Object Adapter COM Object Adapter Other Adapters : ADSI , ADO…...
Les Types
PowerShell et les nombres Plus de détails :  [math] | get-member -static
Les opérateurs PowerShell Plus de détails :  help about*operator*
Les instructions de contrôle de flux
Traitement d’erreurs
Fournisseurs et magasins de données
PowerShell et les fichiers
PowerShell et le texte
Les ordres de formatage
PowerShell et XML
PowerShell et l’accès au système
PowerShell et COM
PowerShell et .Net
Stratégie d’éxécution <ul><li>Contrôle ce qui peut être exécuté </li></ul><ul><li>Get-ExecutionPolicy </li></ul><ul><li>Se...
Accès universel ! ADSI  & ADO .Net webservice TXT Services & Processus WMI COM
Que faut-il retenir ? <ul><li>Une syntaxe homogène :  verbe-nom </li></ul><ul><li>Les 4 commandes de base : </li></ul><ul>...
Windows PowerShell et l’administration
L’administration  <ul><li>Outils d’administration « graphique » </li></ul><ul><li>Outils en ligne de commande natifs (cmd,...
Windows PowerShell et l’administration <ul><li>L'objectif :  Améliorer  et  faciliter  le contrôle administratif sur les s...
Au cœur des solutions d’entreprise
 
Etendre Windows PowerShell
Etendre Windows PowerShell <ul><li>Comment fonctionne Windows PowerShell </li></ul><ul><li>Les différentes manières d’éten...
 
<ul><li>Functions/Filters/Scripts </li></ul><ul><li>Cmdlets </li></ul><ul><li>Providers </li></ul><ul><li>Hosts </li></ul>
Etendre PowerShell
<ul><li>Shared Source development effort for </li></ul><ul><ul><li>Cmdlets, Providers, Aliases, Filters, Functions, and Sc...
<ul><li>Communauté Française :  http://www.powershell-scripting.com/ </li></ul><ul><li>Newsgroup:  Microsoft.Public.Window...
Questions?
Ressources Technical Chats and Webcasts http://www.microsoft.com/communities/chats/default.mspx   http://www.microsoft.com...
. Scripts . News . Tutoriaux . Forum www.PowerShell-Scripting.com Entrez dans la communauté francophone Profitez d’un part...
Ressources
© 2007 Microsoft France Votre potentiel, notre passion  TM
Reference Slides
<ul><li>Access existing instrumentation </li></ul><ul><ul><li>Bind to COM objects </li></ul></ul><ul><ul><ul><li>$fso = Ne...
<ul><li>PowerShell provides native WMI support </li></ul><ul><li>Get-WmiObject </li></ul><ul><ul><li>Allows for inspection...
<ul><li>PowerShell provides native access to any .NET class </li></ul><ul><li>Create any object </li></ul><ul><ul><li>[ref...
<ul><li>PowerShell provides native XML support </li></ul><ul><li>Native datatype </li></ul><ul><ul><li>$x=[xml]&quot;<a><b...
<ul><li>Invoke existing tools  </li></ul><ul><ul><li>Existing command run directly after variables are expanded </li></ul>...
Prochain SlideShare
Chargement dans…5
×

Powershell

2 208 vues

Publié le

Publié dans : Technologie

Powershell

  1. 1. Windows PowerShell une nouvelle approche de l’administration des environnements Windows
  2. 2. Objectif <ul><li>Pour les néophiques : découvrir Windows PowerShell </li></ul><ul><li>Pour les experts : comment étendre Windows Powershell </li></ul><ul><li>Pas trop de blabla, des démonstrations !! </li></ul>
  3. 3. Windows PowerShell <ul><li>Windows PowerShell est une invite de commande (shell) interactive et un environnement de scripts offrant une manière de traiter des tâches orientée commandes . </li></ul><ul><li>Les concepteurs ont suivi différentes approches afin que PowerShell soit : </li></ul><ul><ul><li>aussi interactif et composable que KSH ou BASH, </li></ul></ul><ul><ul><li>aussi programmable que PERL ou RUBY, </li></ul></ul><ul><ul><li>aussi orienté-production que VMS DCL ou AS400 CL. </li></ul></ul><ul><ul><li>permettre l’accès aux sources de données aussi facilement que l’accès au système de fichiers </li></ul></ul>
  4. 4. Agenda <ul><li>Découverte de Windows PowerShell </li></ul><ul><li>Windows PowerShell et l’administration </li></ul><ul><li>Etendre Windows PowerShell </li></ul>
  5. 5. Découverte de PowerShell
  6. 6. <ul><ul><li>Mieux comprendre la structure et les bénéfices de PowerShell ! </li></ul></ul><ul><li>« J’ai refait tous les calculs, ils confirment l’opinion des spécialistes : mon idée est irréalisable. Il ne me reste plus qu’une seule chose à faire : la réaliser » </li></ul><ul><li>Pierre-Georges Latécoère. </li></ul>
  7. 7. Découverte de PowerShell <ul><li>Les bases </li></ul><ul><ul><li>Le modèle des commandes </li></ul></ul><ul><ul><li>Que manipule-t-on ? Expressions, Variables, Types </li></ul></ul><ul><ul><li>Le pipeline & les filtres </li></ul></ul><ul><li>Constructions du langage </li></ul><ul><ul><li>Opérateurs </li></ul></ul><ul><ul><li>Tests & boucles </li></ul></ul><ul><li>Intégration avec le système </li></ul><ul><ul><li>Lecteurs étendus </li></ul></ul><ul><ul><li>WMI </li></ul></ul><ul><ul><li>COM </li></ul></ul>
  8. 8. Ressemblances et parenté <ul><li>Le cœur du langage est basé sur la norme POSIX 1003.2 suivie par Korn shell . </li></ul><ul><li>Il ressemble beaucoup à PHP et Perl . </li></ul><ul><li>La syntaxe a été alignée sur C# </li></ul><ul><ul><li>On peut donc très facilement convertir du code C# en PS et réciproquement </li></ul></ul>
  9. 9. Configuration de PowerShell <ul><li>Version 1.0 </li></ul><ul><li>Pré-requis : Framework .Net 2.0 </li></ul><ul><li>Disponible pour: </li></ul>http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx Windows Server Code Name Longhorn <ul><li>Une « feature » à installer </li></ul><ul><li>Pas installée par défaut </li></ul><ul><li>Pas disponible avec « Server Core » </li></ul><ul><li>x86 </li></ul><ul><li>x64 </li></ul><ul><li>IA64 </li></ul>Windows Server 2003 SP1 <ul><li>Une mise à jour système entre le SP1 et le SP2 (KB926139, 140, 141) </li></ul><ul><li>A télécharger </li></ul><ul><li>x86 </li></ul><ul><li>x64 </li></ul><ul><li>IA64 </li></ul>Windows Vista <ul><li>Une mise à jour (KB928439) </li></ul><ul><li>A télécharger </li></ul><ul><li>x86 </li></ul><ul><li>x64 </li></ul>Windows XP SP2 <ul><li>Une mise à jour système (KB926139, 140, 141) </li></ul><ul><li>A télécharger </li></ul><ul><li>x86 </li></ul><ul><li>x64 </li></ul>
  10. 10. Multi-langues <ul><li>Version anglaise (KB926139) </li></ul><ul><li>Ou version localisée en 10 autres langues (KB926140) : </li></ul><ul><li>ou MUI (KB926141) </li></ul>
  11. 11. Homogénéité & Cohérence <ul><li>Get-Command sur le modèle : </li></ul><ul><li>avec un certain nombre de paramètres omniprésents : </li></ul><verb>-<nom> Plus de détails : help about-parameter help about_commonparameters
  12. 12. Les 4 commandes de découverte <ul><li>Get-Command informations de base sur les commandes </li></ul><ul><li>Get-help aide de base (utiliser –full ) </li></ul><ul><li>Get-member informations sur les objets </li></ul><ul><li>Get-PSDrive informations sur les lecteurs étendus </li></ul>Get-command Get-help Get-member Get-psdrive parmi 129 commandes intégrées ou “ cmdlets ” commandettes ?
  13. 13. 5 categories de commandes Plus de détails : get-command * | group commandtype
  14. 14. Manipulation des objets du langage
  15. 15. Tout est objet ! (date).adddays(100)
  16. 16. Le Pipeline gps|?{$_.handles -gt 500}|sort handles|ft name,handles gps (Get-Process) CLR PowerShell Engine ? (Where-Object) sort (Sort-Object) ft (Format-Table) (Out-Host) gps|?{$_.handles -gt 500}|sort handles|ft name,handles
  17. 17. L’accès aux objets est uniformisé ! .Net Object Adapter WMI Object Adapter COM Object Adapter Other Adapters : ADSI , ADO… Custom Object Adapter .Net Object WMI Object Script PowerShell accédant à un objet COM Object
  18. 18. Les Types
  19. 19. PowerShell et les nombres Plus de détails : [math] | get-member -static
  20. 20. Les opérateurs PowerShell Plus de détails : help about*operator*
  21. 21. Les instructions de contrôle de flux
  22. 22. Traitement d’erreurs
  23. 23. Fournisseurs et magasins de données
  24. 24. PowerShell et les fichiers
  25. 25. PowerShell et le texte
  26. 26. Les ordres de formatage
  27. 27. PowerShell et XML
  28. 28. PowerShell et l’accès au système
  29. 29. PowerShell et COM
  30. 30. PowerShell et .Net
  31. 31. Stratégie d’éxécution <ul><li>Contrôle ce qui peut être exécuté </li></ul><ul><li>Get-ExecutionPolicy </li></ul><ul><li>Set-ExecutionPolicy </li></ul><ul><ul><li>Set-ExecutionPolicy UnRestricted </li></ul></ul>Plus de détails : help about_signing
  32. 32. Accès universel ! ADSI & ADO .Net webservice TXT Services & Processus WMI COM
  33. 33. Que faut-il retenir ? <ul><li>Une syntaxe homogène : verbe-nom </li></ul><ul><li>Les 4 commandes de base : </li></ul><ul><ul><li>Get-command, get-help, get-member, get-psdrive </li></ul></ul><ul><li>Tout est objet ! </li></ul><ul><ul><li>Le pipeline aussi ! </li></ul></ul><ul><li>Interactions avec le système via : </li></ul><ul><ul><li>Text & XML </li></ul></ul><ul><ul><li>COM & .Net </li></ul></ul><ul><ul><li>WMI et EventLog </li></ul></ul><ul><li>Sécurisé </li></ul>
  34. 34. Windows PowerShell et l’administration
  35. 35. L’administration <ul><li>Outils d’administration « graphique » </li></ul><ul><li>Outils en ligne de commande natifs (cmd, exe, etc…) </li></ul><ul><li>Scripting Windows  Automatiser les tâches d'administration </li></ul><ul><ul><li>VBScript, WSH, WMI, ADSI, CDO et les objets COM </li></ul></ul>
  36. 36. Windows PowerShell et l’administration <ul><li>L'objectif : Améliorer et faciliter le contrôle administratif sur les systèmes, que ce soit de manière interactive ou par le biais de scripts. </li></ul><ul><ul><li>Gestion des processus locaux </li></ul></ul><ul><ul><li>Gestion de services locaux </li></ul></ul><ul><ul><li>Collecte d'informations sur des ordinateurs </li></ul></ul><ul><ul><li>Utilisation d'installations logicielles </li></ul></ul><ul><ul><li>Changement d'état de l'ordinateur : verrouillage, fermeture de session, arrêt en cours et redémarrage </li></ul></ul><ul><ul><li>Utilisation d'imprimantes </li></ul></ul><ul><ul><li>Tâches de gestion de réseau </li></ul></ul><ul><ul><li>Utilisation des fichiers et dossiers </li></ul></ul><ul><ul><li>Utilisation du registre </li></ul></ul>
  37. 37. Au cœur des solutions d’entreprise
  38. 39. Etendre Windows PowerShell
  39. 40. Etendre Windows PowerShell <ul><li>Comment fonctionne Windows PowerShell </li></ul><ul><li>Les différentes manières d’étendre Windows PowerShell </li></ul>
  40. 42. <ul><li>Functions/Filters/Scripts </li></ul><ul><li>Cmdlets </li></ul><ul><li>Providers </li></ul><ul><li>Hosts </li></ul>
  41. 43. Etendre PowerShell
  42. 44. <ul><li>Shared Source development effort for </li></ul><ul><ul><li>Cmdlets, Providers, Aliases, Filters, Functions, and Scripts </li></ul></ul><ul><ul><li>Cmdlets: </li></ul></ul><ul><ul><ul><li>Less, *ClipBoard, TabExpansion, convert*,Format*,Get*,Write* </li></ul></ul></ul><ul><ul><li>Providers </li></ul></ul><ul><ul><ul><li>Directory Services, GAC </li></ul></ul></ul><ul><li>PSCX V1.1 available now </li></ul>http://www.codeplex.com/PowerShellCX
  43. 45. <ul><li>Communauté Française : http://www.powershell-scripting.com/ </li></ul><ul><li>Newsgroup: Microsoft.Public.Windows.PowerShell </li></ul><ul><li>Team blog: http://blogs.msdn.com/PowerShell/ </li></ul><ul><li>Channel 9 tag: http://channel9.msdn.com/tags/PowerShell </li></ul><ul><li>OMark van Orsouw’s blog: http://ThePowerShellGuy.Com </li></ul><ul><li>Wiki: http://channel9.msdn.com/wiki/default.aspx/Channel9.WindowsPowerShellWiki </li></ul><ul><li>Script Center: </li></ul><ul><ul><li>http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx </li></ul></ul><ul><li>Manning Press book by Bruce Payette: PowerShell in Action </li></ul><ul><ul><li>http://manning.com/powershell/ </li></ul></ul><ul><li>O’Reilly book – Monad: Introducing the MSH Command Shell and Language </li></ul><ul><ul><li>http://www.oreilly.com/catalog/msh/ </li></ul></ul><ul><li>Sapien Press book by Don Jones: PowerShell </li></ul><ul><ul><li>http://www.sapienpress.com/ </li></ul></ul><ul><li>MshAnalyzer tool </li></ul><ul><ul><li>http://www.karlprosser.com/coder/?cat=8 </li></ul></ul>
  44. 46. Questions?
  45. 47. Ressources Technical Chats and Webcasts http://www.microsoft.com/communities/chats/default.mspx http://www.microsoft.com/usa/webcasts/default.asp Microsoft Learning and Certification http://www.microsoft.com/learning/default.mspx MSDN & TechNet http://microsoft.com/msdn http://microsoft.com/technet Virtual Labs http://www.microsoft.com/technet/traincert/virtuallab/rms.mspx Newsgroups http://communities2.microsoft.com/ communities/newsgroups/en-us/default.aspx Technical Community Sites http://www.microsoft.com/communities/default.mspx User Groups http://www.microsoft.com/communities/usergroups/default.mspx
  46. 48. . Scripts . News . Tutoriaux . Forum www.PowerShell-Scripting.com Entrez dans la communauté francophone Profitez d’un partage de connaissances autour de PowerShell
  47. 49. Ressources
  48. 50. © 2007 Microsoft France Votre potentiel, notre passion TM
  49. 51. Reference Slides
  50. 52. <ul><li>Access existing instrumentation </li></ul><ul><ul><li>Bind to COM objects </li></ul></ul><ul><ul><ul><li>$fso = New-Object -ComObject Scripting.FileSystemObject </li></ul></ul></ul><ul><ul><ul><li>$m = [System.Runtime.InteropServices.Marshal] </li></ul></ul></ul><ul><ul><ul><li>$word = $m::GetActiveObject(&quot;Word.Application&quot;) </li></ul></ul></ul><ul><ul><li>Invoke methods/access properties </li></ul></ul><ul><ul><ul><li>$fso.GetDrive(“C:”) </li></ul></ul></ul><ul><ul><ul><li>$fso.VolumeName = “System Drive” </li></ul></ul></ul><ul><li>Understand/extend instrumentation </li></ul><ul><ul><li>Extend and discover properties/methods </li></ul></ul><ul><ul><ul><li>Update-TypeData Office.Word.Types.ps1xml </li></ul></ul></ul><ul><ul><ul><li>$fso | Get-Member </li></ul></ul></ul><ul><li>Manipulate and format results </li></ul><ul><ul><li>Define and import custom formating </li></ul></ul><ul><ul><ul><li>Update-FormatData Office.Word.Format.ps1xml </li></ul></ul></ul><ul><ul><ul><li>$word.RecentFiles | Sort name | Format-Table </li></ul></ul></ul>Allows more simpler/more powerful COM scripts because of utilities and formatting
  51. 53. <ul><li>PowerShell provides native WMI support </li></ul><ul><li>Get-WmiObject </li></ul><ul><ul><li>Allows for inspection of WMI namespace </li></ul></ul><ul><ul><li>Get-WmiObject –list [-Namespace xx] </li></ul></ul><ul><ul><li>Get-WmiObject –Class xx –Namespace xx –Property xxx – Filter xxx –ComputerName xxx –Credential xxx </li></ul></ul><ul><li>Native language support </li></ul><ul><ul><li>[WMI] “PSDESK10 ootcimv2:Win32_Process.Handle=&quot;0“ </li></ul></ul><ul><ul><li>[WMICLASS] &quot;ROOTcimv2:WIN32_PROCESS&quot; </li></ul></ul><ul><ul><li>[WMISEARCHER]&quot;select * from Win32_process WHERE Name = 'calc.exe'&quot; </li></ul></ul>
  52. 54. <ul><li>PowerShell provides native access to any .NET class </li></ul><ul><li>Create any object </li></ul><ul><ul><li>[reflection.assembly]::LoadWithPartialName(&quot;System.Windows.Forms&quot;) </li></ul></ul><ul><ul><li>$d = New-Object System.DateTime 2006,12,25 </li></ul></ul><ul><li>Access Properties/Invoke Methods </li></ul><ul><ul><li>$d.DayOfWeek </li></ul></ul><ul><ul><li>$d.AddDays(-30) </li></ul></ul><ul><li>Access Statics </li></ul><ul><ul><li>[DateTime]::Now </li></ul></ul><ul><ul><li>[DateTime]::IsLeapYear(2006) </li></ul></ul>Allows admins to easily access and leverage a huge API set because of scriptability, utilities and formatting
  53. 55. <ul><li>PowerShell provides native XML support </li></ul><ul><li>Native datatype </li></ul><ul><ul><li>$x=[xml]&quot;<a><b><c>TEST</c></b></a>“ </li></ul></ul><ul><ul><li>$b =[xml](type c:i386mssecure.xml) </li></ul></ul><ul><li>Native syntax to access “data” view of properties </li></ul><ul><ul><li>$b.BulletinDataStore.Bulletins.Bulletin[0] </li></ul></ul><ul><li>Access to XML methods </li></ul><ul><ul><li>$b.BulletinDataStore.SelectNodes(“//Patch”) </li></ul></ul><ul><li>XML properties available through PSBase property </li></ul><ul><ul><li>$b.BulletinDataStore.PSBase.innerXml </li></ul></ul>
  54. 56. <ul><li>Invoke existing tools </li></ul><ul><ul><li>Existing command run directly after variables are expanded </li></ul></ul><ul><li>Harvest data from existing tools </li></ul><ul><ul><li>Parse output into variables using text utilities. </li></ul></ul><ul><ul><ul><li>Pipe data to SELECT and use –FIRST and –LAST </li></ul></ul></ul><ul><ul><ul><li>Select-String <REGEX> <Path> </li></ul></ul></ul><ul><ul><ul><li>Dir | Select-String <REGEX> </li></ul></ul></ul><ul><ul><ul><li>[DateTime]”12/25/2006 7:00” </li></ul></ul></ul><ul><ul><ul><li>([DateTime]”12/25/2006 7:00”).AddDays(-30) </li></ul></ul></ul><ul><ul><li>Use functions/scripts to wrap the commands and convert output to objects or provide standard syntax </li></ul></ul><ul><li>Safely process text </li></ul><ul><ul><li>Use CLR types via Windows PowerShell to safely parse text </li></ul></ul><ul><ul><ul><li>[URI]” http://blogs.msdn.com/powershell/archive/2006/04/25/583234.aspx” </li></ul></ul></ul>Allows admins to get 2-10x more power out of existing commands because of scriptability

×