如何运行的Python程序作为另一个Windows用户
问题描述:
随着subprocess.Popen
我们可以称之为下,当前登录的用户凭据,像这样的任何可执行文件:如何运行的Python程序作为另一个Windows用户
import subprocess
cmd = ['C:\Windows\system32\executable.exe']
proc = subprocess.Popen(cmd, cwd=os.path.dirname(RAR_EXE), stdout=subprocess.PIPE)
output = proc.stdout.read()
是否可以调用和执行在相同executable.exe
假设用户的名字和密码是已知的,例如:
username = 'steve'
password = 'password123`
答
这个问题实际上与Python没有任何关系。你只是问如何从Windows命令行作为另一个用户来执行命令。作为链接给
用途:该runas程序会为你做
的RunAs [{/ profile文件|/noprofile}] [/ env] [{/ netonly |/SAVECRED}] [/智能卡] [/ showtrustlevels] [/ trustlevel] /用户: “”
其中:
- /profile文件
加载用户的配置文件。这是默认设置。该参数不能与/ netonly参数一起使用。- /无配置文件
指定不加载用户的配置文件。这允许应用程序加载更快,但是它也可能导致某些应用程序发生故障。- /env
指定使用当前网络环境而不是用户的本地环境。- /netonly
指示指定的用户信息仅用于远程访问。该参数不能与/ profile参数一起使用。- /savecred
指示凭证是否先前已由此用户保存。此参数不可用,并且在Windows Vista Home或Windows Vista Starter Edition上将被忽略。此参数不能与/ smartcard参数一起使用。- /智能卡
指示凭证是否由智能卡提供。该参数不能与/ savecred参数一起使用。- /showtrustlevels
显示可用作/ trustlevel参数的信任级别。- /trustlevel
指定应用程序运行的授权级别。使用/ showtrustlevels来查看可用的信任级别。- /user:“”
指定运行程序的用户帐户的名称,程序名称和程序文件的路径。用户帐户名称格式应该是@或\。- /?
在命令提示符下显示帮助。
它看起来不像有任何内置的方式来提供用户的密码,所以你必须设置输入和输出管道,以便能够在出现提示时提供。 Pexpect是一个用于自动执行子流程键盘交互的第三方模块,您可能会发现此任务更容易。