Skip to content
⌘ NSIS Forum Archive

Write registry key to HKEY_CURRNET_USER from RunAs Admin installer

9 posts

marcins#

Write registry key to HKEY_CURRNET_USER from RunAs Admin installer

Hello,
I was looking for this a few days and I still don't know how to do this, so maybe someone here can help me!
I have installer that must be run as Admin to copy all files into right directories but at same time I need to write registry key to HKEY_CURRNET_USER (can be all users in the system, doesn't matter). But when I'll run installer as Admin it will write registry key (only) to Admin's HKEY_CURRNET_USER, not user that I want.

So is there any way/script to write something for HKEY_CURRENT_USER to all users in system?
HKEY_LOCAL_MACHINE is not good for me... must be HKEY_CURRENT_USER.
MSG#
You can user enumusersreg to get access to all trees in the HKU hive. If you only want access to the user who first executed the installer, you'll need the UAC plugin (not recommended).

Note however that you should not write to userlevel registry in an admin-only installer. If an installer requires admin access, it should always install for all users, and thus should write to HKLM. Only userlevel installers are supposed to install for a single user. This is the way Windows is designed to be used.
marcins#
Well it doesn't work like that to me. Can someone please help me?

When I run it on Admin account scripts add lines to registry but only for Admin.

Here is simple script that i want to use.

!include "EnumUsersReg.nsh"
Name EnumUsersReg
OutFile EnumUsersReg.exe

ShowInstDetails show

Section
; use ${un.EnumUsersReg} in uninstaller sections
${EnumUsersReg} CallbackFunction temp.key
SectionEnd

Function CallbackFunction

Pop $0

; registry x32
WriteRegStr HKU "Software\JavaSoft\Prefs\com\ibm\/S/P/S/S\/S/P/S/S /Statistics\19.0\ui\doc_types\dataeditor\menus\19;/Predictive /Solutions;0;;\0;/P/S /D/A/S;0;;" "0" "separator;"
WriteRegStr HKU "Software\JavaSoft\Prefs\com\ibm\/S/P/S/S\/S/P/S/S /Statistics\19.0\ui\doc_types\output\menus\19;/Predictive /Solutions;0;;\0;/P/S /D/A/S;0;;" "0" "separator;"
WriteRegStr HKU "Software\JavaSoft\Prefs\com\ibm\/S/P/S/S\/S/P/S/S /Statistics\19.0\ui\doc_types\syntax\menus\19;/Predictive /Solutions;0;;\0;/P/S /D/A/S;0;;" "0" "separator;"

DetailPrint $0

FunctionEnd
marcins#
So how i should write that Key? I cant use numbers like S-1-5-21... because they are different in every windows?! Please help!
Anders#
Originally Posted by marcins View Post
So how i should write that Key? I cant use numbers like S-1-5-21... because they are different in every windows?! Please help!
EnumUsersReg knows
msroboto#
I know you say that you have to write this for every user.
How will you handle new users added to the system after your install?
Just something to consider.
Anders#
Originally Posted by msroboto View Post
I know you say that you have to write this for every user.
How will you handle new users added to the system after your install?
Just something to consider.
The correct way to handle this is to copy default settings to HKCU when your _application_ is started for the first time as that user