Run a script or application in the Windows Shell.
Syntax .ShellExecute "application", "parameters", "dir", "verb", window .ShellExecute 'some program.exe', '"some parameters with spaces"', , "runas", 1
Key application The file to execute (required) parameters Arguments for the executable dir Working directory verb The operation to execute (runas/open/edit/print) window View mode application window (normal=1, hide=0, 2=Min, 3=max, 4=restore, 5=current, 7=min/inactive, 10=default)
Note that double " and single ' quotes that can be used to delimit paths with spaces.
The runas verb can be used to elevate permissions. This was undocumented up until 2020 but is now official. When a script is run with elevated permissions several aspects of the user environment may change: The current directory, the current TEMP folder and any mapped drives will be disconnected.
runas will fail if you are running in WOW64 (a 32 bit process on 64 bit windows) for example %systemroot%\syswow64\cmd.exe ...
The ShellExecute method is a member of the IShellDispatch2 object.
Run a batch script with elevated permissions, flag=runas:
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "E:\demo\batchScript.cmd", "", "", "runas", 1
Run a VBScript with elevated permissions, flag=runas:
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "cscript", "E:\demo\vbscript.vbs", "", "runas", 1
“If you don't execute your ideas, they die” ~ Roger Von Oech
Run with elevated permissions - Script to run as Admin.
.Exec - Execute command, returning an object.
.Run - Run a command.
joeware.net - CPAU (Create Process As User) like RunAs but with an option to encrypt the password.
Equivalent CMD command: ShellRunAs - Run a command under a different user account.