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:41] 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 10: Ligne 15:
  
 ^ Nom ^ Alias ^ Utilité ^ Droits d'accès ^ ^ Nom ^ Alias ^ Utilité ^ Droits d'accès ^
-| HKEY_CLASSES_ROOT | HKCR | Données relatives aux applications (raccourcis, association aux extensions, etc.) | Administrateur uniquement | +| HKEY_CLASSES_ROOT | HKCR | Données relatives aux applications (raccourcis, association aux extensions, etc.). Raccourci vers une clé de HKLM. | Administrateur uniquement | 
-| HKEY_CURRENT_USER | HKCU | Données spécifiques à l'utilisateur actuellement connecté | Utilisateur concerné | +| HKEY_CURRENT_USER | HKCU | Données spécifiques à l'utilisateur actuellement connecté| Utilisateur concerné | 
-| HKEY_LOCAL_MACHINE | HKLM | Données de configurations communes à tous les utilisateurs | Administrateur uniquement | +| HKEY_LOCAL_MACHINE | HKLM | Données de configurations communes à tous les utilisateurs| Administrateur uniquement | 
-| HKEY_USERS | HKU |  | Administrateur uniquement | +| HKEY_USERS | HKU | Réglage des [[https://fr.wikipedia.org/wiki/Strat%C3%A9gie_de_groupe|stratégies de groupe]] et utilisateurs actuellements connectés. | Administrateur uniquement | 
-| HKEY_CURRENT_CONFIG | HKCC |  | Administrateur uniquement |+| HKEY_CURRENT_CONFIG | HKCC | Données relatives au profil hardware. Raccourci vers une clé de HKLM. | Administrateur uniquement |
  
 Chacune de ces "clés" est enregistrée dans un fichier de configuration que l'on appelle une **ruche** (//hive//, en anglais). Ces ruches sont dans le dossier système ''%SystemRoot%\System32\Config'' excepté celle relative à l'utilisateur connecté, qui est dans le dossier de l'utilisateur en question ''%UserProfile%\ntuser.dat''. Chacune de ces "clés" est enregistrée dans un fichier de configuration que l'on appelle une **ruche** (//hive//, en anglais). Ces ruches sont dans le dossier système ''%SystemRoot%\System32\Config'' excepté celle relative à l'utilisateur connecté, qui est dans le dossier de l'utilisateur en question ''%UserProfile%\ntuser.dat''.
Ligne 31: Ligne 36:
  
 === HKEY_USERS (HKU) === === HKEY_USERS (HKU) ===
 +
 +  - ''.DEFAULT'' : réglages de base utilisés lorsqu'on créé un nouvel utilisateur.  
 +  - ''S-1-5-21-XXX'' : les ruches des différents utilisateurs (actuellement connectés ? ⇨ à vérifier FIXME)
  
 === HKEY_CURRENT_CONFIG (HKCC) === === HKEY_CURRENT_CONFIG (HKCC) ===
 +Référence à ''HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001''. Il s'agit juste d'un raccourci, afin de ne pas avoir à aller farfouiller dans HKLM pour ça.
  
 ==== Clés utiles ==== ==== Clés utiles ====
  
 +=== SID des utilisateurs ===
 +
 +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.1589546504.txt.gz · Dernière modification : le 15/05/2020 à 12:41 de Yosko