Can I get UAC prompt for user from batch file?

For example I need put some keys to registry under CurrentControlSet from batch file by

  reg import path\to\my.reg

PS. runas is not a solution as my customers uses different Windows localisation and I can not guess which name used for Administrator account (this can be Администратор)...

And script don't know administrator password.

And UAC dialog box does not require password entering...

  • Have you tried the runas command? – Barend Oct 30 '11 at 14:16
  • I update answer in PS section... – gavenkoa Oct 30 '11 at 14:26
  • In that case you may have to ship an application manifest with your batch file, e.g. such as in the "Requesting elevation" section of this wikipedia article. – Barend Oct 30 '11 at 21:54
  • From Wikipedia: An assembly manifest is a text file containing metadata about .NET assemblies. Bat file does not use manifest... – gavenkoa Oct 30 '11 at 23:40

I really love this solution from Anders.

@if (1==1) @if(1==0) @ELSE
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"||(
    cscript //E:JScript //nologo "%~f0"
    @goto :EOF
reg import path\to\my.reg
@goto :EOF
@end @ELSE
ShA=new ActiveXObject("Shell.Application")
ShA.ShellExecute("cmd.exe","/c \""+WScript.ScriptFullName+"\"","","runas",5);

Should work flawlessly


Create a shortcut to reg.exe, give it the required arguments and set the "run as administrator" flag, then launch the shortcut from the batch file.

  • Finally I found solution. I can not create shortcut as script must perform action automatically... – gavenkoa Oct 30 '11 at 23:37
  • @gavenkoa: why would using a shortcut prevent the script from performing the action automatically? – Harry Johnston Feb 26 '13 at 18:27
  • OK, I firstly don't get your idea... It is easy to put shortcut into %TMP% dir... +1 – gavenkoa Feb 26 '13 at 21:25

I automatically generate .js and .bat files. From .js call .bat so .bat can perform privileged actions (like adding values to registry as in example).


var fso = new ActiveXObject("Scripting.FileSystemObject");
var curdir = fso.GetParentFolderName(WScript.ScriptFullName);

var objShell = new ActiveXObject("shell.application");
// http://msdn.microsoft.com/en-us/library/windows/desktop/gg537745.aspx
//                 Shell.ShellExecute method
// iRetVal = Shell.ShellExecute( sFile, [ vArguments ], [ vDirectory ], [ vOperation ], [ vShow ] )
objShell.ShellExecute("regimport.bat", curdir, "", "runas", 1); 


cd /d %1

reg import env_set.reg
reg import env_del.reg

cd is essential as bat file start execution from %WINDIR%...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.