Jak uruchomić automatycznie po sprawdzeniu, czy proces działa w sesji użytkownika

1

Pracowałem z następującymi (oczywiście z różnymi aplikacjami):

@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    

Mam to w pliku wsadowym, który jest uruchamiany, gdy użytkownik loguje się lub odblokowuje komputer. Ta część działa świetnie, jednak muszę pójść o krok dalej.

Ostatecznie zostanie to rozłożone na kilka komputerów na lotnisku. Ze względu na charakter swojej pracy mówią mi, że potencjalnie mieliby wielu użytkowników korzystających z tych samych 3 aplikacji na tym samym komputerze.

Jako osoba dbająca o bezpieczeństwo, instruuję ją, aby korzystała z indywidualnych loginów, abyśmy mogli śledzić, kto robi to, co działa w systemach. Tak więc przypuszczam, że moje pytanie brzmi - jak mogę to zmienić, aby sprawdzić, czy proces działa w sesji konkretnego użytkownika, a nie tylko na samym komputerze? Problem polega na tym, że jeśli użytkownik jest zalogowany i ma uruchomione aplikacje, a następnie odsuwa się, ale inny użytkownik musi wskoczyć na tę stację, aby pomóc gościowi, skrypt zostanie uruchomiony - rozpoznając, że procesy są uruchomione, ale następnie nic. Muszę to edytować, aby sprawdzić, czy proces jest uruchomiony dla sesji tego użytkownika. Mam nadzieję, że to ma sens.

Jacob Strohschein
źródło

Odpowiedzi:

0

Dodaj /Vopcję, aby tasklist wyświetlał również nazwę użytkownika. Następnie potokuj polecenie do innego findstr. Przykład:

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

%username% jest zmienną systemową i dlatego znajduje aplikację dla aktualnie zalogowanego użytkownika.

Klinghust
źródło