Reputation: 63
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
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.
Upvotes: 7
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
Reputation:
Type this command:
runas /noprofile /user:Administrator cmd
Then enter the Administrator password.
Upvotes: -1