Iniciar e manter a sessão do Runner ativa¶
Ao executar o BotCity Runner no Windows sob a conexão remota da área de trabalho, é importante prestar atenção ao fato de que, quando a conexão for encerrada, o sistema operacional fará com que a tela fique preta.
Quando isso acontece, os bots não podem mais capturar a tela e executar a automação corretamente, caso a sua automação necessite de recursos gráficos.
Nas seções a seguir, descrevemos algumas abordagens para resolver esse problema.
BotCity Session Manager¶
Session Manager monitora a fila de tarefas em tempo real, ativando recursos conforme a fila cresce e desativando-os quando a demanda diminui. Ele é otimizado para fornecer alocação de recursos em tempo hábil, reduzindo o tempo ocioso e garantindo a disponibilidade de recursos quando necessário.
Script de desconexão de sessão¶
Tip
Os scripts de sessão ainda são suportados, mas recomendamos o uso do BotCity Session Manager como uma solução mais robusta e escalável.
Essa opção consiste em utilizar um script PowerShell que move a conexão RDP atual para uma conexão de terminal e desconecta a atual sem bloquear a interface do usuário.
Dentro da pasta onde foi realizada a instalação do BotCity Studio SDK vamos encontrar uma pasta com o nome startup e dentro um script chamado startup.bat com o seguinte conteúdo:
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "$sessionid=((quser $env:USERNAME | select -Skip 1) -split '\s+')[2]; tscon %sessionname% /dest:console"
Configuração de inicialização¶
O BotCity Runner oferece uma configuração que permite que um script de inicialização seja executado assim que o Runner for iniciado.
Dessa forma, podemos configurar para que o próprio Runner execute o script startup.bat e realize o processo de desconexão do usuário.
Para isso, abra o arquivo ./conf/conf.bcf e adicione um novo parâmetro chamado startup, que receberá o caminho do script que será executado.
Seu arquivo de configuração ficará dessa maneira:
Importante
Na próxima vez que você iniciar o BotCity Runner, ele irá executar o script para fechar automaticamente sua conexão RDP, porém mantendo a sessão ativa.
Ao utilizar essa abordagem, é necessário que a desconexão de um usuário seja sempre feita dessa maneira, para garantir que o acesso aos recursos gráficos da máquina estejam habilitados.
Caso necessite acessar esse usuário e não queira reiniciar o Runner para desconectar a sessão, basta executar diretamente o script startup.bat, que a sessão será desconectada da mesma maneira.
Aviso
Dependendo do nível de permissão do usuário, pode ser necessário iniciar o Runner com permissão de administrador, para que o script de startup seja executado corretamente.
Script de configuração do ambiente¶
Além de podermos configurar um script para ser executado assim que o Runner for iniciado, também podemos configurar para que alguma ação seja feita através de um script antes do início da execução de uma tarefa.
Dentro da pasta onde foi realizada a instalação do BotCity Studio SDK vamos encontrar uma pasta com o nome scripts e dentro um script chamado console_session.bat com o seguinte conteúdo:
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
Atenção
Caso receba erro ao executar o comando Set-DisplayResolution, atente-se aos pontos abaixo:
-
Para server Windows 10 e 11 o comando para definir a resolução é o
Set-ScreenResolution. Desta forma, deve-se usar assim:Set-ScreenResolution -Width 1600 -Height 900 -
Em alguns casos, o módulo DisplaySettings pode não ter sido instalado por padrão no PowerShell. Desta forma, é necessário fazer a instalação usando o comando:
Install-Module -Name DisplaySettings
Esse script basicamente tem a mesma função do script de startup que vimos acima, ele irá mover a conexão RDP atual para uma conexão de terminal e desconectar a atual sem bloquear a interface do usuário. Além disso, podemos definir uma resolução específica que será utilizada nessa sessão que ficará ativa.
Nesse caso, ao invés de executar esse script quando o Runner for iniciado, vamos configurar para que ele seja executado antes do Runner iniciar a execução de cada tarefa.
No arquivo ./conf/conf.bcf vamos adicionar um novo parâmetro chamado beforeTask, que receberá o caminho desse script que será executado.
Aviso
Dependendo do nível de permissão do usuário, pode ser necessário iniciar o Runner com permissão de administrador, para que o script de beforeTask seja executado corretamente.
Dica
Esse script é só uma sugestão de um tipo de configuração que pode ser realizada.
Você pode alterar e configurar o script para que o ambiente seja configurado conforme a sua necessidade.
Máquina principal de RDP¶
Tip
Os scripts de sessão ainda são suportados, mas recomendamos o uso do BotCity Session Manager como uma solução mais robusta e escalável.
Essa opção consiste em ter uma máquina Windows com conexão RDP constante com as outras máquinas para manter a conexão viva e funcionando sem a necessidade de ter um usuário conectado a elas.
Instalando o RDCMan¶
O Remote Desktop Connection Manager é um aplicativo da Microsoft que permite gerenciar várias conexões RDP.
Após a instalação na máquina MAIN, as conexões são estabelecidas com as máquinas host.
Aqui está um link para baixar a versão mais recente do RDCMan.
Depois de baixar o arquivo, tudo o que você precisa fazer é extraí-lo e executar o RDCMan.exe a partir da pasta extraída.
Adicionando uma nova máquina¶
Crie um novo arquivo machines.rdg e salve-o na mesma pasta que RDCMan:
No painel esquerdo, clique com o botão direito do mouse na área vazia e selecione Add server.
Configure o acesso à máquina host:
Atenção
As etapas a seguir são essenciais para o funcionamento adequado do RDCMan.
Por favor, siga-os cuidadosamente.
- Em nome do servidor, você só precisa usar o endereço IP da máquina:
- Configure a resolução na guia "Configurações de desktop remota" para 1600x900.
Info
Mude isso de acordo com a resolução do seu projeto. 1600x900 é o padrão recomendado pela BotCity.
- Desative a "Área de transferência" na guia "Recursos locais".
Configurando a máquina MAIN para permanecer ativa¶
É possível configurar a máquina MAIN para manter as sessões RDP ativas, mesmo que não haja conexões RDP ativas para ela.
Para alterar as configurações de registro no computador local, siga os seguintes passos:
- No seu computador local, feche todas as sessões abertas da Área de Trabalho Remota.
- Inicie o editor de registro (
regedit.exe). -
Navegue para uma das seguintes chaves de registro, dependendo se você deseja modificar as configurações da Área de Trabalho Remota apenas para o usuário atual ou para todos os usuários do computador:
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client Altere este HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client
-
Crie um valor DWORD chamado RemoteDesktop_SuppressWhenMinimized e defina-o como
2(hexadecimal ou decimal):
-
Feche o Editor do Registro.
Agora, quando você minimizar a janela de conexão da área de trabalho remota em seu computador, isso não afetará a GUI do computador remoto e a GUI estará disponível para suas automações.
Procedimento para manter máquinas HOST ativas¶
- Conectar à máquina
MAIN - Conectar a todas as máquinas
HOSTusando RDCMan - Desconectar da máquina
MAIN
Iniciar sessão e Runner automaticamente na VM¶
Prefira o Session Manager
Recomendamos o BotCity Session Manager como a solução mais robusta e escalável. Use a configuração abaixo quando o Session Manager não for uma opção no seu ambiente.
Essa opção configura uma VM Windows para, ao ser ligada ou reiniciada, abrir sozinha uma sessão gráfica de usuário e iniciar o BotCity Runner dentro dela, sem intervenção manual. A configuração usa duas tarefas no Agendador de Tarefas do Windows:
- Start - RDP: executada na inicialização da máquina (
At startup), abre uma sessão de usuário via RDP apontando para a própria máquina (localhost). - Start - Runner: executada no logon (
At log on), inicia o Runner dentro da sessão criada pela tarefa anterior.
Como funciona o encadeamento¶
A tarefa Start - RDP não inicia o Runner. Ela apenas abre a sessão de usuário que fornece a interface gráfica de que o Runner precisa. A abertura dessa sessão gera um evento de logon no Windows, e é esse evento que dispara a tarefa Start - Runner. Assim, o Runner sempre é iniciado dentro de uma sessão gráfica válida.
Combinar com os scripts de desconexão
Essa configuração resolve o início da sessão quando a VM é ligada ou reiniciada. Se alguém se conectar à máquina depois e encerrar a conexão RDP, a tela volta a ficar preta. Para manter a sessão ativa nesse caso, use também os scripts de desconexão de sessão.
Passo 1: Criar o script start_rdp.bat¶
Crie o arquivo start_rdp.bat com o conteúdo abaixo, substituindo username e password pelo usuário e pela senha usados para acessar a VM:
cmdkey /generic:"localhost" /user:"username" /pass:"password"
mstsc /v:localhost
cmdkey /delete:localhost
O script salva a credencial, abre a conexão RDP com a própria máquina e remove a credencial em seguida.
Passo 2: Criar a tarefa Start - RDP¶
No Agendador de Tarefas do Windows, crie uma nova tarefa com as configurações abaixo:
- General:
- Name:
Start - RDP - When running the task, use the following user account: usuário administrador da VM (ex.:
Administrator) - Run whether user is logged on or not: selecionado
- Run with highest privileges: marcado
- Name:
- Triggers:
At startup - Actions:
Start a program, apontando para o arquivostart_rdp.bat(ex.:C:\Users\Administrator\Desktop\start_rdp.bat)
Mantenha os valores padrão nas abas Conditions e Settings.
Executar com privilégios mais altos
Não deixe de marcar a opção Run with highest privileges nesta tarefa e na tarefa do Passo 3.
Passo 3: Criar a tarefa Start - Runner¶
Crie uma segunda tarefa com as configurações abaixo:
- General:
- Name:
Start - Runner - When running the task, use the following user account: o mesmo usuário informado no
start_rdp.bat - Run only when user is logged on: selecionado
- Run with highest privileges: marcado
- Name:
- Triggers:
At log on, para o mesmo usuário (ex.:At log on of <MÁQUINA>\Administrator) - Actions:
Start a program, apontando para o arquivoBotRunner.batna pasta de instalação do BotCity Studio SDK - Settings: desmarque todas as opções:
- Allow task to be run on demand
- Run task as soon as possible after a scheduled start is missed
- If the task fails, restart every
- Stop the task if it runs longer than
- If the running task does not end when requested, force it to stop
- If the task is not scheduled to run again, delete it after
Passo 4: Verificar a configuração¶
Reinicie a VM e aguarde a inicialização, sem se conectar a ela.
Configuração concluída
A VM abre sozinha uma sessão gráfica de usuário, o BotCity Runner é iniciado dentro dessa sessão e aparece online no Orquestrador, pronto para executar automações que dependem de recursos visuais.





