This is an update of a post that originally appeared on May 14, 2014.
Recently I wrote the Simulating Users with the RunAs Command post that describes how to use the
RunAs command to perform tasks that the user’s account can’t normally perform. (The basics of using the
RunAs command appear in Windows Command-Line Administration Instant Reference.) A number of you have written to tell me that there is a problem with using the
RunAs command with built-in commands—those that appear as part of
CMD.EXE. For example, when you try the following command:
RunAs /User:Administrator "md \Temp"
you are asked for the Administrator password as normal. After you supply the password, you get two error messages:
RUNAS ERROR: Unable to run - md \Temp 2: The system cannot find the file specified.
In fact, you find that built-in commands as a whole won’t work as anticipated. One way to overcome this problem is to place the commands in a batch file and then run the batch file as an administrator. This solution works fine when you plan to execute the command regularly. However, it’s not optimal when you plan to execute the command just once or twice. In this case, you must execute a copy of the command processor and use it to execute the command as shown here:
RunAs /User:Administrator "cmd /c \"md \Temp""
This command looks pretty convoluted, but it’s straightforward if you take it apart a little at a time. At the heart of everything is the
md \Temp part of the command. In order to make this a separate command, you must enclose it in double quotes. Remember to escape the double quote that appears within the command string by using a backslash (as in
To execute the command processor, you simply type
cmd. However, you want the command processor to start, execute the command, and then terminate, so you also add the
/c command line switch. The command processor string is also enclosed within double quotes to make it appear as a single command to
Make sure you use forward slashes and backslashes as needed. Using the wrong slash will make the command fail.
RunAs command can now proceed as you normally use it. In this case, the command only includes the username. You can also include the password, when necessary. Let me know if you find this workaround helpful at [email protected].