2017-03-02 30 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是一個用於自動執行子流程鍵盤交互的第三方模塊,您可能會發現此任務更容易。

相關問題