断开连接后无法使rdp会话保持活动状态的代码

时间:2019-05-22 11:03:00

标签: windows windows-server

好的,伙计们,这是场景:

1)我们每天晚上运行3个计划脚本,这些脚本是使用autogui函数的Python脚本,因此我们必须有一个活动会话。例如,我们在rdp内的机器X上运行rdp(运行代码)到机器Y(这是我们发现的解决方案,因此当会话断开连接时,autogui将获得机器Y的gui和外围设备)。

2)我们的IT部门。是不支持的,并且不会更改在15分钟后阻止用户会话的组策略。

3)我们设计了一个简单的脚本,该脚本每3分钟发送一次击键(特别是滚动锁定)。我们在X和Y机器上都运行此程序,并在两台机器上保持打开状态的powershell会话中。脚本如下所示。

$Shell = New-Object -ComObject Wscript.Shell
Start-Sleep -Seconds 1

Do {
$Shell.SendKeys("{SCROLLLOCK}")
$Shell.SendKeys("{SCROLLLOCK}")

Start-Sleep -Seconds 180
}
While($True)

问题:该脚本在大多数情况下似乎都能正常运行,但有时却无法正常运行。它将连续工作1或2天,然后下一个失败。失败是指我在早上打开rdp会话,并且会话被锁定,这意味着所有夜间脚本都失败了,我们将不得不花一半的时间来运行所有延迟,公司的所有报告,都延迟了。

这变得越来越令人沮丧,我们承受着很大的压力来进行这项工作,在没有IT参与的情况下使会议整夜保持活动状态,因为他们不会改变其政策。

问题:如果以下脚本似乎至少在一天当中可以正常工作,有时甚至连续几天都可以正常工作,还有哪些其他操作/过程会使我的会话断开连接?我们必须通过其他方式规避的另一项政策?另一个用户的动作?

0 个答案:

没有答案