Outils pour utilisateurs

Outils du site


command-line:windows:registry

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
command-line:windows:registry [le 15/05/2020 à 12:53] Yoskocommand-line:windows:registry [le 19/05/2020 à 08:40] (Version actuelle) – [Lecture de clé] Yosko
Ligne 3: Ligne 3:
  
 Voici quelques infos sur son contenu, comment il est organisé et comment le manipuler en ligne de commande. Voici quelques infos sur son contenu, comment il est organisé et comment le manipuler en ligne de commande.
 +
 +===== Infos générales =====
 +Windows utilise des SID (Security Identifiers) pour identifier de façon unique chaque système, utilisateur ou groupe. A ne pas confondre avec le UID/GUID, qui sert à des usages plus généraux.
 +
 +Plus d'informations sur les SID courants (hors ceux des utilisateurs en eux-mêmes) : [[https://www.toutwindows.com/sid.shtml]]
  
 ===== Organisation ===== ===== Organisation =====
Ligne 44: Ligne 49:
 Les SID de tous les utilisateurs existants sur cette machine sont renseigné dans ''HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\''. Cela peut permettre de remonter à l'utilisateur à partir d'un SID lu dans ''HKU''. Les SID de tous les utilisateurs existants sur cette machine sont renseigné dans ''HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\''. Cela peut permettre de remonter à l'utilisateur à partir d'un SID lu dans ''HKU''.
  
 +=== TODO ===
 +FIXME
 +
 +HKLM\Software et HKCU\Software
 +
 +HKLM\Software\Microsoft\Windows\CurrentVersion et 
 +HKLM\Software\Microsoft\Windows NT\CurrentVersion
 ===== Manipulation en ligne de commande ===== ===== Manipulation en ligne de commande =====
 +Documentation officielle des commandes reg : https://docs.microsoft.com/fr-fr/windows-server/administration/windows-commands/reg
 +
 +==== Types de données ====
 +On appelle **clé** un dossier du registre. Une donnée, stockée sous forme d'association qu'on aurait d'habitude tendance à appeler "clé-valeur" est appelée ici "nom de valeur - données de valeur" (name-data).
 +
 +Voici les types de valeurs les plus courrants (pour une liste exhaustive, voir [[https://docs.microsoft.com/en-us/windows/win32/sysinfo/registry-value-types|la doc]]) :
 +
 +^ Désignation ^ Type ^ Exemples de valeurs ^
 +| REG_BINARY | données binaires |  |
 +| REG_DWORD | nombre (32 bits) | (en hexa) 0, 1, f2e |
 +| REG_QWORD | nombre (64 bits) | ::: |
 +| REG_SZ | texte | val1 |
 +| REG_MULTI_SZ | tableau de chaines | val1 \\ val2 \\ val3 |
 +| REG_LINK | chemin vers fichier |  |
 +
 +==== Lecture de clé/valeur ====
 +<code winbatch>
 +reg query HKLM\Software\Chemin\vers\la\clé
 +</code>
 +
 +==== Création/mise à jour de valeur ====
 +Base de la commande pour ajouter une nouvelle clé :
 +<code batch>
 +reg add HKLM\Software\chemin /v <valueName> /t <valueType> /d <valueData>
 +</code>
 +
 +Base de la commande pour forcer l'écrasement si elle existe déjà (= mettre à jour)
 +<code batch>
 +reg add HKLM\Software\chemin /v <valueName> /t <valueType> /d <valueData> /f
 +</code>
 +
 +Exemples :
 +<code batch>
 +reg add HKLM\Software\chemin /v maValeur /t REG_DWORD /d 2f /f
 +reg add HKLM\Software\chemin /v maValeur /t REG_SZ /d "valeur" /f
 +reg add HKLM\Software\chemin /v maValeur /t REG_MULTI_SZ /d "val1\0val2\0val3" /f
 +</code>
 +
 +==== Suppression de clé/valeur ====
 +Pour supprimer une clé (et toutes ses valeurs) :
 +<code batch>
 +reg delete HKLM\Software\chemin
 +</code>
 +Pour supprimer une valeur en particulier :
 +<code batch>
 +reg delete HKLM\Software\chemin /v maValeur
 +</code>
 +==== Charger la ruche d'un utilisateur ====
 +
 +<code winbatch>
 +reg load HKU\<user SID> C:\Users\<user name>\ntuser.dat
 +</code>
 +
 +Une fois les actions terminées, pour retirer cette clé "temporaire" du registre :
 +
 +<code winbatch>
 +reg unload HKU\<user SID>
 +</code>
 +
 +En soi, rien ne nous oblige d'utiliser le SID de l'utilisateur dans cet exemple, mais ça permet de rester sur le même schéma que ce que fait Windows lorsqu'un utilisateur est connecté.
 +
 +==== SID utilisateur ====
 +
 +Pour récupérer le SID d'un utilisateur :
 +<code winbatch>
 +WMIC useraccount where name="<user name>" get sid
 +</code>
command-line/windows/registry.1589547207.txt.gz · Dernière modification : le 15/05/2020 à 12:53 de Yosko