Académique Documents
Professionnel Documents
Culture Documents
68=<',*,7$/81,9(56(
2
Scripting Linux et PowerShell
Coté Système d’Exploitation: Ils sont utilisés pour automatiser des taches
d’administration.
Coté Serveurs Web: Ils sont utilisés pour la génération des pages
Dynamiques (PHP, ASP, ASP.NET).
68=<',*,7$/81,9(56(
3
Scripting Linux et PowerShell
Dans le cadre de cette formation, nous allons les utiliser pour l’automatisation des
taches d’administration.
68=<',*,7$/81,9(56(
4
Scripting Linux et PowerShell
Un des intérêts majeurs des scripts par rapport aux langages de programmation
classiques est qu’il faut peu d’instructions pour arriver à faire la même chose pour des
opérations similaires. La syntaxe est généralement simplifiée et la programmation
moins contraignante. De plus, le code source d’un script est toujours accessible.
68=<',*,7$/81,9(56(
5
Scripting Linux et PowerShell
- Classe : Une classe représente une catégorie d’Objets. Elle apparaît aussi
comme un moule ou une usine à partir de laquelle il est possible de créer
des objets ; c'est en quelque sorte une « boîte à outils » qui permet de
fabriquer des Objets. Les Objets de la Classe possèdent les propriétés de la
classe.
- Objets : C’est un conteneur qui contient des informations et des
mécanismes.il hérite son comportement et ses caractéristiques de la
classe qui a permis de le créer.
D’autre part, PowerShell est fourni avec un jeu de commandes extrêmement
riche qui ne cesse de croître à chaque nouvelle version. Dès la version 3, on
dénombrait déjà environ douze fois plus de commandes que celles présentes
dans l’interpréteur CMD.exe. Néanmoins il faut noter que les commandes Dos
sont toujours utilisables dans PowerShell.
Enfin, sachez qu’il existe une aide en ligne intégrée à la console que vous pouvez
solliciter à tout moment et qui est très complète.
Tous les points que nous venons de vous exposer font de PowerShell un langage
de script très puissant mais surtout facile à apprendre, y compris pour ceux qui
n’ont jamais touché à la programmation.
Entre 2003-2004: Microsoft prend conscience qu’il lui manque un véritable langage
de script homogène qui permettrait d’administrer entièrement l’ensemble de ses
Systèmes en lignes de commandes.
En 2006 le projet Monad a donc donné naissance fin 2006 à la première version de
PowerShell. En termes de fonctionnalités apparues au fil des années nous avons :
Version 1 : fonctionnalités initiales.
Présenté et rédigé par SDU
68=<',*,7$/81,9(56(
6
Scripting Linux et PowerShell
3- Démarrage de la console
Lorsque l’on démarre la console PowerShell, il faut savoir que cette dernière
s’exécute avec des droits de simple utilisateur et donc limité ; et ce, même si l’on a
ouvert notre session avec un compte administrateur. Ne soyez donc pas surpris si
vous vous voyez l’accès refusé à certains répertoires, à certaines clés de registre ou
à certaines commandes.
Présenté et rédigé par SDU
68=<',*,7$/81,9(56(
7
Scripting Linux et PowerShell
4- La console classique
La seule différence majeure c’est la couleur de fond bleue pour PowerShell et noire
pour CMD.
68=<',*,7$/81,9(56(
8
Scripting Linux et PowerShell
5- L’Environnement ISE
68=<',*,7$/81,9(56(
9
Scripting Linux et PowerShell
Ainsi dans PowerShell de nombreux verbes génériques tels que Get, Set, Add,
Remove, etc. se combinent avec différents noms comme Path, Variable, Item,
Object, Computer, etc.
Présenté et rédigé par SDU
68=<',*,7$/81,9(56(
10
Scripting Linux et PowerShell
7- La commande Get-Command
Si d’aventure vos capacités mémoire sont telles qu’il est difficile pour vous de retenir quoi
que ce soit, je vous conseille au moins de ne retenir que cette commande.
Car elle permet de découvrir toutes les autres commande s PowerShell.
Lorsqu’elle est exécutée sans paramètre elle retourne tout, c-à-d. en plus des
commandes elle liste également les Alias, les fonctions, etc.
Exemple1 : A f f i c h o n s uniquement les Commande lette en ajoutant:
-CommandType : Paramètre qui permet de préciser le type de commande à afficher.
Cmdlet : suivi du type de commande.
Get-Command –CommandType Cmdlet
Exemple2 : Nous allons également afficher toutes les commandes dont le verbe est
Write qui signifie écrire en utilisant le paramètre -Verb
Get-Command –Verb Write
Comme expliqué plus haut Nous pouvons aussi obtenir des commandes d’un certain
type, dont les plus utilisées sont : alias, function, cmdlet, externalscript, application,
etc.
Exemple3 : Affichons seulement les Alias
Get-Command –CommandType Alias
Exemple4
Si vous êtes à la recherche d’une commande dont vous ignorez le nom, mais si
vous savez (ou supposez) que la commande doit vous fournir de l’information, il est
fort possible qu’elle commence par le verbe Get. Dans ces conditions, vous pouvez
faire ceci :
Get-Command Get* ou Get-Command Get-*
68=<',*,7$/81,9(56(
11
Scripting Linux et PowerShell
8- La commande Get-Help
68=<',*,7$/81,9(56(
12
Scripting Linux et PowerShell
Au premier regard, ce qui attire l’œil, c’est le nom donné à chaque colonne ;
mais intéressons-nous à la colonne Mode.
Celle-ci indique la nature des objets à l’intérieur du système de fichiers. Voici les
valeurs possibles :
d : pour un répertoire.
a : pour une archive.
r : pour un objet en lecture seule.
h : pour un objet caché.
s : pour un objet système.
Exemple 2
Pour afficher les fichiers cachés, ajoutez à la commande Get-Childitem le
paramètre -Force.
Get-Childitem c:\Windows –Force
Exemple 5
Afficher les fichiers dont la taille est supérieure à 32 Ko :
Get-ChildItem C:\Windows | Where-Object {$_.Length -gt 32KB}
| : Le Pipe, est un filtre qui permet de récupérer chaque objet pour l’appliquer à
l’instruction Where-Object donc à la commande qui suit.
$_ : indique qu’on traite l’objet courant
Length : C’est la propriété Lenght, la colonne lenght qui est traitée
-gt Opérateur qui signifie supérieur à 32 kb.
10- Manipulation des fichiers et des répertoires avec les commandes Get-
Childitem, Set-location, Get-location, New-item, Remove-Item, Move-
Item, Rename-Item et copy-item
Présenté et rédigé par SDU
68=<',*,7$/81,9(56(
13
Scripting Linux et PowerShell
Un attribut est une propriété spéciale d’un fichier ou dossier qui définit sa
nature. Depuis PowerShell 3.0, cinq attributs sont présents.
68=<',*,7$/81,9(56(
14
Scripting Linux et PowerShell
Exemple 1
Etant dans le dossier C:\Users\Administrateur> je voudrais aller à la racine de
mon disque C
Set-Location C:\
La commande Get-Location (Alias : gl, pwd)
Exemple 1
Afficher le chemin de l’emplacement dans lequel je me trouve
Get-Location
Cette commande permet de créer des répertoires mais aussi des fichiers. Voici
quelques un de ses paramètres.
Paramètre Description
-Path Chemin d’accès de l’élément à créer (ex : C:\test).
-Itemtype Type d’élément à créer : file pour un fichier, directory
Pour un dossier.
-Name Nom du nouvel élément à créer.
-Value Contenu de l’élément à créer (ex : "Salut les gars !"
dans le cas d’un fichier texte).
Exemple 1
68=<',*,7$/81,9(56(
15
Scripting Linux et PowerShell
68=<',*,7$/81,9(56(
16
Scripting Linux et PowerShell
Exemple 1
Déplacez tous les fichiers .txt contenus dans le dossier C:\SKILLS vers C:\TXT
Exemple 2
Déplacer le fichier fiche2018.txt qui se trouve dans SKILLS vers le dossier
C:\COMPTE et le renommer en fiche2019
68=<',*,7$/81,9(56(
17
Scripting Linux et PowerShell
La commande Rename-Item
Cette commande permet de renommer un fichier ou un dossier. Celle-ci n’est
que moyennement utile dans la mesure où elle fait double emploi avec sa
cousine Move-Item. Ceci étant, il y a peut-être certains cas, que nous ne
connaissons pas encore, dans lesquels elle trouverait son utilité… Peut-être pour
éviter de confondre renommage et déplacement comme dans l’exemple
précédent.
Exemple 1
Nous allons renommer le dossier C:\SKILLS en C:\SKILLS2018
Exemple 2
68=<',*,7$/81,9(56(