User Guide Power Shell

download User Guide Power Shell

of 127

Transcript of User Guide Power Shell

Guide lmentaire de Windows PowerShellMicrosoft Corporation Date de publication : septembre 2006

RsumWindows PowerShell est un nouvel environnement de ligne de commande Windows spcialement conu pour les administrateurs systme. Il comprend une invite interactive et un environnement de script qui peuvent tre utiliss indpendamment l'un de l'autre ou ensemble. Ce document dcrit les principaux concepts et fonctionnalits de Windows PowerShell et suggre des faons de l'utiliser dans l'administration du systme.

SommaireGuide lmentaire de Windows PowerShell - Copyright .................................................... 9 Prsentation de Windows PowerShell .............................................................................. 10 Audience ........................................................................................................................ 10 propos de Windows PowerShell .................................................................................... 10 Dcouverte .................................................................................................................... 10 Cohrence ..................................................................................................................... 11 Environnements interactif et de script ........................................................................... 11 Orientation objet ............................................................................................................ 12 Transition facile au script ............................................................................................... 12 Installation et excution de Windows PowerShell ............................................................ 12 Configuration requise pour l'installation ......................................................................... 12 Installation de Windows PowerShell .............................................................................. 12 Excution de Windows PowerShell ............................................................................... 13 Principes fondamentaux de Windows PowerShell ........................................................... 14 Concepts Windows PowerShell importants ...................................................................... 15 Les commandes ne sont pas bases sur du texte ..................................................... 15 La famille de commandes est extensible ................................................................... 15 Windows PowerShell gre l'entre et l'affichage sur une console ............................. 16 Windows PowerShell utilise une syntaxe C# ............................................................. 17 Apprentissage des noms Windows PowerShell ............................................................... 17 Les applets de commande utilisent des noms verbe-substantif pour rduire la mmorisation des commandes ............................................................................... 18 Les applets de commande utilisent des paramtres standard................................... 20 Paramtre Help (?) ................................................................................................. 20 Paramtres courants ............................................................................................... 20 Paramtres suggrs .............................................................................................. 20 Obtention d'informations de synthse sur les commandes .............................................. 21 Affichage des types de commandes disponibles ....................................................... 22 Obtention d'informations d'aide dtailles ........................................................................ 23 Utilisation de noms de commandes familiers ................................................................... 24

Interprtation des alias standard ................................................................................ 25 Cration d'alias ........................................................................................................... 26 Utilisation de l'extension par tabulation pour complter automatiquement des noms ...... 26 Pipeline d'objets ................................................................................................................ 28 Fonctionnement du pipeline Windows PowerShell ........................................................... 29 Consultation de la structure d'objets (Get-Member) ......................................................... 31 Utilisation des commandes Format pour modifier l'affichage de la sortie......................... 33 Utilisation de Format-Wide pour une sortie un seul lment .................................. 33 Contrle de l'affichage de Format-Wide avec Column ........................................... 34 Utilisation de Format-List pour une vue Liste ............................................................. 34 Obtention d'informations dtailles en utilisant Format-List avec des caractres gnriques ........................................................................................................... 35 Utilisation de Format-Table pour une sortie sous forme de tableau .......................... 35 Amlioration de la sortie de Format-Table (AutoSize) ............................................ 35 Renvoi la ligne dans la sortie en colonnes de Format-Table (Wrap) .................. 37 Organisation de la sortie en tableau (-GroupBy) .................................................... 38 Redirection de donnes avec les applets de commande Out-* ........................................ 38 Pagination de la sortie de la console (Out-Host) .................................................... 40 Suppression de la sortie (Out-Null) ......................................................................... 40 Impression de donnes (Out-Printer) ..................................................................... 41 Enregistrement de donnes (Out-File) ................................................................... 41 Navigation dans Windows PowerShell ............................................................................. 42 Gestion de l'emplacement actuel dans Windows PowerShell .......................................... 43 Obtention de votre emplacement actuel (Get-Location) ............................................ 43 Dfinition de votre emplacement actuel (Set-Location) ............................................. 44 Enregistrement et rappel des emplacements rcents (Push-Location et PopLocation) ................................................................................................................. 45 Gestion des lecteurs Windows PowerShell ...................................................................... 47 Ajout de nouveaux lecteurs Windows PowerShell (New-PSDrive) ............................ 49 Suppression de lecteurs Windows PowerShell (Remove-PSDrive) .......................... 51 Ajout et suppression de lecteurs l'extrieur de Windows PowerShell .................... 51 Utilisation de fichiers, dossiers et cls de Registre ........................................................... 52 numration de fichiers, dossiers et cls de Registre (Get-ChildItem) ..................... 52 Listage de tous les lments contenus (-Recurse) ................................................ 53

Filtrage d'lments par nom (-Name) ..................................................................... 53 Listage forc des lments masqus (-Force) ....................................................... 53 Mise en correspondance de noms d'lments avec des caractres gnriques ... 53 Exclusion d'lments (-Exclude) ............................................................................. 54 Combinaison de paramtres de Get-ChildItem ...................................................... 55 Manipulation directe d'lments........................................................................................ 56 Cration d'lments (New-Item)................................................................................. 57 Pourquoi les valeurs du Registre ne sont pas des lments ..................................... 58 Affectation d'un nouveau nom des lments existants (Rename-Item).................. 58 Dplacement d'lments (Move-Item) ....................................................................... 59 Copie d'lments (Copy-Item).................................................................................... 59 Suppression d'lments (Remove-Item) .................................................................... 60 Excution d'lments (Invoke-Item) ........................................................................... 61 Utilisation d'objets ............................................................................................................. 61 Obtention d'objets WMI (Get-WmiObject) ......................................................................... 62 Obtention d'objets WMI (Get-WmiObject) ..................................................................... 62 Listage des classes WMI............................................................................................ 62 Affichage d'informations sur une classe WMI ............................................................ 63 Affichage des proprits autres que celles par dfaut avec les applets de commande Format .............................................................................................. 64 Cration d'objets .NET et COM (New-Object) .................................................................. 65 Utilisation de New-Object pour l'accs aux journaux d'vnements ......................... 66 Utilisation de constructeurs avec New-Object ........................................................ 66 Stockage d'objets dans des variables .................................................................... 67 Accs un journal des vnements distant avec New-Object............................... 67 Effacement d'un journal des vnements avec des mthodes d'objets ................. 68 Cration d'objets COM avec New-Object .................................................................. 69 Cration d'un raccourci sur le Bureau avec WScript.Shell......................................... 69 Utilisation d'Internet Explorer partir de Windows PowerShell ................................. 71 Obtention d'avertissements sur les objets COM associs un wrapper .NET ......... 73 Utilisation de classes et de mthodes statiques ............................................................... 74 Obtention de donnes d'environnement avec System.Environment ......................... 74 Rfrence la classe statique System.Environment ............................................. 75 Affichage des proprits statiques de System.Environment .................................. 76 Mathmatiques avec System.Math ............................................................................ 76 Suppression d'objets du pipeline (Where-Object)............................................................. 78

Excution de tests simples avec Where-Object ......................................................... 78 Filtrage selon les proprits d'un objet ...................................................................... 80 Rptition d'une tche pour plusieurs objets (ForEach-Object) ....................................... 81 Slection de parties d'objets (Select-Object) .................................................................... 82 Tri d'objets ......................................................................................................................... 83 Utilisation de variables pour stocker des objets ................................................................ 84 Cration d'une variable .............................................................................................. 85 Manipulation de variables........................................................................................... 86 Utilisation de variables Cmd.exe ................................................................................ 86 Utilisation de Windows PowerShell pour l'administration ................................................. 87 Gestion des processus locaux .......................................................................................... 87 Listage des processus (Get-Process) ........................................................................ 88 Arrt de processus (Stop-Process) ............................................................................ 89 Arrt de toutes les autres sessions Windows PowerShell ......................................... 90 Gestion de services locaux ............................................................................................... 91 Listage des services ................................................................................................... 91 Arrt, dmarrage, interruption et redmarrage de services ....................................... 92 Collecte d'informations sur des ordinateurs ...................................................................... 93 Listage des paramtres des bureaux ......................................................................... 94 Listage des informations sur le BIOS ......................................................................... 94 Listage des informations sur le processeur................................................................ 94 Listage du fabricant et du modle de l'ordinateur ...................................................... 95 Listage des correctifs logiciels installs ..................................................................... 95 Listage des informations de version d'un systme d'exploitation .............................. 96 Listage des utilisateurs et du propritaire locaux ....................................................... 97 Obtention de l'espace disque disponible .................................................................... 97 Obtention d'informations sur les ouvertures de session ............................................ 98 Obtention de l'utilisateur connect un ordinateur .................................................... 98 Obtention de l'heure locale d'un ordinateur ................................................................ 98 Affichage de l'tat des services .................................................................................. 99 Utilisation d'installations logicielles ................................................................................... 99 Listage des applications Windows Installer................................................................ 99 Listage de toutes les applications pouvant tre dsinstalles ................................. 101 Installation d'applications ......................................................................................... 103

Suppression d'applications ....................................................................................... 103 Mise niveau d'applications Windows Installer ....................................................... 104 Changement d'tat de l'ordinateur : verrouillage, fermeture de session, arrt en cours et redmarrage ................................................................................................................ 104 Verrouillage d'un ordinateur ..................................................................................... 105 Fermeture de la session active ................................................................................ 105 Arrt ou redmarrage d'un ordinateur ...................................................................... 105 Utilisation d'imprimantes ................................................................................................. 106 Listage des connexions d'imprimantes .................................................................... 106 Ajout d'une imprimante rseau ................................................................................. 106 Dfinition d'une imprimante par dfaut..................................................................... 106 Suppression d'une connexion d'imprimante............................................................. 107 Tches de gestion de rseau .......................................................................................... 107 Listage des adresses IP d'un ordinateur .................................................................. 107 Listage des donnes de configuration IP ................................................................. 108 Test Ping sur des ordinateurs .................................................................................. 109 Rcupration de proprits de cartes rseau .......................................................... 110 Assignation du domaine DNS pour une carte rseau .............................................. 110 Tches de configuration DHCP ................................................................................ 111 Identification des cartes actives DHCP ............................................................... 111 Rcupration des proprits DHCP ..................................................................... 111 Activation de DHCP sur chaque carte .................................................................. 111 Libration et renouvellement des baux DHCP de certaines cartes ...................... 112 Libration et renouvellement des baux DHCP de toutes les cartes ..................... 112 Cration d'un partage rseau ................................................................................... 113 Suppression d'un partage rseau ............................................................................ 113 Connexion d'un lecteur rseau accessible par Windows ......................................... 114 Utilisation des fichiers et dossiers ................................................................................... 114 Listage de tous les fichiers et dossiers d'un dossier ................................................ 114 Copie de fichiers et de dossiers ............................................................................... 115 Cration de fichiers et de dossiers ........................................................................... 116 Suppression de tous les fichiers et dossiers d'un dossier ....................................... 116 Mappage d'un dossier local en tant que lecteur accessible par Windows ............... 116 Lecture d'un fichier texte en tant que tableau .......................................................... 117 Utilisation des cls de Registre ....................................................................................... 117 Listage de toutes les sous-cls d'une cl de Registre ............................................. 118 Copie de cls ............................................................................................................ 119

Cration de cls ....................................................................................................... 119 Suppression de cls ................................................................................................. 120 Suppression de toutes les cls d'une cl spcifique ................................................ 120 Utilisation d'entres du Registre ..................................................................................... 121 Listage des entres du Registre .............................................................................. 121 Obtention d'une seule entre du Registre ................................................................ 122 Cration d'entres de Registre................................................................................. 123 Affectation d'un nouveau nom des entres de Registre ....................................... 125 Suppression d'entres de Registre .......................................................................... 125 Annexe 1 - Alias de compatibilit .................................................................................... 125 Annexe 2 - Cration d'un raccourci PowerShell personnalis ........................................ 126

9

Guide lmentaire de Windows PowerShell - CopyrightCe document est fourni uniquement titre d'information et Microsoft n'apporte aucune garantie, explicite ou implicite, le concernant. Les informations contenues dans ce document, y compris les URL et les rfrences d'autres sites Internet, peuvent tre modifies sans pravis. L'utilisateur reconnat assumer tous les risques lis l'utilisation ou aux rsultats de l'utilisation de ce document. Sauf mention contraire, les noms de socits, d'organisations, de produits et de domaines, les adresses de messagerie, les logos et les noms de personnes et de lieux, ou les vnements mentionns dans les exemples sont fictifs. Toute ressemblance avec des noms de socits, d'organisations, de produits, de domaines, des adresses de messagerie, des logos, des noms de personnes et de lieux ou des vnements rels est purement fortuite et involontaire. L'utilisateur est tenu d'observer la rglementation relative aux droits d'auteur applicable dans son pays. Sans limitation des droits issus des droits d'auteur, aucune partie de ce manuel ne peut tre reproduite, stocke ou incluse dans un systme de rcupration de donnes ou transmise, quelque fin ou par quelque moyen que ce soit (lectronique, mcanique, photocopie, enregistrement ou autre) sans la permission expresse et crite de Microsoft Corporation. Les produits mentionns dans ce document peuvent faire l'objet de brevets, de dpts de brevets en cours, de marques, de droits d'auteur ou d'autres droits de proprit intellectuelle de Microsoft. Sauf stipulation expresse contraire d'un contrat de licence crit de Microsoft, la fourniture de ce document n'a pas pour effet de vous concder une licence sur ces brevets, marques, droits d'auteur ou autres droits de proprit intellectuelle. 2006 Microsoft Corporation. Tous droits rservs. Microsoft, MS-DOS, Windows, Windows NT, Windows 2000, Windows XP et Windows Server 2003 sont soit des marques de Microsoft Corporation, soit des marques dposes de Microsoft Corporation, aux tats-Unis d'Amrique et/ou dans d'autres pays. Les noms de produits et de socits rels mentionns dans la prsente documentation sont des marques de leurs propritaires respectifs.

10

Prsentation de Windows PowerShellWindows PowerShell est un environnement de ligne de commande et de script qui met la puissance du .NET Framework la porte des personnes qui utilisent la ligne de commande et crivent des scripts. Il introduit un certain nombre de concepts nouveaux et puissants qui vous permettent d'tendre les connaissances que vous avez acquises et les scripts que vous avez crs dans les environnements de l'invite de commandes Windows et Windows Script Host.

AudienceLe Guide lmentaire de Windows PowerShell s'adresse aux professionnels de l'informatique, aux programmeurs et aux utilisateurs chevronns qui n'ont aucune exprience avec Windows PowerShell. Bien qu'une exprience en criture de script et avec WMI soit utile, elle n'est ni suppose, ni obligatoire pour la comprhension de ce document.

propos de Windows PowerShellWindows PowerShell est conu pour amliorer l'environnement de ligne de commande et de script en liminant des problmes de longue date et en ajoutant de nouvelles fonctionnalits.

DcouverteWindows PowerShell facilite la dcouverte de ses fonctionnalits. Par exemple, pour obtenir la liste des applets de commande qui affichent et modifient les services Windows, tapez :get-command *-service

Aprs avoir dcouvert l'applet de commande qui accomplit une tche particulire, vous pouvez en apprendre davantage son sujet en utilisant l'applet de commande Get-Help. Par exemple, pour afficher de l'aide sur l'applet de commande Get-Service, tapez :get-help get-service

Pour comprendre pleinement la sortie de cette applet de commande, dirigez sa sortie vers l'applet de commande Get-Member. Par exemple, la commande suivante affiche

11 des informations sur les membres de l'objet obtenu par l'applet de commande GetService.get-service | get-member

CohrenceLa gestion de systme peut constituer un effort complexe que des outils prsentant une interface cohrente peuvent contribuer contrler. Malheureusement, ni les outils de ligne de commande, ni les objets COM scriptables ne sont connus pour leur cohrence. La cohrence de Windows PowerShell est l'un de ses principaux atouts. Par exemple, si vous apprenez comment utiliser l'applet de commande Sort-Object, vous pouvez utiliser cette connaissance pour trier la sortie de toute applet de commande. Il n'est pas ncessaire que vous appreniez les diffrentes routines de tri de chaque applet de commande. En outre, les dveloppeurs d'applets de commande n'ont pas concevoir de fonctionnalits de tri pour leurs applets de commande. Windows PowerShell leur donne une infrastructure qui fournit les fonctionnalits de base et force leur cohrence sur de nombreux aspects de l'interface. L'infrastructure limine certains choix habituellement laisss au dveloppeur, mais, en retour, rend beaucoup plus simple le dveloppement d'applets de commande fiables et faciles utiliser.

Environnements interactif et de scriptWindows PowerShell est un environnement qui combine interactivit et criture de script pour vous donner accs des outils de ligne de commande et des objets COM tout en vous permettant de tirer parti de la puissance de la bibliothque de classes .NET Framework. Cet environnement amliore l'invite de commandes de Windows, qui fournit un environnement interactif avec plusieurs outils de ligne de commande. Il amliore galement les scripts WSH (Windows Script Host), qui vous permettent d'utiliser plusieurs outils de ligne de commande et objets automation COM, mais ne fournissent pas d'environnement interactif. En combinant l'accs toutes ces fonctionnalits, Windows PowerShell tend les capacits tant de l'utilisateur interactif que de celui qui crit des scripts et simplifie l'administration du systme.

12

Orientation objetBien que vous interagissiez avec Windows PowerShell en tapant des commandes en texte, Windows PowerShell est bas sur des objets, et non sur du texte. La sortie d'une commande est un objet. Vous pouvez envoyer l'objet de sortie une autre commande en tant qu'entre. En consquence, Windows PowerShell fournit une interface familire aux personnes habitues d'autres environnements, tout en introduisant un modle de ligne de commande nouveau et puissant. Il tend le concept de l'envoi de donnes entre commandes en vous permettant d'envoyer des objets, plutt que du texte.

Transition facile au scriptWindows PowerShell facilite la transition de la saisie interactive de commandes la cration et l'excution de scripts. Vous pouvez taper des commandes l'invite de commandes de Windows PowerShell pour dcouvrir les commandes qui effectuent une tche. Vous pouvez ensuite enregistrer ces commandes dans une transcription ou un historique avant de les copier dans un fichier qui servira de script.

Installation et excution de Windows PowerShellConfiguration requise pour l'installationAvant d'installer Windows PowerShell, veillez ce que votre systme dispose des logiciels requis par Windows PowerShell. Windows PowerShell requiert les programmes suivants : Windows XP Service Pack 2, Windows 2003 Service Pack 1 ou versions ultrieures de Windows Microsoft .NET Framework 2.0

Si une version de Windows PowerShell est dj installe sur l'ordinateur, utilisez Ajout/Suppression de programmes dans le Panneau de configuration pour la dsinstaller avant d'installer une nouvelle version.

Installation de Windows PowerShellPour installer Windows PowerShell

13 1. Tlchargez le fichier d'installation de Windows PowerShell. (Le nom de fichier varie selon la plateforme, le systme d'exploitation et le module linguistique.) 2. Pour dmarrer l'installation, cliquez sur Ouvrir. 3. Suivez les instructions des pages de l'Assistant Installation. Vous pouvez galement enregistrer les fichiers Windows PowerShell sur un partage rseau si vous souhaitez effectuer l'installation sur plusieurs ordinateurs. Pour effectuer une installation en mode silencieux, tapez : /quiet

Par exemple :PowerShellSetup_x86_fre.exe /quiet

Sur les versions 32 bits de Windows, Windows PowerShell est install, par dfaut, dans le rpertoire %SystemRoot%\System32\WindowsPowerShell\v1.0. Sur les versions 64 bits de Windows, une version 32 bits de Windows PowerShell est installe dans le rpertoire %SystemRoot%\SystemWow64\WindowsPowerShell\v1.0 et une version 64 bits de Windows PowerShell est installe dans le rpertoire %SystemRoot%\System32\WindowsPowerShell\v1.0.

Excution de Windows PowerShellPour dmarrer Windows PowerShell partir du menu Dmarrer, cliquez sur Dmarrer, sur Tous les programmes, sur Windows PowerShell 1.0, puis sur l'icne Windows PowerShell. Pour dmarrer Windows PowerShell partir de la zone Excuter, cliquez sur Dmarrer, cliquez sur Excuter, tapez powershell et cliquez sur OK. Pour dmarrer Windows PowerShell partir d'une fentre d'invite de commandes (cmd.exe), l'invite de commandes, tapez powershell. Parce que Windows PowerShell s'excute dans une session de console, vous pouvez utiliser cette technique pour l'excuter au cours d'une session telnet ou SSH distance. Pour revenir votre session d'invite de commandes, tapez exit.

14

Principes fondamentaux de Windows PowerShellLes interfaces graphiques mettent en uvre certains concepts de base bien connus de la plupart des utilisateurs d'ordinateurs. Ces derniers s'appuient sur leur connaissance de ces interfaces pour accomplir des tches. Les systmes d'exploitation prsentent aux utilisateurs une reprsentation graphique des lments qui peuvent tre parcourus habituellement au moyen de menus droulants pour accder des fonctionnalits spcifiques et de menus contextuels pour accder des fonctionnalits propres au contexte. Une interface de ligne de commande (CLI), telle que Windows PowerShell, doit utiliser une approche diffrente pour exposer des informations, car elle est dpourvue de menus ou de systmes graphiques pour aider l'utilisateur. Vous devez connatre les noms des commandes avant de pouvoir les utiliser. Bien que vous puissiez taper des commandes complexes quivalentes aux fonctionnalits d'un environnement interface graphique utilisateur (GUI), vous devez vous familiariser avec les commandes et paramtres de commande couramment utiliss. La plupart des CLI sont dpourvues de modles susceptibles d'aider l'utilisateur apprendre l'interface. Parce que les CLI ont t les premiers environnements de systme d'exploitation, de nombreux noms de commandes et de paramtres ont t choisis de faon arbitraire. Des noms de commandes laconiques ont souvent t prfrs de plus clairs. Bien que des systmes d'aide et des normes de conception de commandes soient intgrs dans la plupart des CLI, ils ont gnralement t conus en vue de leur compatibilit avec les premires commandes, de sorte que le jeu de commandes reste faonn par des dcisions prises plusieurs dcennies auparavant. Windows PowerShell a t conu pour tirer parti des connaissances que les utilisateurs de CLI ont pu acqurir. Dans ce chapitre, nous prsenterons quelques outils et concepts de base que vous pouvez utiliser pour apprendre rapidement Windows PowerShell. Ils incluent : Utilisation de Get-Command Utilisation des commandes Cmd.exe et UNIX Utilisation de commandes externes Utilisation de la saisie automatique par tabulation Utilisation de Get-Help

15

Concepts Windows PowerShell importantsLa conception de Windows PowerShell intgre des concepts provenant de nombreux environnements diffrents. Plusieurs d'entre eux sont connus des personnes ayant de l'exprience avec des environnements de ligne de commande ou de programmation spcifiques, mais peu de personnes en savent tout. La prsentation de certains de ces concepts fournit une vue d'ensemble utile de l'environnement.

Les commandes ne sont pas bases sur du texteContrairement aux commandes d'interface de ligne de commande traditionnelles, les applets de commande Windows PowerShell sont conues pour traiter des objets, informations structures allant au-del de simples chanes de caractres apparaissant l'cran. La sortie d'une commande contient toujours des informations supplmentaires que vous pouvez utiliser si vous en avez besoin. Nous aborderons ce sujet de faon plus dtaille dans ce document. Si vous avez dj utilis des outils de traitement de texte pour traiter des donnes de ligne de commande, vous constaterez qu'ils se comportent diffremment si vous essayez de les utiliser dans Windows PowerShell. Dans la plupart des cas, vous n'avez pas besoin d'outils de traitement de texte pour extraire des informations spcifiques. Vous pouvez accder directement certaines donnes en utilisant des commandes de manipulation d'objets Windows PowerShell standard.

La famille de commandes est extensibleLes interfaces telles que Cmd.exe ne vous permettent pas d'tendre directement le jeu de commandes intgr. Vous pouvez crer des outils de ligne de commande externes qui s'excutent dans Cmd.exe, mais ces outils sont dpourvus de services, tels que l'intgration d'aide, et Cmd.exe ne peut pas dterminer automatiquement qu'il s'agit de commandes valides. Les commandes binaires natives de Windows PowerShell, appeles applets de commande , peuvent tre enrichies des applets de commande que vous crez et ajoutez Windows PowerShell au moyen de composants logiciels enfichables. Les composants logiciels enfichables Windows PowerShell sont compils, comme les outils binaires de toute autre interface. Vous pouvez les utiliser pour ajouter l'environnement tant des fournisseurs de Windows PowerShell que de nouvelles applets de commande. En raison de la nature spciale des commandes internes Windows PowerShell, nous les appellerons applets de commande .

16 Remarque : Windows PowerShell peut excuter des commandes qui ne sont pas des applets de commande. Nous ne les prsenterons pas en dtail dans le Guide lmentaire de Windows PowerShell, mais il peut tre utile de les connatre en tant que catgories de types de commandes. Windows PowerShell prend en charge des scripts analogues aux scripts de l'environnement UNIX et aux fichiers de commandes Cmd.exe, mais dots de l'extension de nom de fichier .ps1. Il vous permet galement de crer des fonctions internes qui peuvent tre utilises directement dans l'interface ou dans des scripts.

Windows PowerShell gre l'entre et l'affichage sur une consoleLorsque vous tapez une commande, Windows PowerShell traite toujours directement l'entre de ligne de commande. Il met galement en forme la sortie que vous voyez l'cran. Ce point est important, car cela rduit le travail ncessaire de chaque applet de commande et garantit que vous pouvez toujours procder de la mme manire quelle que soit l'applet de commande utilise. L'aide de ligne de commande illustre bien la faon dont cela simplifie la vie des dveloppeurs et les utilisateurs d'outils. Les outils de ligne de commande traditionnels ont leurs propres mthodes pour demander et afficher de l'aide. Certains outils de ligne de commande utilisent /? pour afficher l'aide, d'autres -?, /H et d'autres encore //. Certains affichent l'aide dans une fentre GUI, plutt que sur l'cran de la console. Des outils complexes, comme des mises jour d'applications, dcompressent des fichiers internes avant d'afficher leur aide. Si vous n'utilisez pas le bon paramtre, l'outil peut ignorer ce que vous avez tap et commencer automatiquement une tche. Lorsque vous entrez une commande dans Windows PowerShell, tout ce que vous entrez est automatiquement analys et prtrait par Windows PowerShell. L'utilisation du paramtre -? avec une applet de commande Windows PowerShell signifie toujours afficher l'aide relative cette commande . Les dveloppeurs d'applets de commande n'ont pas besoin d'analyser la commande ; il leur suffit de fournir le texte d'aide. Il est important de comprendre que les fonctions d'aide sont disponibles dans Windows PowerShell mme lorsque vous y excutez des outils de ligne de commande traditionnels. Windows PowerShell traite les paramtres et passe les rsultats aux outils externes. Remarque : Si vous excutez une application graphique dans Windows PowerShell, la fentre de l'application s'ouvre. Windows PowerShell intervient uniquement lors du traitement de l'entre de ligne de commande que vous fournissez ou de la

17 sortie d'application retourne la fentre de la console ; il n'affecte pas le fonctionnement interne de l'application.

Windows PowerShell utilise une syntaxe C#Parce qu'il se base sur le .NET Framework, Windows PowerShell prsente des fonctionnalits de syntaxe et des mots cls trs semblables ceux utiliss en langage de programmation C#. Apprendre Windows PowerShell facilitera grandement l'apprentissage de C#, si ce langage vous intresse. Si vous n'tes pas programmeur C#, cette ressemblance n'est pas importante. Toutefois, si vous connaissez dj C#, les ressemblances peuvent simplifier l'apprentissage de Windows PowerShell.

Apprentissage des noms Windows PowerShellApprendre les noms des commandes et paramtres de commande peut ncessiter un investissement significatif en termes de temps avec la plupart des interfaces de ligne de commande. Le problme est qu'il existe trs peu de modles, de sorte que le seul moyen d'apprendre consiste mmoriser chaque commande et chaque paramtre que vous devrez utiliser rgulirement. Lorsque vous travaillez avec une nouvelle commande ou un nouveau paramtre, vous ne pouvez gnralement pas utiliser ce que vous savez dj ; vous devez rechercher et apprendre un nouveau nom. Si vous observez la manire dont les ajouts incrmentiels de fonctionnalits enrichissent le petit jeu d'outils de dpart des interfaces, vous constaterez aisment que la structure n'est pas standard. Avec les noms de commande en particulier, cela peut sembler logique, puisque chaque commande est un outil distinct, mais il existe un meilleur moyen de grer des noms de commandes. La plupart des commandes sont construites pour grer des lments du systme d'exploitation ou des applications, comme des services ou processus. Les commandes ont une varit de noms qui peuvent ou non s'intgrer une famille. Par exemple, sur les systmes Windows, vous pouvez utiliser les commandes net start et net stop pour dmarrer et arrter un service. Il existe pour Windows un autre outil de contrle de service plus gnraliste, dont le nom est compltement diffrent, sc, ce qui ne correspond pas au modle de dnomination des commandes de service net. Pour la gestion des processus, Windows possde la commande tasklist qui permet d'obtenir la liste des processus et la commande taskkill qui permet de les arrter.

18 Les spcifications de paramtres pour les commandes qui les acceptent n'obissent pas toutes aux mmes rgles. Vous ne pouvez pas utiliser la commande net start pour dmarrer un service sur un ordinateur distant. La commande sc permet de dmarrer un service sur un ordinateur distant, mais pour spcifier l'ordinateur distant, vous devez faire prcder son nom de deux barres obliques inverses. Par exemple, pour dmarrer le service spouleur sur un ordinateur distant nomm DC01, vous taperiez sc \\DC01 start spooler. Pour obtenir la liste des tches en cours d'excution sur DC01, vous devez utiliser le paramtre /S (pour system ) et fournir le nom DC01 sans barres obliques inverses, comme ceci : tasklist /S DC01. Bien qu'il existe d'importantes distinctions techniques entre un service et un processus, tous deux constituent des exemples d'lments qu'il est possible de grer sur un ordinateur et ayant un cycle de vie prcis. Vous pouvez dmarrer ou arrter un service ou un processus ou obtenir la liste de tous les services ou processus en cours d'excution. En d'autres termes, bien qu'il s'agisse de deux choses distinctes, les actions que nous effectuons sur un service ou un processus sont souvent conceptuellement les mmes. En outre, les choix que nous pouvons faire pour personnaliser une action en spcifiant des paramtres peuvent galement tre conceptuellement semblables. Windows PowerShell exploite ces similarits pour rduire le nombre de noms distincts que vous devez connatre pour comprendre et utiliser des applets de commande.

Les applets de commande utilisent des noms verbesubstantif pour rduire la mmorisation des commandesWindows PowerShell utilise un systme de dnomination verbe-substantif , o chaque nom d'applet de commande est constitu d'un verbe standard et d'un substantif spcifique, tous deux souvent anglais, spars par un tiret. Les verbes Windows PowerShell ne sont pas toujours des verbes anglais, mais ils expriment des actions spcifiques dans Windows PowerShell. Les substantifs sont trs similaires ceux des autres langues et dcrivent des types spcifiques d'objets essentiels pour l'administration du systme. Il est ais de dmontrer par quelques exemples comment ces noms en deux parties rduisent l'effort d'apprentissage. Les substantifs sont moins restreints, mais doivent toujours dcrire ce sur quoi agit une commande. Windows PowerShell propose des commandes telles que Get-Process, Stop-Process, Get-Service et Stop-Service. Dans le cas de deux substantifs et deux verbes, la cohrence ne simplifie pas autant l'apprentissage. Toutefois, si vous considrez un jeu standard de 10 verbes et 10 substantifs, vous n'avez que 20 mots comprendre, mais ces mots peuvent tre utiliss pour former 100 noms de commandes distincts.

19 Vous pouvez frquemment reconnatre ce que fait une commande en lisant son nom et le substantif utiliser pour une nouvelle commande est souvent vident. Par exemple, une commande d'arrt de l'ordinateur peut tre Stop-Computer. Une commande qui rpertorie tous les ordinateurs d'un rseau peut tre Get-Computer. La commande qui obtient la date systme est Get-Date. Vous pouvez rpertorier toutes les commandes qui incluent un verbe particulier au moyen du paramtre -Verb de Get-Command (nous prsenterons en dtail GetCommand dans la section suivante). Par exemple, pour consulter toutes les applets de commande qui utilisent le verbe Get, tapez :PS> Get-Command CommandType ----------Cmdlet Cmdlet Cmdlet Cmdlet ... -Verb Get Name ---Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Definition ---------Get-Acl [[-Path] ]... Get-Alias [[-Name] Get-Command -Name Clear-Host CommandType ----------Function Name ---Clear-Host Definition ---------$spaceType = [System.Managem...

20

Les applets de commande utilisent des paramtres standardComme indiqu prcdemment, les commandes utilises dans les interfaces de ligne de commande traditionnelles n'ont gnralement pas de noms de paramtres cohrents. Il peut mme arriver que des paramtres n'aient pas de nom du tout. Lorsqu'ils en ont un, il s'agit souvent d'un caractre ou de mots abrgs qui peuvent tre taps rapidement, mais ne sont pas faciles comprendre pour les nouveaux utilisateurs. Contrairement la plupart des autres interfaces de ligne de commande traditionnelles, Windows PowerShell traite les paramtres directement et utilise cet accs direct aux paramtres ainsi que des indications fournies aux dveloppeurs pour normaliser les noms de paramtres. Bien que cela ne garantisse pas que chaque applet de commande sera conforme aux normes, cela y incite. Remarque : Les noms de paramtres sont toujours prcds d'un - lorsque vous les utilisez, pour permettre Windows PowerShell de les identifier clairement en tant que paramtres. Dans l'exemple Get-Command -Name Clear-Host, le nom du paramtre est Name, mais il est entr sous la forme -Name. Vous trouverez ci-dessous certaines caractristiques gnrales des noms et utilisations de paramtres standard.

Paramtre Help (?)Lorsque vous spcifiez le paramtre -? pour une applet de commande, celle-ci n'est pas excute. la place, Windows PowerShell affiche l'aide qui lui est associe.

Paramtres courantsWindows PowerShell propose plusieurs paramtres appels paramtres courants . Parce que ces paramtres sont contrls par le moteur Windows PowerShell, chaque fois qu'ils sont implments par une applet de commande, ils se comportent toujours de la mme manire. Les paramtres courants sont WhatIf, Confirm, Verbose, Debug, Warn, ErrorAction, ErrorVariable, OutVariable et OutBuffer.

Paramtres suggrsLes applets de commande principales Windows PowerShell utilisent des noms standard pour les paramtres semblables. Bien que l'utilisation de noms de paramtres ne soit pas impose, des indications explicites sont fournies afin de favoriser la normalisation.

21 Par exemple, ces indications recommandent de nommer un paramtre faisant rfrence un ordinateur par son nom comme ComputerName, plutt que par Server, Host, System, Node ou autres mots courants possibles. Parmi les importants noms de paramtres suggrs, citons Force, Exclude, Include, PassThru, Path et CaseSensitive.

Obtention d'informations de synthse sur les commandesL'applet de commande Get-Command Windows PowerShell rcupre les noms de toutes les commandes disponibles. Lorsque vous tapez Get-Command une invite Windows PowerShell, vous obtenez une sortie similaire la suivante :PS> Get-Command CommandType ----------Cmdlet Cmdlet Cmdlet ... Name ---Add-Content Add-History Add-Member Definition ---------Add-Content [-Path] Get-Command -CommandType Alias

23 Pour afficher toutes les fonctions Windows PowerShell, entrez la commande suivante :PS> Get-Command -CommandType Function

Pour afficher des scripts externes dans le chemin de recherche de Windows PowerShell, entrez la commande suivante :PS> Get-Command -CommandType ExternalScript

Obtention d'informations d'aide dtaillesWindows PowerShell propose une documentation d'aide dtaille pour toutes les applets de commande. Pour afficher les rubriques d'aide, utilisez l'applet de commande GetHelp. Par exemple, pour obtenir de l'aide sur l'applet de commande Get-Childitem, tapez :get-help get-childitem

ouget-childitem -?

Vous pouvez galement afficher une page la fois de chaque rubrique d'aide en utilisant les fonctions man et help. Pour les utiliser, tapez man ou help, puis le nom de l'applet de commande. Par exemple, pour afficher l'aide de l'applet de commande Get-Childitem, tapez :man get-childitem

ouhelp get-childitem

L'applet de commande Get-Help affiche galement des informations sur les rubriques conceptuelles dans Windows PowerShell. Les rubriques d'aide conceptuelles commencent par le prfixe about_ , comme about_line_editing. Pour afficher la liste des rubriques conceptuelles, tapez :get-help about_*

Pour afficher une rubrique d'aide particulire, tapez le nom de la rubrique, par exemple :get-help about_line_editing

24

Utilisation de noms de commandes familiersWindows PowerShell permet aux utilisateurs de faire rfrence aux commandes par d'autres noms, appels alias. Grce ces alias, les utilisateurs ayant l'exprience d'autres environnements peuvent rutiliser les noms de commandes qu'ils connaissent pour effectuer des oprations similaires dans Windows PowerShell. Si nous n'abordons pas les alias dans le dtail, vous pouvez toujours les utiliser pour faire vos premiers pas dans Windows PowerShell. Un alias vous permet d'associer un nom de commande que vous tapez une autre commande. Par exemple, Windows PowerShell a une fonction interne nomme ClearHost qui efface le contenu de la fentre de sortie. Si vous tapez la commande cls ou clear une invite de commandes, Windows PowerShell l'interprte en tant qu'alias de la fonction Clear-Host et l'excute. Cette fonctionnalit aide les utilisateurs dans leur apprentissage de Windows PowerShell. En premier lieu, la plupart des utilisateurs Cmd.exe et UNIX connaissent par leur nom bon nombre de commandes de ces environnements, et bien que les quivalents Windows PowerShell puissent ne pas produire des rsultats identiques, leur forme est suffisamment proche pour leur permettre de les employer dans leur travail sans avoir pralablement mmoriser les noms Windows PowerShell. En second lieu, la principale source de frustration dans l'apprentissage d'un nouvel environnement lorsque l'utilisateur en connat dj un rside dans les erreurs dues la mmoire des doigts . Si vous avez utilis Cmd.exe pendant des annes, lorsque vous obtenez un cran complet de sortie et souhaitez le nettoyer, vous pouvez par rflexe taper la commande cls et appuyer sur la touche Entre. Sans l'alias de la fonction Clear-Host de Windows PowerShell, vous obtiendriez simplement le message d'erreur Le terme cls n'est pas reconnu en tant qu'applet de commande, fonction, programme excutable ou fichier de script et ne sauriez pas comment effacer le contenu de la sortie. Vous trouverez ci-dessous une courte liste des commandes Cmd.exe et UNIX courantes que vous pouvez utiliser dans Windows PowerShell. cat cd chdir dir echo erase mount move popd rm rmdir sleep

25 clear cls copy del diff h history kill lp ls ps pushd pwd r ren sort tee type write

Si par rflexe vous utilisez l'une de ces commandes et souhaitez apprendre le vritable nom de la commande Windows PowerShell native, vous pouvez utiliser la commande Get-Alias :PS> Get-Alias cls CommandType ----------Alias Name ---cls Definition ---------Clear-Host

Pour une meilleure lisibilit des exemples, le Guide lmentaire de Windows PowerShell vite gnralement d'utiliser des alias. Toutefois, en savoir plus sur ces alias ds prsent reste utile si vous travaillez avec des extraits de code arbitraires provenant de Windows PowerShell ou d'une autre source ou souhaitez dfinir vos propres alias. La suite de cette section prsente les alias standard et explique comment dfinir les vtres.

Interprtation des alias standardContrairement aux alias dcrits plus haut, lesquels ont t conus pour la compatibilit des noms avec d'autres interfaces, les alias intgrs de Windows PowerShell sont gnralement conus dans l'optique de la concision. Ces noms plus courts peuvent tre taps rapidement, mais sont impossibles lire si vous ne savez pas quoi ils font rfrence. Windows PowerShell essaie de trouver un compromis entre clart et concision en fournissant un jeu d'alias standard bass sur des abrviations des verbes et substantifs courants. Cela permet de disposer d'un jeu principal d'alias pour les applets de commande courantes qui, ds lors que vous connaissez ces abrviations, deviennent lisibles. Par exemple, dans les alias standard, le verbe Get est abrg en g, le verbe Set en s, le substantif Item est abrg en i, le substantif Location en l et le substantif Command en cm. Voici un bref exemple pour en illustrer le fonctionnement. L'alias standard de Get-Item provient de la combinaison de g pour Get et de i pour Item : gi. L'alias standard de SetItem provient de la combinaison de s pour Set et de i pour Item : si. L'alias standard de

26 Get-Location provient de la combinaison de g pour Get et de l pour Location : gl. L'alias standard de Set-Location provient de la combinaison de s pour Set et de l pour Location : sl. L'alias standard de Get-Command provient de la combinaison de g pour Get et de cm pour Commande : gcm. Il n'existe pas d'applet de commande SetCommand, mais s'il en existait une, nous serions en mesure de deviner que l'alias standard proviendrait de s pour Set et de cm pour Command : scm. En outre, les personnes habitues aux alias Windows PowerShell qui rencontreraient scm seraient capables de deviner que cet alias fait rfrence Set-Command.

Cration d'aliasVous pouvez crer vos propres alias l'aide de l'applet de commande Set-Alias. Par exemple, les instructions suivantes crent les alias d'applet de commande standard prsents dans Interprtation des alias standard :Set-Alias Set-Alias Set-Alias Set-Alias Set-Alias -Name -Name -Name -Name -Name gi -Value Get-Item si -Value Set-Item gl -Value Get-Location sl -Value Set-Location gcm -Value Get-Command

En interne, Windows PowerShell utilise des commandes comme celles-ci au dmarrage, mais ces alias ne sont pas modifiables. Si vous essayez d'excuter l'une de ces commandes, vous obtenez une erreur indiquant que l'alias ne peut pas tre modifi. Par exemple :PS> Set-Alias -Name gi -Value Get-Item Set-Alias : L'alias n'est pas inscriptible, car l'alias gi est constant ou en lecture seule et n'est pas accessible en criture. la ligne : 1 Caractre : 10 + Set-Alias Get-ChildItem -Path C:\WINDOWS\System32 | Out-Host -Paging Rpertoire : Microsoft.Windows PowerShell.Core\FileSystem::C:\WINDOWS\system32 Mode ----a---a---a---a---a---a---a---a---a---a---a---a---a--LastWriteTime ------------2005-10-22 11:04 PM 2004-08-04 8:00 AM 2004-08-04 8:00 AM 2004-08-04 8:00 AM 2004-08-04 8:00 AM 2004-08-04 8:00 AM 2004-08-04 8:00 AM 2004-08-04 8:00 AM 2004-08-04 8:00 AM 2004-08-04 8:00 AM 2004-08-04 8:00 AM 2003-02-21 6:50 PM 2006-01-25 3:35 PM Length -----315 68608 64512 183808 61952 129536 114688 194048 111104 4096 101888 143150 53760 Name ---$winnt$.inf access.cpl acctres.dll accwiz.exe acelpdec.ax acledit.dll aclui.dll activeds.dll activeds.tlb actmovie.exe actxprxy.dll admgmt.msc admparse.dll

page suivante ; ligne suivante ; Q quitter ...

La commande Out-Host -Paging est un lment de pipeline utile lorsque la sortie est longue et que vous souhaitez l'afficher lentement. Elle l'est aussi particulirement si l'opration sollicite fortement les ressources processeur. Dans la mesure o le traitement est transfr l'applet de commande Out-Host lorsqu'elle dispose d'une page complte prte afficher, les applets de commande qui la suivent dans le pipeline arrtent l'opration jusqu' ce que la page suivante de la sortie soit disponible. Vous pouvez l'observer si vous utilisez le Gestionnaire des tches de Windows pour surveiller l'utilisation de l'UC et de la mmoire par Windows PowerShell.

30 Excutez la commande suivante : Get-ChildItem C:\Windows -Recurse. Comparez l'utilisation de l'UC et de la mmoire par rapport cette commande : Get-ChildItem C:\Windows -Recurse | Out-Host -Paging. Ce que vous voyez l'cran est du texte, mais uniquement parce qu'il est ncessaire de reprsenter des objets sous forme de texte dans une fentre de console. Il s'agit rellement d'une simple reprsentation de ce qui se passe l'intrieur de Windows PowerShell. Par exemple, considrez l'applet de commande Get-Location. Si vous tapez Get-Location alors que votre emplacement actuel est la racine du lecteur C, vous obtenez la sortie suivante :PS> Get-Location Path ---C:\

Si le contenu du pipeline Windows PowerShell tait du texte, l'mission d'une commande telle que Get-Location | Out-Host passerait de Get-Location Out-Host un jeu de caractres dans l'ordre dans lequel ils apparaissent l'cran. En d'autres termes, en ignorant les informations de titre, Out-Host recevrait en premier le caractre C , puis le caractre : , puis le caractre \ . L'applet de commande Out-Host ne pourrait pas dterminer la signification donner aux caractres fournis par l'applet de commande Get-Location. Au lieu d'utiliser du texte pour permettre aux commandes d'un pipeline de communiquer, Windows PowerShell utilise des objets. Du point de vue de l'utilisateur, les objets regroupent des informations connexes sous une forme qui facilite la manipulation de ces informations en tant qu'unit et extraient les lments spcifiques dont vous avez besoin. La commande Get-Location ne retourne pas du texte qui contient le chemin d'accs actuel. Elle retourne un package d'informations appel objet PathInfo qui contient le chemin d'accs actuel et quelques autres informations. L'applet de commande Out-Host envoie ensuite cet objet PathInfo l'cran, et Windows PowerShell dcide des informations afficher et de la manire de les afficher selon ses rgles de mise en forme. En fait, la sortie des informations du titre par l'applet de commande Get-Location est ajoute uniquement la fin du processus, au moment de la mise en forme des donnes en vue de leur affichage l'cran. Ce que vous voyez l'cran est une synthse des informations, et non une reprsentation complte de l'objet de sortie. Mais si les informations issues d'une commande Windows PowerShell peuvent tre plus nombreuses que celles qui sont visibles dans la fentre de la console, comment rcuprer celles qui ne le sont pas ? Comment consulter les donnes supplmentaires ? Et si vous souhaitez consulter les donnes dans un format diffrent de celui qu'utilise normalement Windows PowerShell ?

31 La suite de ce chapitre explique comment dcouvrir la structure d'objets Windows PowerShell spcifiques, en slectionnant des lments spcifiques et en les mettant en forme pour un affichage plus facile, et comment envoyer ces informations d'autres emplacements de sortie, tels que des fichiers et des imprimantes.

Consultation de la structure d'objets (Get-Member)tant donn le rle si central des objets dans Windows PowerShell, plusieurs commandes natives ont t conues pour utiliser des types d'objets arbitraires. La plus importante d'entre elles est la commande Get-Member. La technique la plus simple pour analyser les objets retourns par une commande consiste en diriger la sortie vers l'applet de commande Get-Member. L'applet de commande Get-Member vous indique le nom formel du type d'objet et une liste complte de ses membres. Le nombre des lments retourns peut parfois tre crasant. Par exemple, un objet Process peut avoir plus de 100 membres. Pour afficher tous les membres d'un objet Process et paginer la sortie afin que vous puissiez en consulter l'intgralit, tapez :PS> Get-Process | Get-Member | Out-Host -Paging

La sortie de cette commande sera semblable la suivante :TypeName: System.Diagnostics.Process Name ---Handles Name NPM PM VM WS add_Disposed ... MemberType ---------AliasProperty AliasProperty AliasProperty AliasProperty AliasProperty AliasProperty Method Definition ---------Handles = Handlecount Name = ProcessName NPM = NonpagedSystemMemorySize PM = PagedMemorySize VM = VirtualMemorySize WS = WorkingSet System.Void add_Disposed(Event...

Nous pouvons rendre cette longue liste d'informations plus exploitable en appliquant un filtre de faon n'afficher que les lments qui nous intressent. La commande GetMember vous permet de ne rpertorier que les membres qui sont des proprits. Il existe plusieurs formes de proprits. L'applet de commande affiche tous les types de proprits si nous affectons la valeur Properties au paramtre Get-

32 MemberMemberType. La liste obtenue reste trs longue, mais un peu plus facile grer :PS> Get-Process | Get-Member -MemberType Properties

TypeName: System.Diagnostics.Process Name ---Handles Name ... ExitCode ... Handle ... CPU ... Path ... MemberType ---------AliasProperty AliasProperty Property Property Definition ---------Handles = Handlecount Name = ProcessName System.Int32 ExitCode {get;} System.IntPtr Handle {get;}

ScriptProperty System.Object CPU {get=$this.Total... ScriptProperty System.Object Path {get=$this.Main...

Remarque : Les valeurs autorises de MemberType sont AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet et All. Il existe plus de 60 proprits pour un processus. La raison pour laquelle Windows PowerShell n'indique souvent que quelques-unes des proprits d'un objet connu est que les afficher toutes produirait un volume d'informations difficilement grable. Remarque : Windows PowerShell dtermine comment afficher un type d'objet en s'appuyant sur les informations stockes dans des fichiers XML dont le nom se termine par .format.ps1xml. Les donnes de mise en forme des objets Process, qui sont des objets .NET System.Diagnostics.Process, sont stockes dans PowerShellCore.format.ps1xml. Si vous devez consulter des proprits autres que celles qu'affiche Windows PowerShell par dfaut, vous devrez mettre en forme vous-mme les donnes de sortie. Vous pouvez pour ce faire utiliser les applets de commande Format.

33

Utilisation des commandes Format pour modifier l'affichage de la sortieWindows PowerShell propose un jeu d'applets de commande qui vous permettent de contrler les proprits afficher pour des objets particuliers. Le nom de toutes ces applets de commande commence par le verbe Format. Elles vous permettent de slectionner une ou plusieurs proprits afficher. Les applets de commande Format sont Format-Wide, Format-List, Format-Table et Format-Custom. Dans ce guide, nous dcrirons uniquement les applets de commande Format-Wide, Format-List et Format-Table. Chaque applet de commande Format a des proprits qui seront utilises par dfaut si vous ne spcifiez pas de proprits spcifiques afficher. Chaque applet de commande utilise galement le mme nom de paramtre, Property, pour spcifier les proprits afficher. Parce que Format-Wide n'affiche qu'une seule proprit, son paramtre Property n'accepte qu'une seule valeur, contrairement celui de Format-List et Format-Table, qui accepte une liste de noms de proprits. Si vous utilisez la commande Get-Process -Name powershell avec 2 instances de Windows PowerShell en cours d'excution, vous obtenez une sortie similaire la suivante :Handles ------995 331 NPM(K) -----9 9 PM(K) ----30308 23284 WS(K) VM(M) ----- ----27996 152 29084 143 CPU(s) -----2.73 1.06 Id -2760 3448 ProcessName ----------powershell powershell

Dans la suite de cette section, nous dcouvrirons comment utiliser les applets de commande Format pour modifier l'affichage de la sortie de cette commande.

Utilisation de Format-Wide pour une sortie un seul lmentL'applet de commande Format-Wide, par dfaut, affiche uniquement la proprit par dfaut d'un objet. Les informations associes chaque objet s'affichent dans une seule colonne :PS> Get-Process -Name powershell | Format-Wide powershell powershell

Vous pouvez galement spcifier une proprit autre que celle par dfaut :PS> Get-Process -Name powershell | Format-Wide -Property Id

34

2760

3448

Contrle de l'affichage de Format-Wide avec ColumnAvec l'applet de commande Format-Wide, vous ne pouvez afficher qu'une proprit la fois. Cela la rend utile pour afficher des listes simples o ne figure qu'un lment par ligne. Pour obtenir une liste simple, affectez au paramtre Column la valeur 1 en tapant :Get-Command Format-Wide -Property Name -Column 1

Utilisation de Format-List pour une vue ListeL'applet de commande Format-List affiche un objet sous forme de liste, avec chaque proprit libelle et affiche sur une ligne distincte :PS> Get-Process -Name powershell | Format-List Id Handles CPU Name Id Handles CPU Name : : : : : : : : 2760 1242 3.03125 powershell 3448 328 1.0625 powershell

Vous pouvez spcifier autant de proprits que vous le souhaitez :PS> Get-Process -Name powershell | Format-List -Property ProcessName,FileVersion ,StartTime,Id

ProcessName FileVersion StartTime Id ProcessName FileVersion StartTime Id

: : : : : : : :

powershell 1.0.9567.1 2006-05-24 13:42:00 2760 powershell 1.0.9567.1 2006-05-24 13:54:28 3448

35

Obtention d'informations dtailles en utilisant Format-List avec des caractres gnriquesL'applet de commande Format-List vous permet d'utiliser un caractre gnrique comme valeur de son paramtre Property. Cela vous permet d'afficher des informations dtailles. Les objets incluent souvent plus d'informations que vous n'en avez besoin. C'est pourquoi, par dfaut, Windows PowerShell n'affiche pas toutes les valeurs de proprits. Pour afficher toutes les proprits d'un objet, utilisez la commande FormatList -Property *. La commande suivante gnre plus de 60 lignes de sortie pour un seul processus :Get-Process -Name powershell | Format-List -Property *

Bien que la commande Format-List soit pratique pour afficher le dtail, si vous souhaitez une vue d'ensemble de sortie comprenant de nombreux lments, un tableau plus simple est souvent plus utile.

Utilisation de Format-Table pour une sortie sous forme de tableauSi vous utilisez l'applet de commande Format-Table sans nom de proprit spcifi pour mettre en forme la sortie de la commande Get-Process, vous obtenez exactement la mme sortie que si vous n'aviez appliqu aucune mise en forme. La raison en est que les processus s'affichent habituellement sous forme de tableau, comme la plupart des objets Windows PowerShell.PS> Get-Process -Name powershell | Format-Table Handles ------1488 332 NPM(K) -----9 9 PM(K) ----31568 23140 WS(K) VM(M) ----- ----29460 152 632 141 CPU(s) -----3.53 1.06 Id -2760 3448 ProcessName ----------powershell powershell

Amlioration de la sortie de Format-Table (AutoSize)Bien qu'un affichage sous forme de tableau soit utile pour afficher de nombreuses informations comparables, il peut tre difficile interprter s'il est trop troit pour les donnes. Par exemple, si vous essayez d'afficher les proprits Path (chemin d'accs), Name (nom), ID et Company (socit) d'un processus, vous obtenez une sortie tronque pour le chemin d'accs du processus et la colonne Company :PS> Get-Process -Name powershell | Format-Table -Property Path,Name,Id,Company Path ---Name ---Id Company -- -------

36C:\Program Files... powershell 2836 Microsoft Corpor...

Si vous spcifiez le paramtre AutoSize (redimensionnement automatique) lorsque vous excutez la commande Format-Table, Windows PowerShell calculera les largeurs de colonnes en fonction des donnes qui seront effectivement affiches. La colonne Path devient ainsi lisible, mais la colonne Company reste tronque :PS> Get-Process -Name powershell | Format-Table -Property Path,Name,Id,Company AutoSize Path Name Id Company -------- ------C:\Program Files\Windows PowerShell\v1.0\powershell.exe powershell 2836 Micr...

L'applet de commande Format-Table peut encore tronquer des donnes, mais seulement la fin de l'cran. Les proprits, hormis la dernire affiche, se voient dotes d'une taille suffisante pour afficher correctement leur lment de donnes le plus long. Vous pouvez constater que le nom de la socit est visible, mais que le chemin d'accs est tronqu si vous changez les positions de Path et Company dans la liste de valeurs de Property :PS> Get-Process -Name powershell | Format-Table -Property Company,Name,Id,Path AutoSize Company Name Id Path ----------- ---Microsoft Corporation powershell 2836 C:\Program Files\Windows PowerShell\v1...

La commande Format-Table suppose que plus une proprit est proche du dbut la liste, plus elle est importante. Elle essaie donc d'afficher compltement les proprits les plus proches du dbut. Si la commande Format-Table ne peut pas afficher toutes les proprits, elle supprime des colonnes de l'affichage et fournit un avertissement. Vous pouvez observer ce comportement si vous placez la proprit Name en dernire position dans la liste :PS> Get-Process -Name powershell | Format-Table -Property Company,Path,Id,Name AutoSize AVERTISSEMENT : la colonne Name ne tient pas l'cran et a t supprime. Company I d ---------Microsoft Corporation C:\Program Files\Windows PowerShell\v1.0\powershell.exe 6 Path

37 Dans la sortie ci-dessus, la colonne ID est tronque pour la faire tenir dans la liste et les en-ttes de colonnes sont empils. Le redimensionnement automatique des colonnes ne produit pas toujours l'effet escompt.

Renvoi la ligne dans la sortie en colonnes de Format-Table (Wrap)Vous pouvez forcer le renvoi la ligne de longues donnes Format-Table dans sa colonne d'affichage en utilisant le paramtre Wrap. L'utilisation du seul paramtre Wrap ne donnera pas ncessairement le rsultat voulu, dans la mesure o les paramtres par dfaut sont utiliss si vous ne spcifiez pas galement AutoSize :PS> Get-Process -Name powershell | Format-Table -Wrap -Property Name,Id,Company, Path Name ---powershell Id Company Path -- ---------2836 Microsoft Corporati C:\Program Files\Wi on ndows PowerShell\v1 .0\powershell.exe

L'utilisation du paramtre Wrap seul prsente toutefois l'avantage de ne pas trop ralentir le traitement. Si vous effectuez un listage de fichiers rcursif sur un important systme de rpertoires et utilisez AutoSize, l'opration peut demander trs longtemps et utiliser beaucoup de mmoire avant que ne s'affichent les premiers lments de la sortie. Si vous ne vous proccupez pas de la charge systme, AutoSize fonctionne bien avec le paramtre Wrap. Les premires colonnes occupent toujours la largeur dont elles ont besoin pour afficher des lments sur une ligne, comme lorsque vous spcifiez AutoSize sans le paramtre Wrap. La seule diffrence est, s'il est ncessaire, le renvoi la ligne dans la dernire colonne :PS> Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Name,I d,Company,Path Name Id Company Path ----- ---------powershell 2836 Microsoft Corporation C:\Program Files\Windows PowerShell\v1.0\ powershell.exe

Certaines colonnes peuvent ne pas s'afficher si vous spcifiez en premier les colonnes les plus larges, de sorte qu'il est plus sr de spcifier d'abord les plus petits lments de donnes. Dans l'exemple suivant, nous spcifions en premier l'lment de chemin d'accs extrmement large, et mme avec le renvoi la ligne, nous perdons toujours la dernire colonne, Name :PS> Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Path,I d,Company,Name

38

AVERTISSEMENT : la colonne Name ne tient pas l'cran et a t supprime. Path Id Company ----- ------C:\Program Files\Windows PowerShell\v1.0\powershell.exe 2836 Microsoft Corporat ion

Organisation de la sortie en tableau (-GroupBy)GroupBy est un autre paramtre utile pour contrler la sortie sous forme de tableau. Il peut tre difficile de comparer de longues listes disposes en tableau. Le paramtre GroupBy effectue des regroupements dans la sortie selon une valeur de proprit. Par exemple, nous pouvons regrouper des processus par socit pour un examen plus facile, en omettant la valeur Company de la liste des proprits :PS> Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Name,I d,Path -GroupBy Company

Company: Microsoft Corporation Name Id Path ----- ---powershell 1956 C:\Program Files\Windows PowerShell\v1.0\powershell.exe powershell 2656 C:\Program Files\Windows PowerShell\v1.0\powershell.exe

Redirection de donnes avec les applets de commande Out-*Windows PowerShell fournit plusieurs applets de commande qui vous permettent de contrler directement la sortie des donnes. Ces applets de commande partagent deux caractristiques importantes. En premier lieu, elles transforment gnralement des donnes en texte. Elles le font parce qu'elles produisent des donnes destines des composants systme qui requirent du texte en entre. Cela signifie qu'elles doivent reprsenter les objets sous forme de texte. Par consquent, le texte est mis en forme tel que vous le voyez dans la fentre de la console Windows PowerShell. En second lieu, ces applets de commande utilisent le verbe Windows PowerShell Out, car elles font sortir les informations de Windows PowerShell. L'applet de commande Out-

39 Host ne fait pas exception : l'cran de la fentre de l'hte se trouve en dehors de Windows PowerShell. Ce point est important, car lorsque des donnes sont envoyes l'extrieur de Windows PowerShell, elles sont en fait supprimes. Vous pouvez l'observer si vous essayez de crer un pipeline qui pagine des donnes pour leur envoi la fentre de l'hte, puis tentez une prsentation sous forme de liste, comme illustr ici :PS> Get-Process | Out-Host -Paging | Format-List

Vous pouvez vous attendre ce que la commande affiche des pages d'informations de processus dans un format de liste. la place, elle affiche la liste tabulaire par dfaut :Handles ------101 ... 618 257 ... NPM(K) -----5 18 8 PM(K) ----1076 39348 9752 WS(K) VM(M) ----- ----3316 32 51108 16828 143 79 CPU(s) -----0.05 211.20 3.02 Id ProcessName -- ----------2888 alg 740 explorer 2560 explorer

page suivante ; ligne suivante ; Q quitter ...

L'applet de commande Out-Host envoie les donnes directement la console, de sorte que la commande Format-List ne reoit rien mettre en forme. La faon correcte de structurer cette commande consiste placer l'applet de commande Out-Host la fin du pipeline, comme indiqu ci-dessous. Les donnes de processus sont alors prsentes sous forme de liste avant d'tre pagines et affiches.PS> Get-Process | Format-List | Out-Host -Paging

Id Handles CPU Name ... Id Handles CPU Name Id Handles CPU Name ...

: : : :

2888 101 0.046875 alg

: : : : : : : :

740 612 211.703125 explorer 2560 257 3.015625 explorer

page suivante ; ligne suivante ; Q quitter

40...

Cette rgle est valable pour toutes les applets de commande Out. Une applet de commande Out doit toujours apparatre la fin du pipeline. Remarque : Toutes les applets de commande Out restituent la sortie sous forme de texte, en utilisant la mise en forme en vigueur pour la fentre de la console, y compris en ce qui concerne les limites de longueurs de lignes.

Pagination de la sortie de la console (Out-Host)Par dfaut, Windows PowerShell envoie les donnes la fentre de l'hte, ce que fait exactement l'applet de commande Out-Host. Ainsi que nous l'avons vu prcdemment, l'applet de commande Out-Host sert principalement paginer les donnes. Par exemple, la commande suivante utilise Out-Host pour paginer la sortie de l'applet de commande Get-Command :PS> Get-Command | Out-Host -Paging

Vous pouvez galement utiliser la fonction more pour paginer des donnes. Dans Windows PowerShell, more est une fonction qui appelle Out-Host -Paging. La commande suivante montre l'utilisation de la fonction more pour paginer la sortie de GetCommand :PS> Get-Command | more

Si vous incluez un ou plusieurs noms de fichiers comme arguments de la fonction more, celle-ci lira les fichiers spcifis et paginera leur contenu en vue de leur envoi l'hte :PS> more c:\boot.ini [boot loader] timeout=5 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] ...

Suppression de la sortie (Out-Null)L'applet de commande Out-Null est conue pour supprimer immdiatement toute entre qu'elle reoit. Cela est particulirement utile pour supprimer les donnes inutiles que vous obtenez comme effet secondaire de l'excution d'une commande. Lorsque vous tapez la commande suivante, vous ne rcuprez rien de la commande :PS> Get-Command | Out-Null

41 L'applet de commande Out-Null ne supprime pas la sortie d'erreurs. Par exemple, si vous entrez la commande suivante, un message s'affiche pour vous informer que Windows PowerShell ne reconnat pas Is-NotACommand :PS> Get-Command Is-NotACommand | Out-Null Get-Command : Le terme Is-NotACommand n'est pas reconnu en tant qu'applet de commande, fonction, programme excutable ou fichier de script. la ligne : 1 Caractre : 12 + Get-Command Get-Command | Out-File -FilePath c:\temp\output.txt

La sortie ressemblera celle-ci :CommandType ----------Cmdlet Cmdlet ... Name ---Add-Content Add-History Definition ---------Add-Content [-Path] Set-Location -Path C:\Windows

Aprs avoir entr la commande, vous remarquerez que vous ne recevez aucune information sur l'effet produit. La plupart des commandes Windows PowerShell qui effectuent une action gnrent peu ou pas de sortie, car celle-ci n'est pas toujours utile. Pour vrifier que le changement de rpertoire a bien t effectu, lorsque vous entrez la commande Set-Location, incluez le paramtre -PassThru :PS> Set-Location -Path C:\Windows -PassThru Path ---C:\WINDOWS

Le paramtre -PassThru peut tre utilis avec de nombreuses commandes Set dans Windows PowerShell afin de retourner des informations sur le rsultat lorsque aucune sortie n'est fournie par dfaut. Vous pouvez spcifier des chemins d'accs relatifs votre emplacement actuel de la mme faon que dans la plupart des environnements de commande UNIX et Windows. Dans la notation standard des chemins d'accs relatifs, un point (.) reprsente votre dossier actif et deux points (..) reprsentent le rpertoire parent de votre emplacement actuel. Par exemple, si vous vous trouvez dans le dossier C:\Windows, un point (.) reprsente C:\Windows et deux points (..) reprsentent C:. Vous pouvez faire de la racine du lecteur C: votre emplacement actuel en tapant :PS> Set-Location -Path .. -PassThru Path ---C:\

La mme technique fonctionne sur les lecteurs Windows PowerShell qui ne sont pas des lecteurs de systme de fichiers, tels que HKLM:. Vous pouvez dfinir votre emplacement sur la cl HKLM\Software du Registre en tapant :PS> Set-Location -Path HKLM:\SOFTWARE -PassThru Path ---HKLM:\SOFTWARE

45 Vous pouvez ensuite remplacer l'emplacement du rpertoire par le rpertoire parent, qui est la racine du lecteur Windows PowerShell HKLM: en utilisant un chemin d'accs relatif :PS> Set-Location -Path .. -PassThru Path ---HKLM:\

Vous pouvez taper Set-Location ou utiliser l'un des alias Windows PowerShell intgrs pour Set-Location (cd, chdir ou sl). Par exemple :cd -Path C:\Windows chdir -Path .. -PassThru sl -Path HKLM:\SOFTWARE -PassThru

Enregistrement et rappel des emplacements rcents (PushLocation et Pop-Location)Lorsque vous changez d'emplacement, il est utile de conserver une trace des emplacements antrieurs et de pouvoir y retourner. L'applet de commande PushLocation de Windows PowerShell cre un historique ordonn (une pile ) des chemins d'accs aux rpertoires o vous tes all, et vous pouvez remonter cet historique au moyen de l'applet de commande complmentaire Pop-Location. Par exemple, une session de Windows PowerShell dmarre en gnral dans le rpertoire de base de l'utilisateur.PS> Get-Location Path ---C:\Documents and Settings\PowerUser

Remarque : Le mot pile a une signification spciale dans de nombreux paramtres de programmation, y compris le .NET. Comme pour une pile physique d'lments, le dernier lment que vous placez sur la pile est le premier que vous pouvez en

46 extraire. L'ajout d'un lment une pile est souvent appel opration push . L'extraction d'un lment de la pile est souvent appele opration pop . Pour placer l'emplacement actuel sur la pile, puis passer au dossier Local Settings, tapez :PS> Push-Location -Path "Local Settings"

Vous pouvez ensuite placer l'emplacement Local Settings sur la pile et passer au dossier Temp en tapant :PS> Push-Location -Path Temp

Vous pouvez vrifier que vous avez chang de rpertoire en entrant la commande GetLocation :PS> Get-Location Path ---C:\Documents and Settings\PowerUser\Local Settings\Temp

Vous pouvez ensuite revenir au rpertoire le plus rcemment visit en entrant la commande Pop-Location, et vrifier la modification en entrant la commande GetLocation :PS> Pop-Location PS> Get-Location Path ---C:\Documents and Settings\me\Local Settings

Comme avec Set-Location, vous pouvez inclure le paramtre -PassThru lorsque vous entrez l'applet de commande Pop-Location pour afficher le rpertoire que vous avez entr :PS> Pop-Location -PassThru Path ---C:\Documents and Settings\PowerUser

Vous pouvez galement utiliser les applets de commande Location avec des chemins d'accs rseau. Si vous disposez d'un serveur FS01 sur lequel il existe un partage nomm Public, vous pouvoir modifier votre emplacement en tapant :

47Set-Location \\FS01\Public

ouPush-Location \\FS01\Public

Vous pouvez utiliser les commandes Push-Location et Set-Location pour remplacer l'emplacement par tout lecteur disponible. Par exemple, si vous disposez d'un lecteur de CD-ROM local mapp la lettre D qui contient un CD de donnes, vous pouvez accder l'emplacement du lecteur de CD en entrant la commande Set-Location D:. Si le lecteur est vide, le message d'erreur suivant s'affiche :PS> Set-Location D: Set-Location : Impossible de trouver le chemin d'accs D:\ , car il n'existe pas.

Lorsque vous utilisez une interface de ligne de commande, l'utilisation de l'Explorateur Windows pour examiner les lecteurs physiques disponibles n'est pas pratique. En outre, l'Explorateur Windows ne vous montre pas tous les lecteurs Windows PowerShell. Windows PowerShell fournit un jeu de commandes pour la gestion de ses lecteurs, comme nous allons le voir dans la prochaine section.

Gestion des lecteurs Windows PowerShellUn lecteur Windows PowerShell est un emplacement de magasin de donnes auquel vous pouvez accder de la mme manire que pour un lecteur de systme de fichiers dans Windows PowerShell Les fournisseurs de Windows PowerShell crent des lecteurs pour vous, comme les lecteurs de systme de fichiers (y compris C: et D:), les lecteurs de Registre (HKCU: et HKLM:) et le lecteur de certificats (Cert:), mais vous pouvez aussi crer les vtres. Ces lecteurs sont trs utiles, mais ils ne sont disponibles que dans Windows PowerShell. Vous ne pouvez pas y accder en utilisant d'autres outils Windows, tels que l'Explorateur Windows ou Cmd.exe. Windows PowerShell utilise le substantif PSDrive pour les commandes qui fonctionnent avec les lecteurs Windows PowerShell. Pour obtenir une liste des lecteurs Windows PowerShell de votre session, utilisez l'applet de commande Get-PSDrive.PS> Get-PSDrive

48Name ---A Alias C cert D Env Function HKCU HKLM Variable Provider -------FileSystem Alias FileSystem Certificate FileSystem Environment Function Registry Registry Variable Root ---A:\ C:\ \ D:\ CurrentLocation ---------------

...And Settings\me

HKEY_CURRENT_USER HKEY_LOCAL_MACHINE

Bien que les lecteurs affichs varient selon les lecteurs prsents sur votre systme, la liste sera similaire la sortie de la commande Get-PSDrive prsente ci-dessus. Les lecteurs de systme de fichiers sont un sous-ensemble des lecteurs Windows PowerShell. Les lecteurs de systme de fichiers sont identifiables l'entre FileSystem de la colonne Provider (fournisseur). (Les lecteurs de systme de fichiers de Windows PowerShell sont pris en charge par le fournisseur FileSystem (systme de fichiers) de Windows PowerShell.) Pour consulter la syntaxe de l'applet de commande Get-PSDrive, tapez une commande Get-Command avec le paramtre Syntax :PS> Get-Command -Name Get-PSDrive -Syntax Get-PSDrive [[-Name] ] [-Scope ] [-PSProvider ] [-V erbose] [-Debug] [-ErrorAction ] [-ErrorVariable ] [OutVariable ] [-OutBuffer ]

Le paramtre PSProvider vous permet d'afficher uniquement les lecteurs Windows PowerShell pris en charge par un fournisseur particulier. Par exemple, pour afficher uniquement les lecteurs Windows PowerShell pris en charge par le fournisseur FileSystem de Windows PowerShell, tapez une commande Get-PSDrive avec le paramtre PSProvider et la valeur FileSystem :PS> Get-PSDrive -PSProvider FileSystem Name ---A C D Provider -------FileSystem FileSystem FileSystem Root ---A:\ C:\ D:\ CurrentLocation --------------...nd Settings\PowerUser

Pour consulter les lecteurs Windows PowerShell qui reprsentent des ruches du Registre, utilisez le paramtre PSProvider afin d'afficher uniquement les lecteurs Windows PowerShell pris en charge par le fournisseur Registry de Windows PowerShell :

49PS> Get-PSDrive -PSProvider Registry

Name ---HKCU HKLM

Provider -------Registry Registry

Root ---HKEY_CURRENT_USER HKEY_LOCAL_MACHINE

CurrentLocation ---------------

Vous pouvez galement utiliser les applets de commande Location standard avec les lecteurs Windows PowerShell :PS> Set-Location HKLM:\SOFTWARE PS> Push-Location .\Microsoft PS> Get-Location

Path ---HKLM:\SOFTWARE\Microsoft

Ajout de nouveaux lecteurs Windows PowerShell (NewPSDrive)Vous pouvez ajouter vos propres lecteurs Windows PowerShell en utilisant la commande New-PSDrive. Pour obtenir la syntaxe de la commande New-PSDrive, entrez la commande Get-Command avec le paramtre Syntax :PS> Get-Command -Name New-PSDrive -Syntax New-PSDrive [-Name] [-PSProvider] [-Root] [-Descript ion ] [-Scope ] [-Credential ] [-Verbose] [-Debug ] [-ErrorAction ] [-ErrorVariable ] [-OutVariable ] [-OutBuffer ] [-WhatIf] [-Confirm]

Pour crer un lecteur Windows PowerShell, vous devez fournir trois paramtres : le nom du lecteur (vous pouvez utiliser tout nom Windows PowerShell valide) ; le fournisseur Windows PowerShell (utilisez FileSystem pour les emplacements du systme de fichiers et Registry pour les emplacements du Registre) ; la racine, autrement dit, le chemin d'accs la racine du nouveau lecteur.

Par exemple, vous pouvez crer un lecteur nomm Office mapp au dossier qui contient les applications Microsoft Office de votre ordinateur, comme C:\Program Files\Microsoft Office\OFFICE11. Pour crer le lecteur, tapez la commande suivante :PS> New-PSDrive -Name Office -PSProvider FileSystem -Root "C:\Program Files\Micr

50osoft Office\OFFICE11" Name ---Office Provider -------FileSystem Root ---C:\Program Files\Microsoft Offic... CurrentLocation ---------------

Remarque : En rgle gnrale, les chemins d'accs ne respectent pas la casse. La rfrence au nouveau lecteur Windows PowerShell obit au mme schma que pour tout autre lecteur Windows PowerShell : vous spcifiez son nom, suivi des deux-points (:). Un lecteur Windows PowerShell peut simplifier bon nombre de tches. Par exemple, certaines des cls les plus importantes du Registre Windows ont des chemins d'accs extrmement longs, ce qui rend leur accs et leur mmorisation quelque peu fastidieux. Des informations de configuration essentielles rsident sous HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion. Pour afficher et modifier des lments de la cl de Registre CurrentVersion, vous pouvez crer un lecteur Windows PowerShell qui aura cette cl pour racine en tapant :PS> New-PSDrive -Name cvkey -PSProvider Registry -Root HKLM\Software\Microsoft\W indows\CurrentVersion

Name ---cvkey

Provider -------Registry

Root ---HKLM\Software\Microsoft\Windows\...

CurrentLocation ---------------

Vous pouvez ensuite accder au lecteur cvkey: comme avec n'importe quel autre lecteur :PS> cd cvkey:

- ou PS> Set-Location cvkey: -PassThru

Path ---cvkey:\

L'applet de commande New-PsDrive ajoute le nouveau lecteur uniquement la session de console active. Si vous quittez la console ou fermez la fentre Windows PowerShell, le nouveau lecteur est perdu. Pour enregistrer un lecteur Windows PowerShell, utilisez

51 l'applet de commande Export-Console afin d'exporter la console active, puis le paramtre de PowerShell.exe PSConsoleFile pour l'importer dans une nouvelle session. Vous pouvez aussi ajouter le nouveau lecteur votre profil Windows PowerShell.

Suppression de lecteurs Windows PowerShell (RemovePSDrive)Vous pouvez supprimer des lecteurs Windows PowerShell en utilisant l'applet de commande Remove-PSDrive. L'applet de commande Remove-PSDrive est facile utiliser ; pour supprimer un lecteur Windows PowerShell spcifique, vous fournissez simplement son nom. Par exemple, si vous avez ajout le lecteur Windows PowerShell Office:, comme vu dans la rubrique New-PSDrive, vous pouvez le supprimer en tapant :PS> Remove-PSDrive -Name Office

Pour supprimer le lecteur Windows PowerShell cvkey:, galement vu dans la rubrique New-PSDrive, utilisez la commande suivante :PS> Remove-PSDrive -Name cvkey

Il est facile de supprimer un lecteur Windows PowerShell, mais vous ne pouvez pas le faire tant que vous vous trouvez sur ce lecteur. Par exemple :PS> cd office: PS Office:\> remove-psdrive -name office Remove-PSDrive : Impossible de supprimer le lecteur Office , car il est en cours d'utilisation. la ligne : 1 Caractre : 15 + remove-psdrive Get-ChildItem -Path C:\WINDOWS -Recurse Rpertoire : Microsoft.Windows PowerShell.Core\FileSystem::C:\WINDOWS Rpertoire : Microsoft.Windows PowerShell.Core\FileSystem::C:\WINDOWS\AppPatch Mode ----a--... LastWriteTime ------------2004-08-04 8:00 AM Length Name ------ ---1852416 AcGenral.dll

Filtrage d'lments par nom (-Name)Pour afficher uniquement les noms des lments, utilisez le paramtre Name de GetChildItem :PS> Get-ChildItem -Path C:\WINDOWS -Name addins AppPatch assembly ...

Listage forc des lments masqus (-Force)Les lments qui sont normalement invisibles dans l'Explorateur Windows ou Cmd.exe n'apparaissent pas dans la sortie d'une commande Get-ChildItem. Pour afficher des lments masqus, utilisez le paramtre Force de Get-ChildItem. Par exemple :Get-ChildItem -Path C:\Windows -Force

Ce paramtre est nomm Force parce que vous pouvez remplacer de force le comportement normal de la commande Get-ChildItem. Force est un paramtre largement utilis qui force une action qu'une applet de commande n'excuterait pas normalement, l'exception des actions susceptibles de compromettre la scurit du systme.

Mise en correspondance de noms d'lments avec des caractres gnriquesLa commande Get-ChildItem accepte des caractres gnriques dans le chemin d'accs des lments rpertorier.

54 Parce que la concordance par caractres gnriques est contrle par le moteur Windows PowerShell, toutes les applets de commande qui acceptent des caractres gnriques utilisent la mme notation et prsentent le mme comportement de mise en correspondance. La notation gnrique de Windows PowerShell inclut : l'astrisque (*), qui fait correspondre zro ou plusieurs occurrences de tout caractre ; le point d'interrogation (?), qui correspond exactement un caractre ; Les caractres crochet gauche