如何以另一个Windows用户的身份运行python进程

如何以另一个Windows用户的身份运行python进程,python,subprocess,Python,Subprocess,使用subprocess.Popen我们可以调用当前登录用户凭据下的任何可执行文件,如下所示: 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() 假设用户名和密码已知,是否可以在另一个用户凭据下调用

使用
subprocess.Popen
我们可以调用当前登录用户凭据下的任何可执行文件,如下所示:

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命令行执行命令。该程序将为您做到这一点:

链接中给出的用法:

运行方式[{/profile |/noprofile}][/env][{/netonly |/savecred}][/smartcard][/showtrustlevels][/trustlevel]/user:“

其中:

  • /个人资料
    加载用户的配置文件。这是默认设置。此参数不能与/netonly参数一起使用
  • /无配置文件
    指定不加载用户的配置文件。这允许应用程序更快地加载,但也可能导致某些应用程序出现故障
  • /环境
    指定使用当前网络环境而不是用户的本地环境
  • /netonly
    指示指定的用户信息仅用于远程访问。此参数不能与/profile参数一起使用
  • /savecred
    指示此用户以前是否保存了凭据。此参数不可用,在Windows Vista Home或Windows Vista Starter版本中将被忽略。此参数不能与/smartcard参数一起使用
  • /智能卡
    指示是否从智能卡提供凭据。此参数不能与/savecred参数一起使用
  • /显示信任级别
    显示可以用作/trustlevel参数的信任级别
  • /信任级别
    指定应用程序运行的授权级别。使用/showrustlevels查看可用的信任级别
  • /用户:“
    指定用于运行程序的用户帐户的名称、程序名称以及程序文件的路径。用户帐户名格式应为@或\
  • /?
    在命令提示下显示帮助
看起来没有任何内置的方式来提供用户的密码,因此您必须设置输入和输出管道,以便在出现提示时能够提供密码。您可能会发现这项任务更容易使用,它是一个用于自动化子流程键盘交互的第三方模块