windowsfilebatch-fileregistryelevated-privileges

How to make a batch file execute a reg file


I have the following code

@echo off
file.reg
pause

This works but when the batch file is elevated I get an error saying that it cannot find the file. does any one know what I am doing wrong.


Solution

  • Try this:

    @echo off
    rem set __COMPAT_LAYER=RunAsInvoker  
    REGEDIT.EXE /S "%~dp0file.reg"
    pause
    

    If you are accessing locations in the registry that does not require admin privileges you can use __COMPAT_LAYER environment variable. Just execute this before using regedit:

    set __COMPAT_LAYER=RunAsInvoker
    

    That will prevent UAC pop-up if your script is not ran as administrator.