glls glls - 2 years ago 83
Python Question

WebApp becomes unresponsive after initiating Remote desktop Connection

My becomes unresponsive after creating a batch file and calling mstc to execute a remote desktop connection. I would have thought that this is an independent process and does not rely in any way to my python scrypt.

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")
#os.remove("rdp_test.bat") optional, to delete file with creds after executing

I also tried using:"rdp_test.bat")
subprocess.Popen(["rdp_test.bat"]) #doesnt initiate my rdp

I get the same result.

Why does this happen and what can I do so my stays responsive while my RDP runs?

To add a bit of context, I have this function within a Flask App, which I use to remote connect to different machines. when 1 rdp, the web app does not respond to any commands, and when I terminate my rdp, everything I clicked on suddenly executes.

Answer Source

After reading a bit on subprocesses, I managed find that none of these options were immediately effective since I needed to not only run a subprocess with Popen but additionally needed to use Pathname expansion

from which I ended up doing:


expanduser will expand a pathname that uses ~ to represent the current user's home directory. This works on any platform where users have a home directory, like Windows, UNIX, and Mac OS X; it has no effect on Mac OS.

Otherwise my app would run all subsequent commands after closing my rdp session. This allows me to run multiple sub-processes independently from my web app and allows it to be responsive at the same time

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download