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 :
Get-ChildItem D:\test
Get-ChildItem D:\test -Force
Get-ChildItem D:\test -Include *.txt -RecurseParamè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 :
Get-Location
$path = Get-Location
$path | Get-Member
$path = (Get-Location).pathLa 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 :
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.
New-Item -ItemType Directory -Name titi -Path d:\toto
New-Item -ItemType File -Name tutu.txt -Path d:\totoRemove-Item
Permet de supprimer des fichiers ou dossiers.
Remove-Item -Path d:\toto\tutu.txt
Get-ChildItem d:\toto\tutu.txt -Include *.txt | Remove-ItemParamè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.
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\iniPour 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.
Rename-Item -Path C:\temp\toto titi
Rename-Item -Path C:\temp\toto C:\temp\titi
Rename-Item -Path C:\temp\doc1.txt doc2.txtCopy-Item
Permet de copier des fichiers ou des répertoires.
Copy-Item -Path d:\temp\doc1.txt -Destination d:\docs
Copy-Item -Path d:\temp -Destination d:\backups -RecurseInfo
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.
Invoke-Item -Path d:\temp\planning.docxLe 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 Registre | Rôle principal |
|---|---|
| HKEY_CLASSES_ROOT | Contient les informations sur les applications et les associations entre types de fichiers et programmes. |
| HKEY_CURRENT_USER | Contient les paramètres de l’utilisateur actuellement connecté. |
| HKEY_LOCAL_MACHINE | Contient les informations générales de l’ordinateur : matériel, système et sécurité. |
| HKEY_USERS | Contient les paramètres de tous les utilisateurs du système. |
| HKEY_CURRENT_CONFIG | Contient 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 :

Get-ItemProperty
Permet d'obtenir des informations sur un fichier, un répertoire ou une clé de registre :
Get-ItemProperty -Path HKLM:\Software\ETML\CLE1Dans 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.

Get-ItemPropertyValue
Permet d'obtenir des informations sur une valeur de clé :
Get-ItemPropertyValue -Path HKLM:\Software\ETML\CLE1 -Name TOTOLes 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 :

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.
