首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保持断开连接的RDP会话为活动状态

保持断开连接的RDP会话为活动状态
EN

Server Fault用户
提问于 2018-01-24 14:49:29
回答 1查看 2.9K关注 0票数 2

在RDP会话实际断开时,是否有可能将其保持为“活动的”?我们正在虚拟机上运行windows-server-2012。

背景:我们正在该机器上自动执行GUI测试。

  • 如果有人通过RDP登录(而什么也不做),测试就会成功。
  • 如果RDP会话断开连接,则测试会在模拟键盘笔画的点上失败。

因此,我想这与会话是活动的或断开连接有关。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2018-01-24 22:14:43

代码语言:javascript
复制
:::::::::::::::::::::::::::::::::::::::::
:: Automatically check & get admin rights
:::::::::::::::::::::::::::::::::::::::::
@echo off
CLS 
ECHO.
ECHO =============================
ECHO Running Admin shell
ECHO =============================

:checkPrivileges 
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges ) 

:getPrivileges 
if '%1'=='ELEV' (shift & goto gotPrivileges)  
ECHO. 
ECHO **************************************
ECHO Invoking UAC for Privilege Escalation 
ECHO **************************************

setlocal DisableDelayedExpansion
set "batchPath=%~0"
setlocal EnableDelayedExpansion
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\OEgetPrivileges.vbs" 
ECHO UAC.ShellExecute "!batchPath!", "ELEV", "", "runas", 1 >> "%temp%\OEgetPrivileges.vbs" 
"%temp%\OEgetPrivileges.vbs" 
exit /B 

:gotPrivileges 
::::::::::::::::::::::::::::
:START
::::::::::::::::::::::::::::
setlocal & pushd .
::::::::::::::::::::::::::::
::Get sessionID for current user, switch context to console.
::::::::::::::::::::::::::::
FOR /F "skip=1 tokens=3 usebackq" %%X in (`query session %USERNAME%`) DO tscon %%X /dest:console


START CALC.EXE

GOTO :EOF

只需将其保存为远程系统上的.bat,并将"START CALC.EXE“行替换为您实际希望运行的可执行文件。当您准备运行测试时,RDP进入系统并运行批处理文件。

这个脚本所做的是首先获得管理权限,然后将当前用户会话从RDP切换到控制台。您将与RDP会话断开连接,但只要没有屏幕保护程序或屏幕锁,您的应用程序就应该能够运行到完成。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/893890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档