Note that HKCU is diffrent for each logged user. To edit remotely HKCU you
need to have suitable registry hive loaded. It might be that regini runs
remotely using system account or if it runs with same user than localy,
there is no HKCU registry hive available.
One solution could be to use psexec from
www.sysinternals.com. It allows you
to run commands on remote machine like you have telnet session. You can tell
psexec to log on with specific user and load HKCU registry hive. Here is
psexec online help:
PsExec executes a program on a remote system, where remotely executed
console
applications execute interactively.
Usage: psexec [\\computer][-u user [-p psswd]][-s|-e][-i][-c
[-f|-v]][-d][-<priority>][-a n,n,...] cmd [arguments]
computer Direct PsExec to run the application on the remote
computer. If you omit the computer name PsExec runs the application on the
local system.
-u Specifies optional user name for login to remote computer.
-p Specifies optional password for user name. If you omit this
you will be prompted to enter a hidden password.
-s Run the remote process in the System account.
-e Loads the specified account's profile.
-i Run the program so that it interacts with the desktop on the
remote system.
-c Copy the specified program to the remote system for
execution. If you omit this option the application must be in the system
path on the remote system.
-f Copy the specified program even if the file already exists
on the remote system.
-v Copy the specified file only if it has a higher version
number or is newer on than the one on the remote system.
-d Don't wait for process to terminate (non-interactive).
-priority Specifies -low, -belownormal, -abovenormal, -high or
-realtime to run the process at a different priority.
-a Separate processors on which the application can run with
commas where 1 is the lowest numbered CPU. For example, to run the
application on CPU 2 and CPU 4, enter: "-a 2,4"
program Name of application to execute.
arguments Arguments to pass (note that file paths must be
absolute paths on the target system).
You can enclose applications that have spaces in their name with quotation
marks e.g. psexec \\marklap "c:\long name app.exe". Input is only passed to
the remote system when you press the enter key, and typing Ctrl-C terminates
the remote process.
If you omit a user name the process will run in the context of your account
on the remote system, but will not have access to network resources (because
it is impersonating). Specify a valid user name in the Domain\User syntax if
the remote process requires access to network resources or to run in a
different account. Note that the password is transmitted in clear text to
the remote system.
Error codes returned by PsExec are specific to the applications you execute,
not PsExec.