370 likes | 613 Views
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.
E N D
Aujourd’hui : Introduction à PowerShell Objectifs : • Identifier l’utilité de PowerShell et le contexte d’utilisation. • Reproduire les commandes de base.
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
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.
PowerShell : c’est quoi en fait ? • Facile à apprendre même pour des non programmeurs. • Offre un niveau de sécurité très élevé.
Mode commande : • Console
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).
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.
Variables : • $mavariable=‘cours de powershell’ • $mavariable.ToUpper() • $mavariable.lenght()
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
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 fichierscaché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’}
Navigation dans les Répertoires et Fichiers : • Remove-Item (Alias : ri, rm, rd, rdir, del, erase): • Permet de supprimer des fichiersou 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 autreparamètre de sécurité : -confirm
Navigation dans les Répertoires et Fichiers : • Move-Item (Alias : mi, mv, move): • Permet de déplacer des fichiersou des r épertoires. • Move-Item c:\temp\*.jpeg ‘rep-photos’ • OU • Move-Item –path *.jpeg -destination ‘rep-photos’ • Move-Item anc-rep nouv-rep
Navigation dans les Répertoires et Fichiers : • Rename-Item : • Permet de renommer des fichiersou des répertoires. • Rename-Item anc-fichiernouv-fichier • OU • Rename-Item -path c:\temp\Excel -newname Excel-2010
Navigation dans les Répertoires et Fichiers : • Copy-Item (Alias cpi, copy, cp) : • Permet de copier des fichiers, des répertoiresou 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
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) (formeliste) • Format-Table (ft) (formetabulaire) • Format-Wide (fw) (uneseuleforme large table) • Format-Custom (fc) (formepersonnalisée) • Obteniruneseuleproprieté d’un objet : (Get-ChildItem c:\autoexec.bat).CreationTime
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’
Les guillemets : • Utilisation des guillemets : • Backtick OU Guillemet inverse (AltGr + 7).
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 ()
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.
Opérateurs : • Comparaison: • -eq (egal) • -ne (non egal) • -gt (strictementsuperieur) • -lt (strictementinferieur) • -ge (plus grand ouegal) • -le (inferieurouegal) • Generiques: like ET notlike(expression generique). Ex: ‘montmorency’-like ‘*cy’, ‘mont*’, ‘montm?rency’, ‘????morency’
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]’
Opérateurs : • Logiques : • -and (ET logique), • -or (OU logique), • -not (Non logique), • ! (Non logique), • –xor (OU exclusif)
Opérateurs : • Binaires : • binaireest en base de 2 ET décimalest en base de 10 • -band (opérateur ET), • -bor (opérateur OU), • -bnot (opérateur NON), • -bxor (opérateur OU exclusif)
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=++ • Binaireest en base de 2 ET décimalest en base de 10 • -band (opérateur ET), • -bor (opérateur OU), • -bnot (opérateur NON), • -bxor (opérateur OU exclusif)
Opérateurs : • Redirection: • Les interpréteurs de commandestraitent les informationsselon : • 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) • Powershellposseded’autresopérateurs pour redirigerces 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, vaetrecree. • 2>&1 : redirige le message d’erreurversune sortie STD. • 2> : redirigel’erreurvers un fichier. S’ilexiste, le contenu sera écrasé • 2>> : redirigel’erreur en fin du fichier. S’iln’existe pas, sera crée.
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
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
Redirection & Pipeline : • Filtre Where-Object : • Get-Service | where-object {$_.status –eq ‘stopped’} • Get-ChilItem | where-object {$_.length –th 500}
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] }
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)” }
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’ ” }
Ressources Externes : • Sites recommandés : • www.powershell-scripting.comFr. • http://blogs.msdn.com/b/powershell Eng. • www.powershellcommunity.org Eng.