61 votes

Est-ce que "HKLM" est un alias de "HKEY_LOCAL_MACHINE" ?

HKLM est souvent utilisé comme abréviation de HKEY_LOCAL_MACHINE . De manière quelque peu inattendue, cela semble également vrai lorsque je demande reg pour une valeur.

C:\>reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "CurrentVersion"

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
    CurrentVersion    REG_SZ    6.1

C:\>reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "CurrentVersion"

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
    CurrentVersion    REG_SZ    6.1

Existe-t-il une référence affirmant qu'ils sont équivalents, ou que l'un est un alias de l'autre ? Ou existe-t-il, en fait, des cas où ils ne sont pas la même chose ?

79voto

nukefusion Points 3688

Non, bien que HKLM soit une abréviation de HKEY_LOCAL_MACHINE, il n'existe aucune déclaration officielle de Microsoft indiquant qu'elle est toujours équivalente. En fait, il indique explicitement que la disponibilité de ces raccourcis dépend du logiciel utilisé et qu'ils sont généralement appelés "abréviations couramment utilisées".

Dans certains cas, l'abréviation de HKEY_LOCAL_MACHINE en HKLM n'est pas autorisée, par exemple lorsque définir une politique :

Les conditions suivantes s'appliquent :

  1. Le chemin du registre doit être entouré de signes de pourcentage (%).
  2. Le paramètre de registre doit être de type REG_SZ ou REG_EXPAND_SZ. Si la valeur de registre contient des variables d'environnement, celles-ci seront développées lors de l'évaluation de la stratégie.
  3. N'utilisez pas HKLM comme abréviation de HKEY_LOCAL_MACHINE, ni HKCU comme abréviation de HKEY_CURRENT_USER.
  4. Une règle de chemin d'accès au registre peut également inclure un chemin d'accès suffixe.

(Extrait de la documentation de Politiques de restriction des logiciels , gras ajouté par moi.)

4voto

Kunal Points 1859

Oui.

HKLM est l'abréviation de la variable HKEY_LOCAL_MACHINE.

Et HKCU signifie HKEY_CURRENT_USER.

C'est la même chose.

Selon Wikipedia :

Il existe sept clés racines prédéfinies, traditionnellement nommées en fonction de leurs handles constants définis dans l'API Win32, ou par des abréviations synonymes (selon les applications) :

  • HKEY_LOCAL_MACHINE ou HKLM
  • HKEY_CURRENT_CONFIG ou HKCC (uniquement dans Windows 9x et NT)
  • HKEY_CLASSES_ROOT ou HKCR
  • HKEY_CURRENT_USER ou HKCU
  • HKEY_USERS ou HKU
  • HKEY_PERFORMANCE_DATA (uniquement sous Windows NT, mais invisible dans l'éditeur de registre Windows)
  • HKEY_DYN_DATA (uniquement sous Windows 9x, et visible dans l'éditeur de registre Windows)

3voto

Red Tux Points 2074

J'ajouterais qu'avec PowerShell, HKLM existe en tant que montage pour HKEY_LOCAL_MACHINE, en tant que tel, il est mutable. Exemple

PS > Get-Item HKLM:
Name                           Property
----                           --------
HKEY\_LOCAL\_MACHINE

PS > Remove-PSDrive HKLM

PS > Get-Item HKLM:
Get-Item : Cannot find drive. A drive with the name 'HKLM' does not exist.

2voto

Joe Points 274

Comme le note Twinkles, il s'agit d'une abréviation couramment utilisée. Je ne vois pas de source disant explicitement qu'elle ne peut pas être utilisée, mais j'ai trouvé un tableau indiquant les abréviations couramment utilisées pour les sous-arbres du registre de Windows 2000, qui sont pour la plupart les mêmes que celles du jeu actuel (à partir de Windows 7). Voici ce que j'ai trouvé :

En Aperçu du registre pour Windows 2000 (modifié pour le formatage pour ce site) :

Table 16.1 Registry Subtrees
HKEY_CLASSES_ROOT  HKCR
HKEY_CURRENT_USER HKCU
HKEY_LOCAL_MACHINE HKLM
HKEY_USERS HKU
HKEY_CURRENT_CONFIG HKCC
HKEY_PERFORMANCE_DATA No commonly used abbreviation

Cette liste est présentée dans un Article de support XP également, sans le sous-arbre Performance Data (qui, je pense, a disparu et Pankaj/Wikipedia soutiennent cette idée).

Il y a aussi le Référence au registre Windows J'ai créé un lien vers la page des clés prédéfinies, qui répertorie les différents sous-arbres, chacun d'entre eux ayant des liens vers sa page spécifique (la plupart d'entre eux allant vers des pages Windows Server 2003 pour une raison quelconque). Les abréviations y sont également listées, ce qui est cohérent avec ce qui précède.

Aucune de ces pages n'aborde la question de savoir si les abréviations peuvent être utilisées en programmation, ce qui m'amène à penser que ce n'est pas explicitement indiqué quelque part, mais qu'il s'agit plutôt d'une règle non formulée (n'utilisez pas d'abréviations si vous n'êtes pas sûr qu'elles fonctionneront).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X