aujourd’hui : introduction à powershell

32
Aujourd’hui : Introduction à PowerShell Objectifs : Identifier l’utilité de PowerShell et le contexte d’utilisation. Reproduire les commandes de base.

Upload: sibyl

Post on 11-Jan-2016

67 views

Category:

Documents


1 download

DESCRIPTION

Aujourd’hui : Introduction à PowerShell. Objectifs : Identifier l’utilité de PowerShell et le contexte d’utilisation. Reproduire les commandes de base. PowerShell : historique. U n language de script orienté objet développé par Microsoft. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Aujourd’hui : Introduction à PowerShell

Aujourd’hui : Introduction à PowerShell

Objectifs :

Identifier l’utilité de PowerShell et le contexte d’utilisation.

Reproduire les commandes de base.

Page 2: Aujourd’hui : Introduction à PowerShell

PowerShell : historique.

Un language de script orienté objet développé par Microsoft. Il s’appuie sur le framework Microsoft .NET et est désormais

directement intégré aux nouveaux systèmes d’exploitation Windows 7 et Windows Server 2008.

Powershell est compatible avec toutes les versions de Windows qui supportent .NET 2.0.

  PowerShell est supporté aujourd’hui uniquement par les

systèmes suivants: Windows XP Service Pack 2 Windows Server 2003 Service Pack 1 Windows Vista Windows Seven Windows Server 2008

Page 3: Aujourd’hui : Introduction à PowerShell

PowerShell : c’est quoi en fait ?

Un langage de scripting (automatique vs manuel) ex: creation des comptes utilisateurs.

Interpreteur de commandes.

Vous ne manipulez pas juste des textes mais le plus souvent des objets associés au Framwork .Net.

Fournis aussi avec un jeu de commandes très riches.

Une aide en ligne integrée avec des niveaux d’explications détaillés et des exemples illustrant l’utilisation des différentes commandes.

Page 4: Aujourd’hui : Introduction à PowerShell

PowerShell : c’est quoi en fait ?

Facile à apprendre même pour des non programmeurs.

Offre un niveau de sécurité très élevé.

Page 5: Aujourd’hui : Introduction à PowerShell

Mode commande :

Console

Page 6: Aujourd’hui : Introduction à PowerShell

Get-Command :

Permet de connnaitre toutes les commandes integrées dans PowerShell

(Get-command | measure –object).

Help get-command

Get-command –verb write

Get-command –noun object (commandes qui s’appliquent aux Objets)

Get-command –commandtype alias (function, cmdlet, externalscript, application).

Page 7: Aujourd’hui : Introduction à PowerShell

Get-Help:

Permet de nous fournir de l’aide sur n’importe quelle commande

Get-Help ma-command OU Help maCommande OU maCommande -?

PowerShell permet 3 niveaux d’aides (STD, -detailled et -full).

Help get* OU Help *-item

Il est recommandé d’utilser Help maCommande suivi du niveau de détail (-detailed OU –full).

L’aide PowerShell est disponible aussi pour les tableaux, les opérateurs de comparaison, les boucles, les fonctions, etc.

Page 8: Aujourd’hui : Introduction à PowerShell

Variables :

$mavariable=‘cours de powershell’

$mavariable.ToUpper()

$mavariable.lenght()

Page 9: Aujourd’hui : Introduction à PowerShell

Navigation dans les Répertoires et Fichiers :

Command Dir : liste le contenu d’un répertoire.

Get-Alias dir

CD : changer le r épertoire courant

MD : creer un répertoire

RD : supprimer un répertoire

Move : déplace un fichier / le contenu d’un répertoire

Ren : renommer un fichier/répertoire

Copy : copie un fichier/répertoire

Page 10: Aujourd’hui : Introduction à PowerShell

Navigation dans les Répertoires et Fichiers :

Get-ChildItem (Alias : gci, dir, ls):

Permet de lister le contenu d’un répertoire (fichier & sous répertoire ).

(-d : rep, -h : cache, -s : objet systeme, -r : lecture, -a : archive)

Ajoutez le paramètre –force pour lister les fichiers cachés.

Get-ChildItem c:\temp\* -Include *.log -Recurse

Get-ChildItem | where-object {$_.length –gt 32KB}

Get-ChildItem | where-object {$_.LastWrite Time –gt ‘01/01/2011’}

Page 11: Aujourd’hui : Introduction à PowerShell

Navigation dans les Répertoires et Fichiers :

Remove-Item (Alias : ri, rm, rd, rdir, del, erase):

Permet de supprimer des fichiers ou des répertoires.

Remove-Item c:\temp\*.jpeg

Get-ChildItem c:\temp\* -include *.jpeg –Recurse | Remove-Item

Pour forcer la suppression d’un fichier, ajoutez la paramètre -force

Un autre paramètre de sécurité : -confirm

Page 12: Aujourd’hui : Introduction à PowerShell

Navigation dans les Répertoires et Fichiers :

Move-Item (Alias : mi, mv, move): Permet de déplacer des fichiers ou des r épertoires.

Move-Item c:\temp\*.jpeg ‘rep-photos’

OU

Move-Item –path *.jpeg -destination ‘rep-photos’

Move-Item anc-rep nouv-rep

Page 13: Aujourd’hui : Introduction à PowerShell

Navigation dans les Répertoires et Fichiers :

Rename-Item :

Permet de renommer des fichiers ou des répertoires.

Rename-Item anc-fichier nouv-fichier

OU

Rename-Item -path c:\temp\Excel -newname Excel-2010

Page 14: Aujourd’hui : Introduction à PowerShell

Navigation dans les Répertoires et Fichiers :

Copy-Item (Alias cpi, copy, cp) : Permet de copier des fichiers, des répertoires ou les deux.

Copy-Item c:\Mes-documents\fichier-orig d:\fichier-dest

OU

Copy-Item -path c:\temp\Clients.xls d:\Excel-2010

Copy-Item -path RepOrig -destination RepDest -Recurse

Page 15: Aujourd’hui : Introduction à PowerShell

Formatage de l’affichage :

Dir ou Get-ChilItem : Permet de lister le contenu d’un répertoire avec 4 proprietés :

Mode, LastWriteItem, Length et Name.

+ commandes spécifiques pour le formatage : Format-List (fl) (forme liste) Format-Table (ft) (forme tabulaire) Format-Wide (fw) (une seule forme large table) Format-Custom (fc) (forme personnalisée)

Obtenir une seule proprieté d’un objet : (Get-ChildItem c:\autoexec.bat).CreationTime

Page 16: Aujourd’hui : Introduction à PowerShell

Les délimiteurs:

Utilisation des guillemets :

Pour delimiter les chaines de caracteres, on utilise les guillemets : simple ou double. (“ ” ou ‘ ’ ).

Write-Host ‘Salut ..’ === Write-Host “Salut ..”

Et les variables ?

$var1 = “Salut “ et $var2=“Jean” Write-host “$var1 $var2” ET Write-host ‘$var1 $var2’

Page 17: Aujourd’hui : Introduction à PowerShell

Les guillemets :

Utilisation des guillemets :

Backtick OU Guillemet inverse (AltGr + 7).

Page 18: Aujourd’hui : Introduction à PowerShell

Les variables et constantes:

$variable = valeur

$var1 = 99 (entier), $var2=‘Ecole’ (chaine)

[int]$var3=99 (typage de variables) === code plus lisible.

[int]$nombre = read-host ‘Entrez un nombre’ === ex: (Erreur)

$var1.GetType ()

Page 19: Aujourd’hui : Introduction à PowerShell

Les opérateurs arithmétiques :

Liste : +, -, *, / et %

4+5*6 VS (4+5)*6 ==== (7%3 === 1).

$var1+$var2*$var3 …etc.

$ch1=‘A’ et $ch2=‘B’ … $ch1+$ch2 = AB.

Page 20: Aujourd’hui : Introduction à PowerShell

Opérateurs :

Comparaison: -eq (egal) -ne (non egal) -gt (strictement superieur) -lt (strictement inferieur) -ge (plus grand ou egal) -le (inferieur ou egal)

Generiques : like ET notlike (expression generique). Ex: ‘montmorency’-like ‘*cy’, ‘mont*’, ‘montm?rency’, ‘????

morency’

Page 21: Aujourd’hui : Introduction à PowerShell

Opérateurs :

Comparaison:

Opérateurs : match ET notmatch (expression réguliere).

‘montmorency’ –match ‘montmor[aet]ncy’

‘montmorency’ –match ‘montmorenc[a-e]’

‘montmorency’ –match ‘montmorenc[a-z]’

Page 22: Aujourd’hui : Introduction à PowerShell

Opérateurs :

Logiques :

-and (ET logique),

-or (OU logique),

-not (Non logique),

! (Non logique),

–xor (OU exclusif)

Page 23: Aujourd’hui : Introduction à PowerShell

Opérateurs :

Binaires :

binaire est en base de 2 ET décimal est en base de 10

-band (opérateur ET), -bor (opérateur OU), -bnot (opérateur NON), -bxor (opérateur OU exclusif)

Page 24: Aujourd’hui : Introduction à PowerShell

Opérateurs :

Affectation: $i=$i+4 = $i+=4 $i=$i-4 = $i-=4 $i=$i*4 = $i*=4 $i=$i/4 = $i/=4 $i=$i%4 = $i%=4 $i=$i+1 = $i=++

Binaire est en base de 2 ET décimal est en base de 10 -band (opérateur ET), -bor (opérateur OU), -bnot (opérateur NON), -bxor (opérateur OU exclusif)

Page 25: Aujourd’hui : Introduction à PowerShell

Opérateurs :

Redirection: Les interpréteurs de commandes traitent les informations selon :

Une entrée (code 0 : généralement le clavier) Une sortie (code 1 : généralement la console) Code d’erreur (code 2 : STD)

Powershell possede d’autres opérateurs pour rediriger ces flux d’information. > : redirige le flux vers un fichier (att: d’ écraser le contenu) >> : redirige le flux vers a la fin du fichier. Si n’existe, va etre cree. 2>&1 : redirige le message d’erreur vers une sortie STD. 2> : redirige l’erreur vers un fichier. S’il existe, le contenu sera écrasé 2>> : redirige l’erreur en fin du fichier. S’il n’existe pas, sera crée.

Page 26: Aujourd’hui : Introduction à PowerShell

Les tableaux :

Tableau à une dimension ex: [int[]]$tab = 1,2,3

$tab = [int]1, [double]2.5,[char] ’A’

Tableau à deux dimensions : ex: $tab == 1,2,3 $tab[0][2] == 3

Page 27: Aujourd’hui : Introduction à PowerShell

Redirection & Pipeline :

Le pricipe est de connecter des commandes de telle sorte que la sortie de l’une devienne l’entrée pour l’autre (sous forme d’objets).

Ex: get-Command | Out-File –FilePath c:\fichier.txt

Get-ChilItem c:\temp |

ForEach-Object ‘ {_.Get_extention().ToLower()} |

sort-Object | Get-Unique |

Out-File ‘ -FilePath c:\temp\extensions.txt –Encoding

ASCII

Page 28: Aujourd’hui : Introduction à PowerShell

Redirection & Pipeline :

Filtre Where-Object :

Get-Service | where-object {$_.status –eq ‘stopped’}

Get-ChilItem | where-object {$_.length –th 500}

Page 29: Aujourd’hui : Introduction à PowerShell

Les boucles :

Boucle For :

For (<initialisation>;<condition>;<incrémentation>) { bloc d’instructions } Ex : $tab =0..49 for ($i=0; $i –le 40; $i++) { write-host $tab[$i] }

Page 30: Aujourd’hui : Introduction à PowerShell

Les boucles :

Boucle Foreach-Object :

Foreach ($<element> in $<collection>) { bloc d’instructions }Ex : foreach ($element in Get-Process) { write-host “$(element.Name) declare le : $

(element.StatTime)” }

Page 31: Aujourd’hui : Introduction à PowerShell

Structures conditionnelles :

IF :

IF (<condition>) { bloc d’instructions 1 } Else { bloc d’instructions 2 } Ex : $var = ‘A’ If ($var –eq ‘A’) { write-host “Le caractère saisi par l’usager est ‘A’ ” }

Page 32: Aujourd’hui : Introduction à PowerShell

Ressources Externes :

Sites recommandés :

www.powershell-scripting.com Fr.

http://blogs.msdn.com/b/powershell Eng.

www.powershellcommunity.org Eng.