Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Objectif
Lobjectif de ce document est de vous faire dcouvrir un langage de scripts orient objets sous environnement
Windows avec comme fil conducteur ladministration de machines et dutilisateurs. Ce cours a t construit avec
la version 2 de Powershell; ce qui peut expliquer un certain nombre de diffrences si vous utilisez la version 3. Par
exemple, il n'y a plus d'aide en franais. En effet, afin d'avoir une aide constamment jour, Microsoft a dcid de
ne maintenir qu'une aide en anglais.
Une aide en ligne est disponible cette adresse http://technet.microsoft.com/fr-fr/library/bb978525.aspx mais
vous dcouvrirez des commandes qui permettent d'obtenir de l'aide automatiquement.
Il est demand que chaque tudiant envoi un mail la fin de chaque sance denis.pallez@unice.fr ayant
comme sujet [LPSIL_ADMIN] et contenant le fichier PDF (les rponses aux questions auront t saisies dans les
cadres Rponse ) renomm de la faon suivante <Nom tudiant>_TP<N du TP ou de la sance>_<date du TP en
anglais>.zip. Exemple de nom de fichier Pallez_TP1_20130909.pdf. Tout manquement cette rgle entranera la
note de 0 pour le TP.
Cmdlets qui excutent des tches dadministration systme courantes, par exemple la gestion du
Registre, des services, des processus et des journaux dvnements, ainsi que lutilisation de
linfrastructure WMI (Windows Management Instrumentation) ;
Langage de script bas sur les tches et une prise en charge des scripts et des outils en ligne de
commande existants ;
Conception cohrente. Dans la mesure o les magasins de donnes systme et les cmdlets
Windows PowerShell utilisent une syntaxe et des conventions daffectation de noms communes,
les donnes peuvent tre partages facilement ; en outre, la sortie dune cmdlet peut servir
dentre pour une autre cmdlet sans nouvelle mise en forme ou manipulation ;
Navigation simplifie au sein du systme dexploitation laide de commandes, ce qui permet aux
utilisateurs de naviguer dans le Registre et dautres magasins de donnes de la mme faon que
dans le systme de fichiers ;
Puissantes fonctionnalits de manipulation dobjets. Les objets peuvent tre manipuls
directement ou envoys vers dautres outils ou bases de donnes ;
Interface extensible. Les diteurs de logiciels indpendants et les dveloppeurs professionnels
peuvent crer des outils et utilitaires personnaliss afin dadministrer leurs logiciels.
La console PowerShell (PS) qui interprte les commandes en ligne (Figure 1 gauche),
Un environnement graphique de dveloppement de scripts PowerShell Integrated Scripting
Environment (PS-ISE) (Figure 1 droite).
Pour lancer PS, aller dans le menu Dmarrer > Tous les Programmes > Accessoires >
Windows PowerShell et choisissez linterface souhaite. Vous pouvez galement choisir entre une version
32 bits (x86) ou 64 bits. Il est galement possible de lancer PS avec l'interprteur classique de commandes de
Windows (cmd.exe) avec la commande powershell.
Pour ceux qui ne connatraient pas la notion de ligne de commande, visitez les pages suivantes :
http://fr.wikipedia.org/wiki/Interpr%C3%A9teur_de_commandes et http://fr.wikipedia.org/wiki/Cmd.exe.
Rponse :
Exercice 2 Dans l'interprteur de commandes Windows (cmd.exe), afficher laide (help) de la commande
Powershell. Comment peut-on excuter la commande Get-ChildItem de PowerShell tout en restant
en ligne de commande Windows mais en minimisant la fentre courante ? Que fait l'instruction Get-
ChildItem ?
Rponse :
Exercice 3 Testez la cmdlet Get-Variable sans prciser de variable prcise. Quel est le rsultat ? Quelle est
la valeur de PSHOME ?
Rponse :
Vous trouverez ci-dessous un tableau des verbes les plus communs pour les cmdlets :
Afin davoir une ide plus prcise de lutilit des prcdentes cmdlet, vous trouverez ci-dessous un tableau
rsumant les cmdlet souvent utiliss des fins dadministration :
Read-Host/ Write-Host/ Clear-Host Lecture dans / Ecriture dans / Efface la fentre hte
Rename-Computer/ Stop-Computer/ Renomme / Arrte / Redmarre un ordinateur
Restart-Computer
Reset-ComputerMachinePassword Rinitialise le mot de passe du compte de l'ordinateur
Exercice 4 Affichez laide disponible pour la cmdlet remove-item. Ensuite faites de mme en incluant les
exemples. Vous pouvez demander de laide sur laide ! Testez galement la commande help. Quelles
diffrences observez-vous ?
Rponse :
Si vous cherchez de laide pas forcment sur une instruction mais plutt sur une instruction basique ou sur des
concepts de base, utilisez linstruction Get-Help about ou help about.
Exercice 5 Quelles sont les cmdlets PS pour excuter ces tches : (1) copier / (2) dplacer un fichier dans un
rpertoire diffrent du rpertoire courant, (3) changer de rpertoire, (4) renommer un fichier, (5) crer /
supprimer (6) un rpertoire, (7) supprimer un fichier, (8) afficher le contenu dun fichier
Rponse :
La commande Get-Help donne de laide sur des choses pour lesquelles des fichiers daide sont disponibles dans
PS. La commande Get-Command est complmentaire Get-Help puisquelle donne de laide sur des choses
qui peuvent tre excutes comme les cmdlets, les fonctions, les scripts, et mme des fichiers Windows. Il est
galement possible d'afficher l'aide d'une seule commande disponible chez Microsoft en utilisant l'option
-online.
Rponse :
Exercice 7 Il est galement possible dutiliser Get-Command pour dcouvrir les commandes possibles sur un
thme particulier. Par exemple, vous ne vous souvenez plus des commandes lies aux processus. Saisissez la
cmdlet Get-Command *process*. En utilisant l'aide, afficher que les fonctions.
Rponse :
Exercice 8 Rcuprez la version de PS qui sexcute sur votre machine ? Rcuprer uniquement la valeur et pas
toutes les informations (pour cela, utilisez laide) ? Cest un premier aperu de la notion dobjets.
Rponse :
Exercice 9 quoi correspond lalias gal et essayer de trouver lalias de Get-Content ? Est-il possible
davoir plusieurs alias pour la mme commande ?
Rponse :
Exercice 10 La couleur vous parait horrible ! Cest normal, pour moi aussi. Fermez la console et relancer PS. Que
constatez-vous ?
Rponse :
Comme vous ne souhaitez pas personnaliser votre console chaque fois que vous en ouvrez une, il est possible
de la personnaliser par dfaut en modifiant votre profile. Les informations sur votre profile peuvent tre
contenues dans quatre fichiers diffrents. Pourquoi autant ? Les informations de configuration peuvent tre
appliques pour tous les utilisateurs ou pour un seul. Vous pouvez excuter PS en ligne de commande ou via un
outil tiers. Les 4 fichiers correspondent aux diffrentes combinaisons possibles.
Exercice 11 Tapez la commande $profile pour savoir o se trouve votre profile. Par dfaut, votre profile PS se
trouve dans le fichier nomm Microsoft.PowerShell_profile.ps1 dans le rpertoire
WindowsPowerShell de votre rpertoire MesDocuments. Il se peut que ce fichier nexiste pas encore et
dans ce cas, PS prend des valeurs par dfaut. Crez ce fichier (mme vide) dans le bon rpertoire. Modifiez ce
fichier avec la ligne suivante : $Host.UI.RawUI.WindowTitle=Mon Windows PowerShell
Personalis!. Relancer PS.
Rponse :
Malheureusement, PowerShell sexcute mais avec une erreur et lcran suivant saffiche :
Ceci est normal : par dfaut, PS ne vous laissera pas excuter de scripts (y compris votre profile) tant quil naura
pas t sign par un certificat pour des raisons de scurit. Ceci fera lobjet dun travail ultrieur mais pour
linstant, pour voir si votre profil fonctionne, il faut changer le comportement par dfaut de PS en lui donnant la
possibilit dexcuter des scripts locaux avec la commande suivante : Set-ExecutionPolicy
RemoteSigned. En acceptant la modification de la stratgie dexcution, il se peut que vous ayez une autre
erreur qui vous prcise que vous navez pas accs la base de registre. Pour rsoudre ce problme, vous devez
relancer PS en tant quadministrateur (clic-droit sur le programme Windows PowerShell et choisir loption
Excuter en tant quadministrateur). Si vous souhaitez revenir comme avant, utiliser la valeur
Restricted la place de RemoteSigned.
Vous pouvez galement modifier votre profile en saisissant la commande Set-PSDebug -Strict qui
autorisera PS se plaindre quand vous utiliserez une variable qui na pas t initialise. Ensuite, saisissez la
commande $ErrorActionPreference = "stop" qui autorisera PS sarrter ds quun script contiendra
une erreur. Pendant la saisie dune commande, pensez utiliser la touche <TAB> pour utiliser la compltion.
La plus simple consiste modifier votre profil et stocker les scripts cet endroit. Toutefois, vous prfrez peut
tre avoir des fichiers spars pour vos scripts. Pour cela, il est possible dajouter les noms de fichiers au profile
pour quils soient tlchargs et accessibles. Il suffit dajouter la ligne suivante votre profil :
. c:\foo\bar\myfunctions.ps1
Exercice 12 Une autre option consiste crer un disque spcifique, connu uniquement de PS, pour toutes vos
fonctions ou scripts. crivez la commande qui permet de le faire en utilisant new-Psdrive. vitez toutes
interactions avec lutilisateur ; toutes les informations doivent se trouver dans la commande. Vous pourrez
excuter vos scripts en tapant scripts:myscript.ps1 si le disque cr sappelle scripts. Testez la
cration de ce disque en crant un script qui affiche les processus courants.
Rponse :
Exercice 13 Fermez PS. Relancer le et excutez le dernier script cr. Que se passe-t-il ? Pourquoi ?
Rponse :
Exercice 14 Faites en sorte que le disque spcifique cr prcdemment scripts soit connu chaque
lancement de PS (cf. ). Choisissez bien le chemin que vous allez utiliser car nous allons lutiliser dans le reste
du cours.
Rponse :
Exercice 15 Modifier le profile de PS-ISE en ajoutant un sous-menu personnalis qui ajoute une commande qui
affiche les processus courants. Pour cela, utilisez la mthode Add("Nom du sous-menu", {votre-
Commande},"Raccourci-clavier") sur la collection prcdente afin dobtenir le rsultat ci-dessous :
Rponse :