在 python 中使用 subprocess.run 以管理员身份运行进程

Jak*_*áha 7 python subprocess admin

有没有办法将一些runas=Truearg传递给subprocess.runpython中的函数?我想以管理员身份运行一个进程(提升它)。感谢您的回答:)\

编辑:使用 Windows 操作系统。

pan*_*hra 15

由于未指定操作系统,我将以 MS Windows 操作系统为例

Windows 有一个命令行实用程序“Run as”,它可以用作

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

进一步参考 https://technet.microsoft.com/en-us/library/cc771525.aspx

您可以在如下代码中使用它

import subprocess as sp

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

  • 请注意,这仅适用于内置的“管理员”用户帐户,通常不适用于属于“管理员”组的用户。在实践中,出于安全原因,内置的“管理员”帐户通常被禁用。 (2认同)