启动远程桌面连接后 WebApp 变得无响应
WebApp becomes unresponsive after initiating Remote desktop Connection
创建批处理文件并调用mstc 执行远程桌面连接后,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")
rdp.close()
os.system("rdp_test.bat")
#os.remove("rdp_test.bat") optional, to delete file with creds after executing
我也试过使用:
subprocess.call("rdp_test.bat")
subprocess.Popen(["rdp_test.bat"]) #doesnt initiate my rdp
我得到了相同的结果。
为什么会发生这种情况,我该怎么做才能在我的 RDP 运行时保持响应?
为了添加一些上下文,我在 Flask 应用程序中有这个功能,我用它来远程连接到不同的机器。当 1 rdp 时,Web 应用程序不响应任何命令,当我终止我的 rdp 时,我单击的所有内容突然执行。
为了让您的会话继续,您需要生成另一个进程,独立于将在执行脚本后立即终止的进程。
在阅读了一些关于子流程的内容后,我设法发现 none 这些选项立即生效,因为我不仅需要 运行 一个带有 Popen 的子流程,而且还需要使用 Pathname expansion
我最后做了:
subprocess.Popen([os.path.expanduser("My_File.bat")])
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.
否则我的应用程序将在关闭我的 rdp 会话后 运行 所有后续命令。这允许我 运行 独立于我的网络应用程序的多个子进程,并允许它同时响应
创建批处理文件并调用mstc 执行远程桌面连接后,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")
rdp.close()
os.system("rdp_test.bat")
#os.remove("rdp_test.bat") optional, to delete file with creds after executing
我也试过使用:
subprocess.call("rdp_test.bat")
subprocess.Popen(["rdp_test.bat"]) #doesnt initiate my rdp
我得到了相同的结果。
为什么会发生这种情况,我该怎么做才能在我的 RDP 运行时保持响应?
为了添加一些上下文,我在 Flask 应用程序中有这个功能,我用它来远程连接到不同的机器。当 1 rdp 时,Web 应用程序不响应任何命令,当我终止我的 rdp 时,我单击的所有内容突然执行。
为了让您的会话继续,您需要生成另一个进程,独立于将在执行脚本后立即终止的进程。
在阅读了一些关于子流程的内容后,我设法发现 none 这些选项立即生效,因为我不仅需要 运行 一个带有 Popen 的子流程,而且还需要使用 Pathname expansion
我最后做了:
subprocess.Popen([os.path.expanduser("My_File.bat")])
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.
否则我的应用程序将在关闭我的 rdp 会话后 运行 所有后续命令。这允许我 运行 独立于我的网络应用程序的多个子进程,并允许它同时响应