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
HOST
usando RDCMan - Desconectar da máquina
MAIN