Aller au contenu principal

đŸ—ƒïž 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​

  1. Ouvrez PowerShell dans un dossier de travail de votre choix.
  2. Créez la structure suivante avec PowerShell :
projet/
├── notes/
├── archives/
└── temp/
  1. Dans le dossier notes, crĂ©ez 3 fichiers texte nommĂ©s cours1.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.
  2. Dans le dossier temp, créez un fichier texte nommé temp.txt avec le contenu suivant :
    Ce fichier est temporaire.

Commandes utiles :

  • New-Item pour crĂ©er des fichiers et des dossiers
  • Set-Content pour Ă©crire du contenu dans les fichiers
  • Get-ChildItem pour lister les fichiers et dossiers

📂 Étape 2 – Recherches et chemins​

  1. Recherchez tous les fichiers .txt dans le dossier projet, mĂȘme dans les sous-dossiers.
  2. Recherchez le mot important dans tous les fichiers texte.
  3. Affichez le chemin absolu de chacun des fichiers .txt.

Commandes utiles :

  • Get-ChildItem -Recurse pour lister les fichiers rĂ©cursivement
  • Select-String pour rechercher du texte dans les fichiers
  • Resolve-Path pour obtenir le chemin absolu des fichiers

🔄 Étape 3 – Automatisation et englobement simple​

  1. Écrivez un script PowerShell nommĂ© gestion.ps1 qui fait les opĂ©rations suivantes :

    • Copie tous les fichiers de notes vers archives

    • Supprime le contenu du dossier temp s’il existe (sans supprimer temp lui-mĂȘme)

    • Renomme les fichiers copiĂ©s dans archives en ajoutant _backup avant .txt

      • Exemple : cours1.txt → cours1_backup.txt

Commandes utiles :

  • Test-Path pour vĂ©rifier l’existence d’un dossier ou d’un fichier
  • Copy-Item pour copier des fichiers
  • Remove-Item pour supprimer des fichiers ou dossiers
  • Rename-Item pour 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)​

  1. Dans le dossier notes/, enlevez Ă  l’utilisateur courant le droit de lecture sur un des fichiers. Ceci doit ĂȘtre fait en utilisant PowerShell.

  2. Essayez de lire ce fichier avec Get-Content. Que se passe-t-il ?

  3. Rétablissez ensuite la permission avec PowerShell.

  4. Donnez temporairement à tout le dossier archives/ une permission en lecture-écriture seulement (pas suppression).

  5. Tentez ensuite d’effacer un fichier de archives/ avec Remove-Item. Que constatez-vous ?