2017-03-02 33 views
0

随着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` 

回答

1

这个问题实际上与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是一个用于自动执行子流程键盘交互的第三方模块,您可能会发现此任务更容易。

相关问题