“HKLM”, “HKEY_LOCAL_MACHINE” için bir takma ad mıdır?


61

HKLMgenellikle kısaltması olarak kullanılır HKEY_LOCAL_MACHINE. Biraz beklenmedik bir şekilde bu da regbir değer istediğimde doğru gibi görünüyor .

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

Eşdeğer olduklarını veya bir diğeri için bir takma ad olduğunu iddia eden bir referans var mı? Yoksa aslında aynı şeyin olmadığı durumlar var mı?

Yanıtlar:


79

Hayır, HKLM, HKEY_LOCAL_MACHINE için bir kısaltma olmasına rağmen, Microsoft'tan her zaman eşdeğer olduğuna dair resmi bir açıklama yoktur. Aslında, açıkça bu kısayolların kullanılabilirliğinin kullanılan yazılıma bağlı olduğunu ve genellikle "yaygın olarak kullanılan kısaltmalar" olarak adlandırıldığını ifade eder.

Örneğin bir politika tanımlarken , HKEY_LOCAL_MACHINE’in HKLM olarak kısaltılmasına izin verilmediği durumlar vardır :

Aşağıdaki koşullar geçerlidir:

  1. Kayıt yolu, yüzde işaretleriyle (%) eklenmelidir.
  2. Kayıt defteri ayarı bir REG_SZ veya REG_EXPAND_SZ türünde olmalıdır. Kayıt defteri değeri ortam değişkenleri içeriyorsa, politika değerlendirildiğinde bunlar genişletilecektir.
  3. HKLM'yi HKEY_LOCAL_MACHINE kısaltması olarak veya HKCU'yu HKEY_CURRENT_USER kısaltması olarak kullanmayın.
  4. Bir kayıt defteri yolu kuralı ayrıca bir sonek yolu içerebilir.

( Yazılım kısıtlama politikalarının belgelerine göre cesaret eklemiştir.)


3
Bu doğru cevap. Tam isimler çekirdeğin desteklediği tek isimdir. Herhangi bir kısaltma araca özeldir.
Andrew Medico

13
> bu kısayolların mevcudiyetinin kullanılan yazılıma bağlı olduğunu ve genellikle "yaygın olarak kullanılan kısaltmalar" olarak adlandırıldığını açıkça belirtir . (Sana güvenmediğimden değil, ama yetkili bir kaynak
Bob

1
Ayrıca bu kısaltmaları .regdosyalarda kullanamazsınız , oradaki kare kapsamlarının tam adını yazmanız gerekir

@LightnessRacesinOrbit Yanlış olduğunu kanıtlayan bazı kanıtlar üretmekten çekinmeyin.
Andrew Medico

4

Evet.

HKLM, HKEY_LOCAL_MACHINE Değişken anlamına gelir.

HKCU ise HKEY_CURRENT_USER anlamına gelir.

Onlar aynı şey.

Wikipedia'ya göre :

Geleneksel olarak Win32 API'de tanımlanan sabit tutamaçlarına göre adlandırılmış veya eş anlamlı kısaltmalarla (uygulamalara bağlı olarak) adlandırılmış yedi önceden tanımlanmış kök anahtarı vardır:

  • HKEY_LOCAL_MACHINE veya HKLM
  • HKEY_CURRENT_CONFIG veya HKCC (yalnızca Windows 9x ve NT’de)
  • HKEY_CLASSES_ROOT veya HKCR
  • HKEY_CURRENT_USER veya HKCU
  • HKEY_USERS veya HKU
  • HKEY_PERFORMANCE_DATA (yalnızca Windows NT’de, ancak Windows Kayıt Defteri Düzenleyicisi’nde görünmez)
  • HKEY_DYN_DATA (yalnızca Windows 9x'te ve Windows Kayıt Defteri Düzenleyicisi'nde görünür)

16
Bu onların konuşmalarına eşdeğer olduklarını ancak aynı şey veya takma adlar olarak tanımlanmadıklarını söylüyor; özellikle "uygulamalara bağlı".
Joe Kearney

Aynı zamanda çoğunlukla kaynaklanmamış bir Vikipedi sayfası, bu yüzden buna değer olanı alın (büyük olasılıkla doğru ama gerçekçi bir SO veya SU sayfasından daha iyi değil, belki de daha kötüsü).
Joe,

Aynı şey olmalarına rağmen, kısaltma standardın bir parçası değildir ve bu nedenle saf bir eşdeğer değildir.

4

PowerShell ile HKLM'nin HKEY_LOCAL_MACHINE için bir bağ olarak var olduğunu ve eklenebilir olduğunu ekleyeceğim. Örnek

PS> Öğe Al HKLM:
İsim Özelliği
---- --------
HKEY_LOCAL_MACHINE

PS> PSDrive HKLM Kaldır

PS> Öğe Al HKLM:
Get-Item: Sürücü bulunamıyor. 'HKLM' adında bir sürücü mevcut değil.

2

Twinkles'in belirttiği gibi, yaygın olarak kullanılan bir kısaltmadır. Açıkça kullanılamayacağını söyleyen herhangi bir kaynak göremiyorum, ancak çoğunlukla geçerli kümeyle aynı olan Windows 2000 kayıt defteri alt ağaçlarının sık kullanılan kısaltmalarını gösteren bir tablo buldum (Windows 7'den itibaren). İşte orada öğrendiklerim:

Gönderen Windows 2000 için Kayıt Bakış (Bu site için biçimlendirmek için modifiye):

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

Bu liste, bir XP destek makalesinde , Performans Verileri alt ağacını (şu an gittiğini düşünüyorum ve Pankaj / Wikipedia bu düşünceyi desteklemektedir) eksi olarak sunulmaktadır .

Ayrıca , her biri kendi özel sayfalarına (çoğu nedense Windows Server 2003 sayfalarına giden) giden çeşitli alt ağaçların listelendiği, Önceden Tanımlanmış Anahtarlar sayfasına bağladığım Windows Kayıt Defteri Başvurusu var. Yukarıdakilerle tutarlı olan kısaltmaları da listeliyorlar.

Ancak bu sayfaların hiçbiri kısaltmaların programlamada kullanılıp kullanılamayacağını tartışmaz, bu da beni herhangi bir yerde açıkça ifade edilmediğine inanmaya zorlar - ama daha açıklanmamış bir kuraldır (çalışacaklarından emin değilseniz kısaltmaları kullanmayın) .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.