2016-06-07 82 views
0

創建批處理文件並調用mstc執行遠程桌面連接後,我的對象無響應。我會認爲這是一個獨立的過程,並不以任何方式依賴於我的python scrypt。啓動遠程桌面連接後,WebApp變得無響應

subprocess.call("rdp_test.bat") 
subprocess.Popen(["rdp_test.bat"]) #doesnt initiate my rdp 

我得到了相同的結果:

import os 


def rdp_session(server, user, temporary_pass): 
    """create Batch file to create .bat file that initiates rdp with variables""" 
    rdp = open("rdp_test.bat", "w") 
    rdp.write("cmdkey /generic:TERMSRV/"+server+" /user:"+user+" /pass:"+temporary_pass+"\n") 
    rdp.write("mstsc /v:"+server+" /admin") 
    rdp.close() 
    os.system("rdp_test.bat") 
    #os.remove("rdp_test.bat") optional, to delete file with creds after executing 

我也嘗試使用。

爲什麼會發生這種情況,我該怎麼做,以便我的RDP在我的RDP運行時保持響應?

要添加一些背景,我有一個瓶應用程序,這是我使用遠程連接到不同的機器中此功能。當1 rdp時,網絡應用程序不響應任何命令,並且當我終止我的rdp時,突然執行了我單擊的所有內容。

+0

產生一個不同的進程? – limbo

+1

我明白了,閱讀... https://docs.python.org/2/library/subprocess.html – glls

回答

0

閱讀子過程一點後,我設法發現,這些選擇都不是,因爲我不僅需要運行與POPEN一子,但還需要使用Pathname expansion

從我落得這樣做立即生效:

subprocess.Popen([os.path.expanduser("My_File.bat")]) 

expanduser將擴大使用〜來表示當前 用戶的主目錄路徑名。這適用於任何平臺,用戶擁有 主目錄,例如Windows,UNIX和Mac OS X;它對Mac OS的 沒有影響。

否則我的應用程序會在關閉我的rdp會話後運行所有後續命令。這使我可以獨立於我的網絡應用程序運行多個子進程,並允許它在同一時間響應

0

爲了使您的會議上繼續就需要產生另一個過程,獨立一個將執行你的腳本後立即終止。