我从python脚本调用两个可执行文件,一个需要管理员权限,另一个不需要管理员权限。有没有办法在执行可执行文件之前设置管理员权限,以便它不会要求我输入密码。
我的脚本如下
import subprocess
subprocess.check_call(['DoesnotNeedAdminPrivilege.exe'])
subprocess.check_call(['NeedsAdminPrivilege.exe'])
我尝试通过启动cmd以管理员身份运行来从cmd运行此脚本。有没有办法将这些管理员权限传递给第二个可执行文件,以便它可以正常工作
答案 0 :(得分:2)
我发现了一个讨厌的解决方法
f = open('test.cmd', 'w+')
f.write("execute.exe")
f.close()
os.system("runas /savecred /profile /user:Administrator \"test.cmd\"")
或者您可以使用子流程
答案 1 :(得分:1)
尝试输入管理密码。
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。