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.
źródło