
Dans ce tutoriel, on va voir comment manipuler la base registre Windows à l’aide de PowerShell pour lire, écrire et supprimer des éléments.
Sommaire
Se déplacer et visualiser la base de registre avec PowerShell
La premier élément que l’on va voir dans ce tutoriel va être de visualiser la base de registre et se déplacer dedans.
Pour commencer, on va utiliser la commande Get-PSDrive
qui permet d’afficher les lecteurs disponibles en PowerShell.
Get-PSDrive

Comme on peut le voir sur la capture ci-dessus, les ruches HKEY_CURRENT_USER (HKCU) et HKEY_LOCAL_MACHINE (HKLM) sont disponible comme lecteur avec PowerShell.
Pour ce déplacer dans la base de registre, on va utiliser la commande Set-Location
qui permet de déplacer dans les différents lecteurs, ce qui inclut les dossiers et aussi la base de registre.
Pour se placer dans la ruche HKCU_LOCAL_MACHINE entrer la commande suivante :
Set-Location HKCU:
Pour afficher le contenu, on va utiliser la commande Get-ChildItem
, elle fonctionne de la même manière que pour la visualisation des dossier, on peut passer la paramètre -Path
pour indiquer l’emplacement et sans le paramètre c’est l’empalement courant.
Get-ChildItem

En indiquant l’emplacement :
Get-ChildItem HKLM:

Pour récupérer visualiser les éléments d’une clé de registre:
Get-ItemProperty -Path HKCU:\RDR-IT

Pour récupérer une valeur, il faut ajouter le paramètre -Name
:
Get-ItemProperty -Path HKCU:\RDR-IT\ -Name Site

Créer des éléments de registre avec PowerShell
Maintenant que l’on va vu comment naviguer dans le registre Windows à l’aide de PowerShell, on va voir comment créer des clés de registre
On va commencer par la création de clé, qui l’on pourrait comparer à un dossier, qui va ensuite contenir des éléments qui seront des clés ou des valeurs.
Créer une clé de registre
Pour la création de clé, on va utiliser New-Item
qui va prendre deux paramètres :
-Path
qui va être l’emplacement ou l’on souhaite créer la clé.-Name
qui sera le nom de la clé de registre
Pour créer la Tuto-PowerShell à la racine de la ruche HKEY_CURRENT_USER :
New-Item -Path HKCU: -Name Tuto-PowerShell


Créer une valeur de registre
Pour la création d’une valeur dans le registre, on utilise New-ItemProperty
qui va prendre plusieurs paramètres :
-Path
qui va être l’emplacement dans la base de registre-Name
qui va être le nom de la valeur-Value
qui va être la valeur-PropertyType
qui va être le type de valeur qui peuvent être :String
: REG_SZExpandString
: REG_EXPAND_SZBinary
: REG_BINARYDWord
: REG_DWORDMultiString
: REG_MULTI_SZQword
: REG_QWORDUnknown
: REG_RESOURCE_LIST
Pour créer la valeur Site qui sera de type string avec la valeur https://rdr-it.com, on va utiliser la commande suivante :
New-ItemProperty -Path HKCU:\Tuto-PowerShell -Name Site -Value "https://rdr-it.com" -PropertyType String


Vous savez comment créer des clés et des valeurs dans le registre Windows avec PowerShell.
Modifier des éléments de registre avec PowerShell
Nous allons maintenant voir comment modifier des éléments dans le registre, qui vont soit être de renommer une clé de registre ou une valeur et changer la valeur.
Renommer une clé de registre
Le renommage d’un clé de registre se fait avec la cmdlet Rename-Item
.
Exemple :
Rename-Item -Path HKCU:\Tuto-PowerShell -NewName TutoPowerShell
Renommer une valeur
Pour renommer une valeur, on utilise la cmdlet Rename-ItemProperty
.
Exemple :
Rename-ItemProperty -Path HKCU:\TutoPowerShell -Name Site -NewName WebSite
Changer une valeur
Le changement d’une valeur dans le registre se fait avec la Cmdlet Set-ItemProperty
en lui passant 3 paramètres :
-Path
: chemin de la valeur-Name
: nom de la valeur-Value
: nouvelle valeur
Set-ItemProperty -Path HKCU:\TutoPowerShell -Name WebSite -Value "rdr-it.com"
Supprimer des éléments de registre avec PowerShell
Maintenant on va voir comment supprimer des éléments de registre Windows avec PowerShell.
Supprimer une clé de registre
La suppression d’une clé de registre se fait avec le cmdlet Remove-Item
en lui passant le chemin de la clé.
Remove-Item -Path HKCU:\TutoPowerShell
La commande demande une confirmation, il est possible d’ajouter le paramètre -Force
pour passer cette confirmation dans les scripts.
La paramètre -Path
peut être omis et la commande écrite comme cela : Remove-Item HKCU:\TutoPowerShell
Supprimer une valeur du registre
Pour supprimer une valeur du registre on utilise la cmdlet Remote-ItemProperty
qui va prendre deux paramètres, -Path
pour indiquer le chemin de la valeur et -Name
qui va être le nom de la valeur.
Remove-ItemProperty -Path HKCU:\TutoPowerShell -Name Website
Là aussi vous devez confirmer l’exécution de la commande, vous pouvez utiliser le paramètre -Force pour passer la confirmation de la commande.
Compléments
Récupérer une valeur de registre dans une variable
Au début de ce tutoriel, on va vu comment afficher une valeur de registre avec la cmdlet Get-ItemProperty
, dans un script, vous pourriez avoir besoin de récupérer cette valeur dans une variable afin de faire un traitement, voici comment faire.
Voici comment récupérer une valeur dans une variable :
$Var = (Get-ItemProperty "HKCU:\TutoPowerShell") | Select-Object -ExpandProperty WebSite
Ici je vais récupérer la contenu de la veleur Website qui se trouve à l’emplacement suivant HKCU:\TutoPowerShell
Récupérer les valeurs de registre d’une clé et les parcourir
Si vous souhaitez récupérer toutes les valeurs et les parcourir en PowerShell :
A travers ce tutoriel, on a vu comment manipuler la base de registre à l’aide PowerShell.