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 195 vues

Publié le

Publié dans : Technologie
1 commentaire
1 j’aime
Statistiques
Remarques
Aucun téléchargement
Vues
Nombre de vues
2 195
Sur SlideShare
0
Issues des intégrations
0
Intégrations
15
Actions
Partages
0
Téléchargements
109
Commentaires
1
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • 06/03/09 06:51 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. 5 minutes
  • 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

    ×