Mantenha a sessão RDP desconectada como ativa

1

Existe alguma possibilidade de manter uma sessão RDP como "ativa" quando ela foi realmente desconectada? Estamos executando o windows-server-2012 em uma máquina virtual.

Background: we are automatically executing GUI tests on that machine.

  • If someone is logged in via RDP (and does nothing), the tests succeed
  • If the RDP session is disconnected, the tests fail at a point where keyboard strokes are simulated

So I guess it has something to do with the session being active or disconnected.

    
por user3726374 24.01.2018 / 15:49

1 resposta

1
:::::::::::::::::::::::::::::::::::::::::
:: 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

Salve isso como um .bat no sistema remoto e substitua a linha "START CALC.EXE" pelo executável que você gostaria de executar. Quando você estiver pronto para executar seu teste, execute o RDP no sistema e execute o arquivo em lote.

O que esse script faz primeiro é obter direitos de administrador e, em seguida, alterna sua sessão de usuário atual do RDP para o console. Você será desconectado da sessão RDP, mas, desde que não haja uma proteção de tela ou bloqueio de tela, seu aplicativo deverá ser executado até a conclusão.

    
por 24.01.2018 / 23:14