Mantener activa tu sesión remota¶
Cuando ejecutas BotCity Runner en Windows bajo Remote Desktop Connection, es importante prestar atención al hecho de que cuando se cierra la conexión, el sistema operativo hace que la pantalla se ponga en negro.
Cuando esto sucede, los bots ya no pueden capturar la pantalla y ejecutar la automatización correctamente si tu automatización requiere recursos gráficos.
En las siguientes secciones describiremos algunos enfoques para resolver este problema.
Script de desconexión de sesión¶
Esta opción consiste en tener un script de PowerShell
que mueve la conexión RDP actual a una conexión de terminal y desconecta la conexión actual sin bloquear la interfaz de usuario.
Dentro de la carpeta donde se llevó a cabo la instalación del SDK de BotCity Studio, encontraremos una carpeta con el nombre startup
y dentro de ella un script llamado startup.bat
con el siguiente contenido:
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "$sessionid=((quser $env:USERNAME | select -Skip 1) -split '\s+')[2]; tscon %sessionname% /dest:console"
Configuración de inicio¶
BotCity Runner ofrece un gancho para activar un script de inicio que se ejecuta cuando Runner está listo para procesar tareas.
De esta manera, podemos configurar Runner para ejecutar el script startup.bat
y llevar a cabo el proceso de desconexión del usuario.
Para ello, ve a tu archivo ./conf/conf.bcf
y agrega un nuevo parámetro llamado startup
.
Tu archivo de configuración debería verse así:
Important
La próxima vez que inicies BotCity Runner, ejecutará el script para cerrar tu conexión RDP mientras mantiene la sesión activa automáticamente.
Al utilizar este enfoque, la desconexión de un usuario siempre debe hacerse de esta manera para asegurar que se habilite el acceso a los recursos gráficos de la máquina.
Si necesita acceder a este usuario y no desea reiniciar el Runner para desconectar la sesión, simplemente ejecute el script startup.bat
, que la sesión se desconectará de la misma manera.
Aviso
Dependiendo del nivel de permisos del usuario, puede ser necesario ejecutar Runner con permisos de administrador para que el script startup
se ejecute correctamente.
Script de configuración del ambiente¶
Además de poder configurar un script para ejecutarse tan pronto como Runner se inicie, también podemos configurar que se realice alguna acción a través de un script antes de comenzar a ejecutar una tarea.
Dentro de la carpeta donde se llevó a cabo la instalación del SDK de BotCity Studio, encontraremos una carpeta con el nombre scripts
y dentro de ella un script llamado console_session.bat
con el siguiente contenido:
FOR /F "skip=1 tokens=3 usebackq" %%X in (`query session %USERNAME%`) DO tscon %%X /dest:console
powershell.exe -Command Set-DisplayResolution -Width 1600 -Height 900 -Force
Atención
Si recibe un error al ejecutar el comando Set-DisplayResolution
, preste atención a los puntos a continuación:
-
Para el servidor Windows 10 y 11 El comando para definir la resolución es
Set-ScreenResolution
. De esta manera, debe usarse de la siguiente manera:Set-ScreenResolution -Width 1600 -Height 900
-
En algunos casos, el módulo DisplaySettings puede no haberse instalado de forma predeterminada en PowerShell. De esta manera, es necesario hacer la instalación utilizando el comando:
Install-Module -Name DisplaySettings
Este script básicamente tiene la misma función que el script startup
que vimos anteriormente; moverá la conexión RDP actual a una conexión de terminal y desconectará la conexión actual sin bloquear la interfaz de usuario. Además, podemos definir una resolución específica que se utilizará en esta sesión que estará activa.
En lugar de ejecutar este script cuando Runner se inicia, vamos a configurarlo para que se ejecute antes de que Runner ejecute cada tarea.
En el archivo ./conf/conf.bcf
, agregaremos un nuevo parámetro llamado beforeTask
, que recibirá la ruta de este script que se ejecutará.
Aviso
Dependiendo del nivel de permiso del usuario, puede ser necesario iniciar el corredor con el permiso del administrador para que el script beforeTask
se realice correctamente.
Tip
Este script es solo una sugerencia del tipo de configuración que se puede realizar.
Puedes cambiar y configurar el script para ajustar el ambiente según tus necesidades.
Máquina RDP principal¶
Esta opción consiste en tener una máquina con Windows con una conexión RDP constante con las otras máquinas para mantener la conexión activa y en funcionamiento sin necesidad de que un usuario esté conectado a ellas.
Instalación de RDCMan¶
Remote Desktop Connection Manager es una aplicación de Microsoft que te permite administrar múltiples conexiones RDP. Después de instalarlo en la máquina PRINCIPAL
, se establecen conexiones con las máquinas HOST
que ejecutan las automatizaciones.
Aquí tienes un enlace para descargar la última versión de RDCMan.
Después de descargar el archivo, solo necesitas extraerlo y ejecutar RDCMan.exe
desde la carpeta extraída.
Agregar una nueva máquina¶
Crea un nuevo archivo machines.rdg
y guárdalo en la misma carpeta que RDCMan:
En el panel izquierdo, haz clic derecho en el área vacía y selecciona Add Server
.
Configura el acceso a la máquina HOST
:
Warning
Los siguientes pasos son clave para el correcto funcionamiento de RDCMan.
Sígalos cuidadosamente.
- En el nombre del servidor, solo necesitas usar la dirección IP de la máquina:
- Configura la resolución en la pestaña "Remote Desktop Settings" a 1600x900.
Info
Cambia esto según la resolución de tu proyecto. 1600x900 es el estándar recomendado por BotCity.
- Desactiva "Clipboard" en la pestaña "Local Resources"
Configuración de la máquina PRINCIPAL
para mantenerse activa¶
Configuración de la máquina PRINCIPAL
para mantener las sesiones RDP activas incluso si no hay conexiones RDP activas a ella.
Cambia la configuración del registro de la computadora local
- En tu computadora local, cierra todas las sesiones abiertas de desktop remoto .
- Abre el editor del Registro (
regedit.exe
). -
Navega hasta una de las siguientes claves del Registro, dependiendo de si deseas modificar la configuración de desktop Remoto solo para el usuario actual o para todos los usuarios en la computadora:
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client Cambia esta HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client
-
Crea un valor DWORD llamado RemoteDesktop_SuppressWhenMinimized y configúralo en
2
(hexadecimal o decimal): -
Cierra el Editor del Registro.
Ahora, cuando minimices la ventana de Conexión de desktop remoto en tu computadora, esto no afectará la interfaz gráfica de la computadora remota y la interfaz estará disponible para tus automatizaciones.
Procedimiento para mantener las máquinas HOST
activas¶
- Conéctate a la máquina
PRINCIPAL
- Conéctate a todas las máquinas
HOST
utilizando RDPMan - Desconéctate de la máquina
PRINCIPAL