“HKLM”是“HKEY_LOCAL_MACHINE”的别名吗?

Joe*_*ney 61 windows windows-registry

HKLM通常用作 的缩写HKEY_LOCAL_MACHINE。有点出乎意料的是,当我要求reg一个值时,这似乎也是真的。

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
Run Code Online (Sandbox Code Playgroud)

是否有引用断言它们是等效的,或者一个是另一个的别名?或者,事实上,是否存在它们不是一回事的情况?

Twi*_*les 79

不,虽然HKLM是HKEY_LOCAL_MACHINE的缩写,但微软并没有官方声明它总是等价的。事实上,它明确指出这些快捷方式的可用性取决于所使用的软件,它们通常被称为“常用缩写”。

在某些情况下,不允许将 HKEY_LOCAL_MACHINE 缩写为 HKLM,例如在定义策略时

以下条件适用:

  1. 注册表路径必须用百分号 (%) 括起来。
  2. 注册表设置必须是 REG_SZ 或 REG_EXPAND_SZ 类型。如果注册表值包含环境变量,则在评估策略时将扩展这些变量。
  3. 不要将 HKLM 用作 HKEY_LOCAL_MACHINE 的缩写,或将 HKCU 用作 HKEY_CURRENT_USER 的缩写。
  4. 注册表路径规则还可以包括后缀路径。

(来自软件限制政策的文档,我加粗了。)

  • *> 它明确指出这些快捷方式的可用性取决于所使用的软件,它们通常被称为“常用缩写”* 如果您能链接到相关来源,那就太好了。(并不是说我不信任你,而是权威消息来源使声明更有力。) (13认同)
  • 这是正确答案。全名是内核唯一支持的。任何缩写都是特定于工具的。 (3认同)