Roei Givati
Roei Givati

Reputation: 63

run CMD as administrator in PowerShell

I'm trying to execute a command prompt as administrator by using powershell. (like when you press right click on cmd icon and choose run as administrator). what should I add to the following in order to do so?

& cmd.exe /c $VAR

Upvotes: 5

Views: 40661

Answers (3)

mklement0
mklement0

Reputation: 437062

Somewhat obscurely, you must use Start-Process with argument -Verb RunAs in order to launch an elevated process (a process with administrative privileges) in PowerShell:

# The command to pass to cmd.exe /c
$var = 'echo hello world & pause'

# Start the process asynchronously, in a new window,
# as the current user with elevation (administrative rights).
# Note the need to pass the arguments to cmd.exe as an *array*.
Start-Process -Verb RunAs cmd.exe -Args '/c', $var

Note:

  • To make the invocation - which invariably executes in a new window - synchronous, add
    -Wait.

  • Unless the process you're calling from is itself already elevated, you'll get an interactive UAC (User Account Control) prompt.

    • While it is possible to configure your system to not require this prompt, doing so is ill-advised for security reasons - see this answer.

Upvotes: 7

Patrick Burwell
Patrick Burwell

Reputation: 173

@Roei Givati - I just solved this one myself for Jenkins, in fact! From a task scheduler set this command below (you get it from the nodes page on your jenkins dashboard), directly with the whole path, and give it the /K for the option in task scheduler. I also set the path as well, to be sure. Then you can use a non-interactive svc account to launch the process as a cmd file:

java -jar agent.jar -jnlpUrl https://jenkins-path/nts4/computer//slave-agent.jnlp -secret f7351fa6d6774765432111b704cfd777931144bb32c42 -workDir "driveletter:path\nts4"

Upvotes: 0

user9234734
user9234734

Reputation:

Type this command:

runas /noprofile /user:Administrator cmd 

Then enter the Administrator password.

Upvotes: -1

Related Questions