“HKLM”은“HKEY_LOCAL_MACHINE”의 별칭입니까?


61

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

그것들이 동등하거나 다른 것이 별명이라고 주장하는 참조가 있습니까? 아니면 실제로 같은 것이 아닌 경우가 있습니까?

답변:


79

아니요, HKLM은 HKEY_LOCAL_MACHINE의 약자이지만, 항상 동등한 내용이라는 Microsoft의 공식 진술은 없습니다. 실제로, 이러한 바로 가기의 사용 가능 여부는 사용중인 소프트웨어에 따라 다르며 일반적으로 "일반적으로 사용되는 약어"라고합니다.

정책을 정의 할 때와 같이 HKEY_LOCAL_MACHINE을 HKLM으로 축약 할 수없는 경우가 있습니다 .

다음 조건이 적용됩니다.

  1. 레지스트리 경로는 백분율 기호 (%)로 묶어야합니다.
  2. 레지스트리 설정은 REG_SZ 또는 REG_EXPAND_SZ 유형이어야합니다. 레지스트리 값에 환경 변수가 포함 된 경우 정책을 평가할 때 환경 변수가 확장됩니다.
  3. HKLM을 HKEY_LOCAL_MACHINE의 약어로 사용하거나 HKCU를 HKEY_CURRENT_USER의 약어로 사용하지 마십시오.
  4. 레지스트리 경로 규칙에는 접미사 경로가 포함될 수도 있습니다.

( 소프트웨어 제한 정책 문서 에서 대담성이 추가되었습니다.)


3
이것이 정답입니다. 전체 이름은 커널에서 지원하는 유일한 이름입니다. 약어는 도구마다 다릅니다.
Andrew Medico

13
>이 단축키의 사용 가능 여부는 사용중인 소프트웨어에 따라 다르며 일반적으로 "일반적으로 사용되는 약어"라고 합니다. 소스에 링크 할 수 있다면 좋을 것입니다. (나는 당신을 믿지 않지만 권위있는 출처가 주장을 더 강하게 만듭니다.)
Bob

1
또한 이러한 약어를 .reg파일에 사용할 수 없습니다. 거기에서 사각형 범위 안에 전체 이름을 작성해야합니다.

@LightnessRacesinOrbit 잘못되었다는 증거를 자유롭게 제시하십시오.
Andrew Medico

4

예.

HKLM은 HKEY_LOCAL_MACHINE 변수를 나타냅니다.

HKCU는 HKEY_CURRENT_USER를 나타냅니다.

그들은 같은 것입니다.

Wikipedia 에 따르면 :

일반적으로 Win32 API에 정의 된 상수 핸들 또는 동의어 약어 (응용 프로그램에 따라 다름)에 따라 명명 된 7 개의 사전 정의 된 루트 키가 있습니다.

  • HKEY_LOCAL_MACHINE 또는 HKLM
  • HKEY_CURRENT_CONFIG 또는 HKCC (Windows 9x 및 NT에서만)
  • HKEY_CLASSES_ROOT 또는 HKCR
  • HKEY_CURRENT_USER 또는 HKCU
  • HKEY_USERS 또는 HKU
  • HKEY_PERFORMANCE_DATA (Windows NT에서만, Windows 레지스트리 편집기에서는 보이지 않음)
  • HKEY_DYN_DATA (Windows 9x에서만, Windows 레지스트리 편집기에서 볼 수 있음)

16
이것은 구어 적으로 동일하지만 동일하거나 별명으로 정의 된 것은 아니라고 말합니다. 특히 "응용 프로그램에 따라".
Joe Kearney 8

또한 대부분 소스가없는 Wikipedia 페이지이므로 가치가있는 것 (아마도 정확하지만 실제로는 SO 또는 SU 페이지보다 나쁘거나 더 나쁠 수 있음)로 가져 가십시오.
Joe

그것들은 같은 것이지만, 약어는 표준의 일부가 아니므로 순수한 동등 물이 아닙니다.

4

PowerShell을 사용하면 HKLM이 HKEY_LOCAL_MACHINE의 마운트로 존재하므로 변경할 수 있다고 덧붙입니다. 예

PS> Get-Item HKLM :
이름 속성
---- --------
HKEY_LOCAL_MACHINE

PS> Remove-PSDrive HKLM

PS> Get-Item HKLM :
Get-Item : 드라이브를 찾을 수 없습니다. 이름이 'HKLM'인 드라이브가 없습니다.

2

Twinkles가 언급했듯이, 일반적으로 사용되는 약어입니다. 명시 적으로 사용할 수 없다는 소스는 보이지 않지만 Windows 2000 레지스트리 하위 트리에 대해 일반적으로 사용되는 약어를 나타내는 표를 찾았습니다. 여기 내가 찾은 것이 있습니다.

에서 Windows 2000 용 레지스트리 개요 (이 사이트의 서식 수정) :

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

이 목록은 XP 지원 기사 에도 나와 있으며 Performance Data 하위 트리를 뺀 것입니다.

또한 사전 정의 된 키 페이지에 링크 된 Windows Registry Reference 도 있습니다. 여기에는 다양한 하위 트리가 나열되어 있으며 각 서브 트리에는 특정 페이지에 대한 링크가 있습니다 (대부분의 이유로 Windows Server 2003 페이지로 이동). 여기에는 위의 약어와 일치하는 약어도 나열되어 있습니다.

이 페이지들 중 어느 것도 약어가 프로그래밍에 사용될 수 있는지에 대해 논의하지 않으므로 어느 곳에서나 명시 적으로 언급되지는 않지만 믿을 수없는 규칙입니다 (작동하지 않을 경우 약어를 사용하지 마십시오) .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.