vendredi 29 novembre 2013

Le registre Windows.

Dans cet article nous allons voir comment lire et écrire des données dans le registre. Attention je rappel que toutes modifications du registre peut entrainer des dégâts irréversibles.

Pour commencer, je vais créer une clé de test "CleTEST" dans "HKLM:\Software". Je commence par vérifier si la clé "CleTEST" existe, et si elle n'existe pas je vais la créer. 

#Teste si le chemin existe.
$pathr = Test-Path "HKLM:\Software\CleTEST"
if ($pathr -ne "True")
  {
    #Si la  clé n'existe pas je crée la clé.
    New-Item -Path "HKLM:\Software\CleTEST" -Force
  }
#Fin. 

La clé "CleTEST" est maintenant créé. Je vais vérifier si la valeur "ValTest1" existe dans ma clé "CleTEST". Si elle n'existe pas je vais la créer.

#Vérifie si la valeur "ValTest1" existe.
if ((Get-ItemProperty -path "HKLM:\Software\CleTEST").ValTest1 -eq $null )
  {
    #Si "ValTest1" n'existe pas, je crée une nouvelle valeur.
    Set-ItemProperty -path "HKLM:\Software\CleTEST" -name ValTest1 -value "Ma donnée"
  }
#Fin

Par défaut, le type de donnée pour ma valeur est une chaine de caractère. Si vous souhaitez créer une valeur avec un type différent, il faudra rajouter l'option "-Type". La liste des types disponibles sont "String", "MultiString", "ExpandString", "Binary", "DWord" et "QWord".

Set-ItemProperty -path "HKLM:\Software\CleTEST" -name ValTest1 -value "Ju" -Type "String"
Set-ItemProperty -path "HKLM:\Software\CleTEST" -name ValTest2 -value "mb" -Type "MultiString"
Set-ItemProperty -path "HKLM:\Software\CleTEST" -name ValTest3 -value "or" -Type "ExpandString"
Set-ItemProperty -path "HKLM:\Software\CleTEST" -name ValTest4 -value  0  -Type "Binary"
Set-ItemProperty -path "HKLM:\Software\CleTEST" -name ValTest5 -value  1  -Type "DWord"
Set-ItemProperty -path "HKLM:\Software\CleTEST" -name ValTest6 -value  2  -Type "QWord"

Pour lire mes valeurs précédemment enregistrées, je vais utiliser la commande "Get-ItemProperty".

$valeur1 = Get-ItemProperty -path "HKLM:\Software\CleTEST").ValTest1
write-host $valeur1

Et si je souhaite modifier une valeur existante.

Set-ItemProperty -path "HKLM:\Software\CleTEST" -name ValTest1 -value "ma nouvelle donnée"

Et voila c'est tout ... si vous lisez cette ligne, c'est que vous êtes à la fin de cet article.