Mantendo a sua sessão remota 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¶
Warning
Os scripts de sessão agora estão obsoletos em favor do Session Manager, que é uma solução mais robusta.
Considere mudar para o BotCity Session Manager.
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¶
Warning
Os scripts de sessão agora estão obsoletos em favor do Session Manager, que é uma solução mais robusta.
Considere mudar para o BotCity Session Manager.
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





