The paths in the question don't include the apps installed on a user level.
They are in the same location, but under HKEY_CURRENT_USER
instead of HKEY_LOCAL_MACHINE
.
So in total:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
But as you can tell, HKEY_CURRENT_USER
only applies to the current user.
To access all the users there is the HKEY_USERS
registry root, which has a folder for each user.
So instead, you need:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
for each user sid under HKEY_USERS:
HKEY_USERS\<user sid>\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_USERS\<user sid>\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
P.S. If you want to match between a user's SID and its name, you can look in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<user sid>
for the key named ProfileImagePath
, which should equal C:\Users\<user name>
. Not all users have this key, I think these are system users or something which you don't want to touch.