Skip to content

Répertoires et fichiers

PowerShell permet de gérer facilement les répertoires et les fichiers, que ce soit pour les parcourir, les créer, les copier, les déplacer ou les supprimer.

Objectifs

À la fin de ce chapitre, vous serez capable de :

  • Manipuler les fichiers et dossiers (lister, créer, copier, déplacer, renommer, supprimer).
  • Naviguer dans le système de fichiers avec Get-Location / Set-Location.
  • Comprendre les bases de la registry et lire des propriétés avec les cmdlets associées.

Get-ChildItem

Permet de lister le contenu d'un répertoire. Exemple :

powershell
Get-ChildItem D:\test
Get-ChildItem D:\test -Force
Get-ChildItem D:\test -Include *.txt -Recurse

Paramètres : -Force permet d'afficher les fichiers cachés et -Recurse le contenu de l'arborescence.

Get-Location

Retourne l'emplacement actuel en chemin absolu :

powershell
Get-Location
$path = Get-Location
$path | Get-Member
$path = (Get-Location).path

La variable $path contiendra le chemin absolu du répertoire courant.

Set-Location

Permet de se déplacer dans une arborescence ou dans un autre disque :

powershell
Set-Location C:
Set-Location D:\temp
Set-Location ..
Set-Location \

Info

Pour rappel .. se réfère au répertoire parent et le \ à la racine du disque courant.

New-Item

Permet la création de dossiers ou de fichiers. Le paramètre -ItemType définit File pour un fichier et Directory pour un répertoire.

powershell
New-Item -ItemType Directory -Name titi -Path d:\toto
New-Item -ItemType File -Name tutu.txt -Path d:\toto

Remove-Item

Permet de supprimer des fichiers ou dossiers.

powershell
Remove-Item -Path d:\toto\tutu.txt
Get-ChildItem d:\toto\tutu.txt -Include *.txt | Remove-Item

Paramètres : -Force pour les fichiers cachés, -Whatif permet de simuler le résultat et -Confirm demander confirmation.

Move-Item

Permet le déplacement d'un fichier ou répertoire d'une source à une destination.

powershell
Move-Item -Path d:\temp\toto -Destination d:\temp\titi
Move-Item -Path d:\temp\toto -Destination d:\machin -Force
Move-Item -Path d:\temp\*.ini -Destination d:\temp\ini

Pour le dernier exemple le répertoire ini doit déjà exister et pour le 2e, c'est le disque d: qui doit exister. Le -Force permet la création du répertoire si besoin.

Rename-Item

Permet de renommer un dossier ou un fichier.

powershell
Rename-Item -Path C:\temp\toto titi
Rename-Item -Path C:\temp\toto C:\temp\titi
Rename-Item -Path C:\temp\doc1.txt doc2.txt

Copy-Item

Permet de copier des fichiers ou des répertoires.

powershell
Copy-Item -Path d:\temp\doc1.txt -Destination d:\docs
Copy-Item -Path d:\temp -Destination d:\backups -Recurse

Info

Paramètre -Recurse pour une arborescence, afin de copier aussi le contenu des répertoires et sous-répertoire se trouvant dans d:\temp.

Invoke-Item

Permet d'ouvrir un fichier avec l'exécution associée par défaut.

powershell
Invoke-Item -Path d:\temp\planning.docx

Le fichier planning.docx sera ouvert avec Office Word.

Pour la base de registre

Pour rappel, la base de registres (registry en anglais) contient des informations essentielles au fonctionnement du système, il est donc impératif d'être prudent !

L'interface graphique se lance avec regedit.exe pour Registry Editor

Clé du RegistreRôle principal
HKEY_CLASSES_ROOTContient les informations sur les applications et les associations entre types de fichiers et programmes.
HKEY_CURRENT_USERContient les paramètres de l’utilisateur actuellement connecté.
HKEY_LOCAL_MACHINEContient les informations générales de l’ordinateur : matériel, système et sécurité.
HKEY_USERSContient les paramètres de tous les utilisateurs du système.
HKEY_CURRENT_CONFIGContient les informations sur la configuration matérielle utilisée au démarrage actuel.

Pour avoir la racine de l'arborescence de la registry, on utilise HKLM et HKCU.

Dans l'exemple ci-dessous la registry a été modifiée avec l'ajout d'une clé ETML :

image

Get-ItemProperty

Permet d'obtenir des informations sur un fichier, un répertoire ou une clé de registre :

powershell
Get-ItemProperty -Path HKLM:\Software\ETML\CLE1

Dans le cas d'un fichier, il n'y a pas de différence entre les 2 commandes, mais dans le cas d'une clé, les informations retournées par Get-ItemProperty sont plus complètes.

image

Get-ItemPropertyValue

Permet d'obtenir des informations sur une valeur de clé :

powershell
Get-ItemPropertyValue -Path HKLM:\Software\ETML\CLE1 -Name TOTO

Les commandes de la partie registry, avec les ItemProperty seront utiles pour gérer les informations de la partie droite.

Pour gérer l'arborescence, on utilise les mêmes commandes que pour les arborescences des disques.

Il y a aussi sur le même principe les commandes ci-dessous :

image

WARNING

Pour des raisons de sécurité, avant de commencer les exercices, il faut ajouter la clé ETML, tel que dans la capture de l'exemple de l'éditeur de registres.

Résumé

  • PowerShell fournit des cmdlets cohérentes pour gérer fichiers/dossiers.
  • Les opérations courantes (copie, déplacement, suppression) s’appuient sur des paramètres comme -Recurse, -Force, -WhatIf.
  • La registry se manipule comme une arborescence, avec des cmdlets dédiées pour lire les valeurs.

Exercices

📥 Exo Répertoires et fichiers (PDF)