PowerShell 1
Commandes PowerShell
1. Aide et Recherche de Commandes
Commande Description
Get-Help <commande> Obtenir de l'aide sur une commande
Get-Command *mot* Rechercher des commandes contenant un mot
Get-Command mot* Rechercher des commandes qui commencent par un mot
Get-Command *mot Rechercher des commandes qui se terminent par un mot
Afficher toutes les commandes du pare-feu (firewall) :
• Get-Command *firewall*
Afficher toutes les commandes de copies (commencent par Copy) :
• Get-Command copy*
Afficher l’aide de la commande Set-Location:
• Get-Help set-location
• Get-Help set-location -Detailed (version detaillée de l’aide)
• Get-Help set-location -Full (version complète de l’aide)
2. Navigation entre Dossiers
Commande Description
Get-Location Affiche le chemin actuel (répertoire courant)
Set-Location <chemin> Change le répertoire courant
3. Lecture et Écriture de Fichier
Commande Description
Get-Content <chemin> Lit le contenu d'un fichier
Set-Content <chemin> "texte" Écrit dans un fichier et écrase son contenu précédent
Add-Content <chemin> "texte" Ajoute du texte dans un fichier SANS écraser son
contenu précédent
Écrire « Bonjour ID » dans le fichier [Link] :
• Set-Content [Link] “Bonjour ID”
Lire le contenu d’un fichier [Link] qui se trouve dans C:\Users\User\Desktop :
• Get-Content C:\Users\User\Desktop\[Link]
PowerShell 2
4. Gestion des Fichiers et Dossiers
Commande Description
New-Item -Path <chemin> -Type File/Directory Crée un fichier ou dossier
Copy-Item -Path <source> -Destination <dest> Copie un fichier/dossier
Move-Item -Path <source> -Destination <dest> Déplace un fichier/dossier
Rename-Item <ancient nom> <nouveau nom> Renomme un fichier/dossier
Remove-Item -Path <chemin> Supprime un fichier/dossier
Créer un fichier [Link] dans le répertoire C:\ :
• New-Item -Path C:\[Link] -Type File
• New-Item C:\[Link] (pas la peine d’entrer le -Type puisqu’on spécifie .pdf)
Créer un nouveau répertoire « PDF_Files » dans C:\Downloads :
• New-Item -Path C:\Downloads\PDF_Files -Type Directory
Déplacer le fichier [Link] dans C:\Downloads\PDF_Files :
• Move-Item C:\[Link] C:\Downloads\PDF_Files
Créer l’arborescence suivante dans votre répertoire courant :
• New-Item -Type Directory -Path ID\ID-101\Projets, ID\ID-101\Liste, ID\ID-102\Projets, ID\ID-102\Liste
Créer une copie de [Link] dans ID\ID-102\Projets :
• Copy-Item C:\Downloads\PDF_Files\[Link] ID\ID-102\Projets
Supprimer le fichier [Link] original :
• Remove-Item C:\Downloads\PDF_Files\[Link]
PowerShell 3
5. Liste des Fichiers et Dossiers
Commande Description
Get-ChildItem <chemin> Liste les fichiers/dossiers
Get-ChildItem <chemin> -Force Liste les fichiers/dossiers + cachés
Get-ChildItem <chemin> -File Liste les fichiers
Get-ChildItem <chemin> -Directory Liste les dossiers
Lister tous les fichiers présents dans le répertoire courant :
• Get-ChildItem
Lister tous les fichiers présents dans C:\ :
• Get-ChildItem C:\
6. Gestion des Utilisateurs et Groupes Locaux
Commande Description
Get-LocalUser Liste les utilisateurs locaux
New-LocalUser -Name <nom> -Password <mdp> Crée un utilisateur
Remove-LocalUser -Name <nom> Supprime un utilisateur
Set-LocalUser -Name <nom> -Password <mdp> Modifie un utilisateur
Get-LocalGroup Liste les groupes locaux
New-LocalGroup <nom> Crée un nouveau groupe local
Remove-LocalGroup <nom> Supprime un groupe local
Add-LocalGroupMember -Group <nom_du_groupe> Ajoute un utilisateur dans un groupe
-Member <nom_de_l’utilisateur>
Remove-LocalGroupMember -Group <nom_du_groupe> Retire un utilisateur d’un groupe
-Member <nom_de_l’utilisateur>
Créer un utilisateur “stagiaire” avec un mot de passe « Pass@123 » :
• New-LocalUser -Name stagiaire -Password (ConvertTo-SecureString “Pass@123” -AsPlainText -Force)
Supprimer cet utilisateur :
• Remove-LocalUser stagiaire
PowerShell 4
Créer un utilisateur “stagiaire2” avec un mot de passe « MdP@555 » en utilisant la variable $Password :
• $Password = (ConvertTo-SecureString “MdP@555” -AsPlainText -Force)
New-LocalUser -Name stagiaire2 -Password $Password
Modifier son mot de passe en « Password.123 » :
• Set-LocalUser -Name stagiaire2 -Password (ConvertTo-SecureString “Password.123” -AsPlainText -Force)
Créer un groupe local nommé « Staff » :
• New-LocalGroup Staff
Ajouter l’utilisateur stagiaire2 au groupe Staff :
• Add-LocalGroupMember -Group Staff -Member stagiaire2
7. Gestion du Pare-feu Windows Defender
Commande Description
Get-NetFirewallRule Liste les règles du pare-feu
New-NetFirewallRule -DisplayName <nom> -Direction Inbound/Outbound Crée une règle
-Action Allow/Block -Protocol <protocole> -LocalPort <port>
Remove-NetFirewallRule -DisplayName <nom> Supprime une règle
Set-NetFirewallRule -DisplayName <nom> -Enabled True/False -Direction Modifie une règle
Inbound/Outbound -Action Allow/Block …
Enable-NetFirewallRule -DisplayName <nom> Active une règle
Disable-NetFirewallRule -DisplayName <nom> Désactive une règle
Get-NetFirewallProfile Affiche les profils (Private,
Public, Domain) de pare-feu
Set-NetFirewallProfile <nom> -Enabled True/False Active/Désactive un profil de
pare-feu
Créer une règle de pare-feu qui bloque le trafic entrant SSH (SSH utilise le protocol TCP au port 22) :
• New-NetFirewallRule -DisplayName “Bloquer SSH entrant” -Action Block -Direction Inbound -Protocol TCP
-LocalPort 22
Modifier cette règle pour bloquer le trafic sortant :
• Set-NetFirewallRule -DisplayName “Bloquer SSH entrant” -Direction Outbound
Désactiver cette règle :
• Disable-NetFirewallRule -DisplayName “Bloquer SSH entrant”
PowerShell 5
Désactiver le profil publique du pare-feu :
• Set-NetFirewallProfile Public -Enabled False
8. Pipeline (Combiner des commandes)
Il est possible d’utiliser la sortie d’une commande comme entrée d’une autre commande en utilisant le
caractère Pipeline |
Exemple : Remplir un fichier texte [Link] par le résultat de la commande Get-ChildItem
• Get-ChildItem | Set-Content [Link]
9. Filtrage et Sélection
Commande Description
Select-Object <propriétés> Sélectionne des colonnes
Where-Object {condition} Filtre des données
Afficher uniquement les champs Name et Enabled des profils de pare-feu :
• Get-NetFirewallProfile | Select-Object Name,Enabled
Afficher uniquement les règles de pare-feu désactivées :
• Get-NetFirewallRule | Where-Object Enabled -eq False
PowerShell 6
TP PowerShell
1. Quelle commande permet d’afficher toutes les commandes des groupes locaux ?
2. Quelle commande donne l’aide détaillée sur Move-Item ?
3. Afficher le chemin du répertoire courant.
4. Se déplacer vers C:\Users\Public.
5. Créer un fichier [Link] dans C:\Temp.
6. Ajouter le texte "Ceci est un test" dans [Link] et écraser son contenu.
7. Renommer [Link] en notes_backup.txt.
8. Supprimer le fichier notes_backup.txt.
9. Créer un dossier C:\Temp\Projets\PowerShell en une seule commande.
10. Lire le contenu du fichier C:\Windows\System32\drivers\etc\hosts.
11. Ajouter la ligne "[Link] [Link]" dans ce fichier.
12. Créer un utilisateur local nommé Karim avec le mot de passe 2025Pass@123 (variable $Password)
13. Ajouter cet utilisateur au groupe Users.
14. Modifier le mot de passe de Karim en NewPass@456.
15. Supprimer l’utilisateur Karim.
16. Afficher toutes les règles du pare-feu.
17. Créer une règle qui bloque TCP au port 3389 (RDP).
18. Désactiver cette règle.
19. Modifier la règle pour changer l'action en Allow.
20. Supprimer la règle.
21. Lister uniquement les fichiers du répertoire C:\Windows\System32 (sans les dossiers).
22. Afficher uniquement les règles de pare-feu désactivées.
23. Lister uniquement les noms (Name) des utilisateurs locaux actifs.
PowerShell 7
Correction TP
1. Quelle commande permet d’afficher toutes les commandes des groupes locaux ?
Get-Command *LocalGroup*
2. Quelle commande donne l’aide détaillée sur Move-Item ?
Get-Help Move-Item -Detailed
3. Afficher le chemin du répertoire courant.
Get-Location
4. Se déplacer vers C:\Users\Public.
Set-Location C:\Users\Public
5. Créer un fichier [Link] dans C:\Temp.
New-Item C:\Temp\[Link]
6. Ajouter le texte "Ceci est un test" dans [Link] et écraser son contenu.
Set-Content C:\Temp\[Link] “Ceci est un test“
7. Renommer [Link] en notes_backup.txt.
Rename-Item C:\Temp\[Link] notes_backup.txt
8. Supprimer le fichier notes_backup.txt.
Remove-Item C:\Temp\notes_backup.txt
9. Créer un dossier C:\Temp\Projets\PowerShell en une seule commande.
New-Item -Type Directory -Path C:\Temp\Projets\PowerShell
10. Lire le contenu du fichier C:\Windows\System32\drivers\etc\hosts.
Get-Content C:\Windows\System32\drivers\etc\hosts
11. Ajouter la ligne "[Link] [Link]" dans ce fichier.
Add-Content C:\Windows\System32\drivers\etc\hosts “[Link] [Link]”
12. Créer un utilisateur local nommé Karim avec le mot de passe 2025Pass@123 (variable $Password)
$Password = (ConvertTo-SecureString “2025Pass@123” -AsPlainText -Force)
New-LocalUser -Name Karim -Password $Password
PowerShell 8
13. Ajouter cet utilisateur au groupe Users.
Add-LocalGroupMember -Group Users -Member Karim
14. Modifier le mot de passe de Karim en NewPass@456.
Set-LocalUser -Name Karim -Password (ConvertTo-SecureString “NewPass@456” -AsPlainText
-Force)
15. Supprimer l’utilisateur Karim.
Remove-LocalUser -Name Karim
16. Afficher toutes les règles du pare-feu.
Get-NetFirewallRule
17. Créer une règle qui bloque le trafic entrant TCP au port 3389 (RDP).
New-NetFirewallRule -DisplayName “Bloquer RDP entrant” -Action Block -Direction Inbound -
Protocol TCP -LocalPort 3389
18. Désactiver cette règle.
Disable-NetFirewallRule -DisplayName “Bloquer RDP entrant”
19. Modifier la règle pour changer l'action en Allow.
Set-NetFirewallRule -DisplayName “Bloquer RDP entrant” -Action Allow
20. Supprimer la règle.
Remove-NetFirewallRule -DisplayName “Bloquer RDP entrant”
21. Lister uniquement les fichiers du répertoire C:\Windows\System32 (sans les dossiers).
Get-ChildItem C:\Windows\System32 -File
22. Afficher uniquement les règles de pare-feu désactivées.
Get-NetFirewallRule | Where-Object Enabled -eq False
23. Lister uniquement les noms (Name) des utilisateurs locaux actifs.
Get-LocalUser | Where-Object Enabled -eq True | Select-Object Name