Я работал со следующим (очевидно, с различными приложениями):
@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
У меня есть это в пакетном файле, который запускается, когда пользователь входит в систему или разблокирует компьютер. Эта часть прекрасно работает, однако мне нужно пойти немного дальше.
В конце концов это будет распространяться на несколько компьютеров в аэропорту. Из-за характера своей работы они говорят мне, что потенциально у них может быть несколько пользователей, использующих одни и те же 3 приложения на одном компьютере.
Будучи человеком, ориентированным на безопасность, я инструктирую их использовать индивидуальные логины, чтобы мы могли отслеживать, кто что делает в системах. Итак, я предполагаю, что мой вопрос - как я могу изменить это, чтобы проверить процесс, выполняющийся в определенной сессии пользователя, а не только на самом компьютере? Проблема заключается в том, что если пользователь вошел в систему и запустил свои приложения, а затем отошел, но другому пользователю нужно перейти на эту станцию, чтобы выручить гостя, скрипт запустится - определит, что процессы запущены, но затем делают ничего такого. Мне нужно отредактировать это, чтобы проверить, запущен ли процесс для сеанса этого пользователя. Я надеюсь, что в этом есть смысл.