Run process as admin with subprocess.run in python

2020-02-12 14:06发布

问题:

Is there a way of passing some runas=True arg to a subprocess.run function in python? I want to run a process as admin (elevate it). Thanks for answers :)\

EDIT: Using Windows OS.

回答1:

since OS is not specified , i will take the example of windows OS

window has a command line utility "Run as" , which can be used as

runas [{/profile | /noprofile}] [/env] [{/netonly | /savecred}] [/smartcard] [/showtrustlevels] [/trustlevel] /user:<UserAccountName> "<ProgramName> <PathToProgramFile>"

for further reference https://technet.microsoft.com/en-us/library/cc771525.aspx

You can use in code like below

import subprocess as Popen
import subprocess as sp

prog = sp.Popen(['runas', '/noprofile', '/user:Administrator', 'NeedsAdminPrivilege.exe'],stdin=sp.PIPE)
prog.stdin.write('password')
prog.communicate()