我必须使用 python 脚本创建一个具有管理员权限的新进程。我在网上搜索了这个主题,发现我必须使用 runas
命令。对于此命令,我必须提供用户,并且在运行时,脚本将等待密码,我希望尽可能自动执行此操作。
这是我的代码:
import subprocess
p = subprocess.Popen(['runas', '/user:Armando', szCmdCommand], stdin = subprocess.PIPE)
p.stdin.write('password')
而不是 .write
我尝试了 p.communicate(input='password')
但它不起作用,因为它不写入密码。唯一发生的事情是脚本不等待输入。它会自动输入错误的密码并导致执行命令失败。
我可以做什么来解决这个问题?
最佳答案
需要输入密码的程序通常不会使用从标准输入 (stdin) 进行的简单读取来实现此目的,而是直接控制终端(如 source code of the getpass
module 中所示)。
使用其他内容,例如:
关于Python:为子进程提供输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25866765/