đïž PowerShell et manipulation de fichiers
- Seul, Ă votre rythme
đŻ Objectif pĂ©dagogiqueâ
- Manipuler des fichiers et répertoires via PowerShell
- Automatiser des tĂąches simples avec des scripts
- Utiliser les chemins relatifs et absolus
- Rechercher des fichiers et du contenu textuel dans une arborescence
- Afficher et modifier les permissions des fichiers
đ ĂnoncĂ©â
đ§ Contexteâ
Un administrateur systĂšme vous confie une sĂ©rie de tĂąches Ă rĂ©aliser via PowerShell. Ces tĂąches pourraient ĂȘtre automatisĂ©es dans un petit script. Vous devez crĂ©er un environnement de travail, manipuler des fichiers et rĂ©pertoires, le tout en utilisant PowerShell.
đ Ătape 1 â PrĂ©parer un environnementâ
- Ouvrez PowerShell dans un dossier de travail de votre choix.
- Créez la structure suivante avec PowerShell :
projet/
âââ notes/
âââ archives/
âââ temp/
- Dans le dossier
notes, crĂ©ez 3 fichiers texte nommĂ©scours1.txt,cours2.txt,cours3.txt. Chacun de ces fichiers doit contenir une phrase diffĂ©rente, incluant le mot important dans lâun dâeux. InsĂ©rez le contenu directement dans les fichiers avec PowerShell. - Dans le dossier
temp, créez un fichier texte nommétemp.txtavec le contenu suivant :Ce fichier est temporaire.
Commandes utiles :
New-Itempour créer des fichiers et des dossiersSet-Contentpour écrire du contenu dans les fichiersGet-ChildItempour lister les fichiers et dossiers
đ Ătape 2 â Recherches et cheminsâ
- Recherchez tous les fichiers
.txtdans le dossierprojet, mĂȘme dans les sous-dossiers. - Recherchez le mot
importantdans tous les fichiers texte. - Affichez le chemin absolu de chacun des fichiers
.txt.
Commandes utiles :
Get-ChildItem -Recursepour lister les fichiers récursivementSelect-Stringpour rechercher du texte dans les fichiersResolve-Pathpour obtenir le chemin absolu des fichiers
đ Ătape 3 â Automatisation et englobement simpleâ
-
Ăcrivez un script PowerShell nommĂ©
gestion.ps1qui fait les opérations suivantes :-
Copie tous les fichiers de
notesversarchives -
Supprime le contenu du dossier
tempsâil existe (sans supprimertemplui-mĂȘme) -
Renomme les fichiers copiés dans
archivesen ajoutant_backupavant.txt- Exemple :
cours1.txtâcours1_backup.txt
- Exemple :
-
Commandes utiles :
Test-Pathpour vĂ©rifier lâexistence dâun dossier ou dâun fichierCopy-Itempour copier des fichiersRemove-Itempour supprimer des fichiers ou dossiersRename-Itempour renommer des fichiers
ExĂ©cutez plusieurs fois votre script pour vĂ©rifier quâil est idempotent (ne casse rien sâil est relancĂ© plusieurs fois).
đ§Ș Ătape 4 â VĂ©rification automatiqueâ
Ajoutez Ă votre script une commande qui :
- Compte et affiche le nombre de fichiers dans
archives - Affiche un message "SuccÚs : tous les fichiers ont été sauvegardés." si ce nombre est 3
đ Ătape 5 â Permissions NTFS (droits dâaccĂšs)â
-
Dans le dossier
notes/, enlevez Ă lâutilisateur courant le droit de lecture sur un des fichiers. Ceci doit ĂȘtre fait en utilisant PowerShell. -
Essayez de lire ce fichier avec
Get-Content. Que se passe-t-il ? -
Rétablissez ensuite la permission avec PowerShell.
-
Donnez temporairement Ă tout le dossier
archives/une permission en lecture-écriture seulement (pas suppression). -
Tentez ensuite dâeffacer un fichier de
archives/avecRemove-Item. Que constatez-vous ?