在Python中将pipe理员权限设置为subprocess.check_call()

我从一个需要pipe理员权限的Python脚本调用两个可执行文件,另一个不需要它们。 在执行可执行文件之前,我可以通过哪种方式设置pipe理员权限,以便它不要求我input密码。

我的脚本如下

import subprocess subprocess.check_call(['DoesnotNeedAdminPrivilege.exe']) subprocess.check_call(['NeedsAdminPrivilege.exe']) 

我试图从cmd运行这个脚本,通过启动cmd来作为pipe理员来运行。 有没有办法将这些pipe理权限传递给第二个可执行文件,以便它没有任何问题

Solutions Collecting From Web of "在Python中将pipe理员权限设置为subprocess.check_call()"

试试这个输入一个管理密码。

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

这里是文档:

Popen – http://docs.python.org/2/library/subprocess.html#popen-constructor

runas – http://technet.microsoft.com/en-us/library/cc771525.aspx

如果这个工程将取决于NeedsAdminPrivilege程序。

我发现一个讨厌的解决方法

  f = open('test.cmd', 'w+') f.write("execute.exe") f.close() os.system("runas /savecred /profile /user:Administrator \"test.cmd\"") 

或者你可以使用子进程