Batch file: Drop elevated privileges (run a command as original user)

batch-file, elevated-privileges

Solution

You can run a command with restricted privileges with:

runas /trustlevel:0x20000 "YourCommandHere"

You should provide the absolute path to your command including any arguments in double quotes as an argument to `runas`.

If you would like to run more than one command with restricted privileges, you can put them in a separate batch file and run it with:

runas /trustlevel:0x20000 "cmd /C PathToYourBatchFile"

Anyway, this will open a new console with restricted privileges. You also have to use this syntax whenever you wish to run with restricted privileges an internal command (like `copy`, `del`, etc.) as these are provided by the command line interpreter and do not have an associated path.

Note that `0x20000` is the trust level of standard users. You can list other available trust levels by running

runas /showtrustlevels

Problem

I have a batch file that starts with elevated privileges (my installer spawns it), but at a certain point I need to run a command as the original user who started my installer (i.e. drop from the elevated privileges). Is it possible to do so?

Original source