Como fazer o autolaunch depois de verificar se o processo está sendo executado na sessão do usuário

1

Eu tenho trabalhado com o seguinte (obviamente com diferentes aplicativos):

@echo off
tasklist /FI "IMAGENAME eq AutoHotkey.exe" | find /i "AutoHotkey.exe"

IF ERRORLEVEL 2 GOTO NEXTPROGRAM
IF ERRORLEVEL 1 GOTO LAUNCHPROGRAM

:NEXTPROGRAM
goto LOLLAUNCHER


:LAUNCHPROGRAM
start "" "C:\Program Files\AutoHotkey\AutoHotkey.exe"
goto LOLLAUNCHER

:LOLLAUNCHER
tasklist /FI "IMAGENAME eq LoLLauncher.exe" | find /i "LoLLauncher.exe"

IF ERRORLEVEL 2 GOTO NEXTPROGRAM2
IF ERRORLEVEL 1 GOTO LAUNCHPROGRAM2

:NEXTPROGRAM2
goto COMPLETE


:LAUNCHPROGRAM2
start "" "C:\Program Files (x86)\League of Legends\lol.launcher.exe"
goto COMPLETE    

Eu tenho isso em um arquivo em lotes que é executado quando um usuário faz login ou desbloqueia o computador. Essa parte funciona muito bem, no entanto, preciso levar isso um pouco mais longe.

Eventualmente, isso será distribuído por vários computadores em um balcão de voo do aeroporto. Devido à natureza de seu trabalho, eles estão me dizendo que potencialmente teriam vários usuários usando os mesmos 3 aplicativos no mesmo computador.

Sendo um indivíduo voltado para a segurança, estou instruindo-os a usar logins individuais para que possamos acompanhar quem está fazendo o quê nos sistemas. Então, suponho que minha pergunta seja: como posso alterar isso para verificar se o processo está sendo executado em uma determinada sessão de usuários, e não apenas no próprio computador? A questão é que, se um usuário estiver logado e tiver seus aplicativos em execução e, em seguida, se afastar, mas outro usuário precisar pular para essa estação para ajudar um convidado, o script será executado - identificando que os processos estão em execução, mas nada. Eu preciso editar isso para verificar se o processo está sendo executado para a sessão desse usuário. Espero que faça sentido.

    
por Jacob Strohschein 02.07.2017 / 02:10

1 resposta

0

Adicione a opção /V para obter a lista de tarefas para listar o nome de usuário também. Em seguida, canalize o comando para outro findstr. Exemplo:

tasklist /FI "IMAGENAME eq AutoHotkey.exe" /V | find /i "AutoHotkey.exe" | findstr /i %username%

%username% é uma variável de sistema e, portanto, encontra o aplicativo para o usuário conectado no momento.

    
por 15.10.2017 / 15:05