HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE are both information storage registries in the Windows registry compile unit found in Windows Operating System since Windows version 3.1.
The Windows registry contains information about many settings that is either by default or manually changeable by the user or a group of users depending on their needs.
- HKEY_CURRENT_USER stores user-specific settings for the currently logged-in user, whereas HKEY_LOCAL_MACHINE stores system-wide settings.
- HKEY_CURRENT_USER is a subkey of HKEY_USERS, which holds settings for all users on a computer.
- Changes made in HKEY_CURRENT_USER affect only the active user, while changes in HKEY_LOCAL_MACHINE apply to all users on the system.
HKEY_CURRENT_USER vs HKEY_LOCAL_MACHINE
The difference between HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE is that while in HKEY_CURRENT_USER, the information registry consists of all the necessary detailing about the computer system and display needed by an individual user, the HKEY_LOCAL_MACHINE registry holds information regarding the computer as a whole single unit that can come in need for a group of individuals as a whole.
HKEY_CURRENT_USER information registry holds only if the computer needs are limited to a single user, that is, one person uses the computer.
It contains an index of all the OS functions that can affect the single user and thus can also be edited by them alone. It is a single-user type of registry, both edited and used by an individual alone.
HKEY_LOCAL_MACHINE information registry comes into use in those cases when a single computer unit is shared among multiple users, all of whom have equal access to the system.
The information index that this registry holds has all the OS functions needed to clear the technical aspects of the computer system that can be accessed by all those who use the system unit.
|Parameters of Comparison
|Settings Under Control
|Desktop wallpaper, other display settings, onscreen keyboard layout
|The file path, versions, hardware connections in the OS
|Could be Edited by
|A single user
|Number of Copies
|Multiple copies of the index values
|A single copy of the information index value.
|No sub key available
|Multiple sub keys
What is HKEY_CURRENT_USER?
HKEY_CURRENT_USER is among the multiple registries that come with the Windows OS. It holds configuration details that are specific to the software of individual users.
HKEY_CURRENT_USER is the registry that contains the entire necessary information specific to a single user. It can hold multiple copies regarding a single setting under its control but with different values.
In HKEY_CURRENT_USER, if a user wishes to change or edit any entries that are by default entered in the registry, then he/ she can do so.
But such changes made by them won’t be visible for any other computer system but only for themselves. And similarly, a single computer system can only be edited by the individual user for whom it is assigned.
A user can’t simply log in to the account of another’s HKEY_CURRENT_USER account and start editing the contents as that account might belong to another.
HKEY_CURRENT_USER registries are always loaded only after the specific individual user logs in to his/her account.
This method of registry loading seems to avoid confusion if the registries are all loaded as soon as the system activates. This loading system helps the Operating System to identify the user whose registry needs to be loaded.
But if in case the user does not log into their specific account but instead into a guest account on their device or into the default account in the system, then the registry loaded would be the default HKEY_CURRENT_USER account specific to the computer system.
For a new user who hasn’t yet made any edits or registry changes, the HKEY_CURRENT_USER account of theirs would hold all the default HKEY_CURRENT_USER account values.
The settings that could be changed in the HKEY_CURRENT_USER are all user-specific. For example, display settings like color, desktop background, positioning of the applications, etc.
Other settings that come under the HKEY_CURRENT_USER are onscreen keyboard layout window sizes etc.
What is HKEY_LOCAL_MACHINE?
HKEY_LOCAL_MACHINE is one among the many information registries that help create the foundation for the Windows registry.
HKEY_LOCAL_MACHINE is a major registry that holds the major configuration information for the programming software the user might need for their computer system.
HKEY_LOCAL_MACHINE holds the information registry regarding the whole operating system as a whole instead of for the individual users who might operate it.
By creating a change in any of the entries made by default in the registry, a user is editing it for the entire system, thereby changing the value for all the users that might access it.
Anyone can change the HKEY_LOCAL_MACHINE registry if the users use the OS. This is because all can view the change made by one.
It has a single copy regarding the information that it holds, giving it a single unique value instead of many.
HKEY_LOCAL_MACHINE is loaded onto the user account at the time the system is started or initiated into action. Hence giving all user logs in accounts the same information registry.
The information held on the HKEY_LOCAL_MACHINE registry is for the whole computer, including its technical capabilities that could be called global settings like the file path of a program or the software version.
It doesn’t only hold software configuration information but it can also withhold information about the hardware and other device drivers that are in connection with the OS.
HKEY_LOCAL_MACHINE registry has 4 subkeys that are considered its main subkeys. These are SAM, SECURITY, SOFTWARE, and SYSTEM.
These subkeys help in the smooth index handling capacity of the HKEY_LOCAL_MACHINE registry.
In Windows Vista and Windows version 7 and above, a fifth subkey is seen: the HARDWARE subkey.
Even rarer is the 6th subkey called BCD. Among all of these subkeys, the most common is the SOFTWARE that accompanies almost all the HKEY_LOCAL_MACHINE information registry at the time of system loading.
Main Differences Between HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE
- While in HKEY_LOCAL_MACHINE, only one copy of the information registry is available for the users, in the case of HKEY_CURRENT_USER, multiple copies of the given information registry values regarding the single user are present.
- In HKEY_CURRENT_USER, if the user changes the values of the default registry on his account, the change won’t be visible to others, but in the case of HKEY_LOCAL_MACHINE, a change in the value by one user changes the registry values for all the users.
- HKEY_LOCAL_MACHINE can be edited by any number of a user from their account to create a change in everyone’s registry, whereas in HKEY_CURRENT_USER, only one user can edit the registry for themselves.
- HKEY_CURRENT_USER is loaded when a user logs in to their account, while the HKEY_LOCAL_MACHINE registry is loaded as soon as the system in use is started.
- While HKEY_LOCAL_MACHINE holds information regarding the global settings that are in connection with the computer system, HKEY_CURRENT_USER holds information entries related to mostly the display settings and other users changeable manual settings.
Last Updated : 11 June, 2023
I’ve put so much effort writing this blog post to provide value to you. It’ll be very helpful for me, if you consider sharing it on social media or with your friends/family. SHARING IS ♥️
Sandeep Bhandari holds a Bachelor of Engineering in Computers from Thapar University (2006). He has 20 years of experience in the technology field. He has a keen interest in various technical fields, including database systems, computer networks, and programming. You can read more about him on his bio page.