Come eseguire il lancio automatico dopo aver verificato se il processo è in esecuzione nella sessione dell'utente


1

Ho lavorato con il seguente (con diverse applicazioni ovviamente):

@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    

Ho questo in un file batch che viene eseguito quando un utente accede o sblocca il computer. Quella parte funziona alla grande, tuttavia, devo andare un po 'oltre.

Alla fine questo verrà distribuito su più computer in un banco di volo dell'aeroporto. A causa della natura del loro lavoro, mi stanno dicendo che avrebbero potenzialmente più utenti che utilizzano le stesse 3 applicazioni sullo stesso computer.

Essendo un individuo attento alla sicurezza, sto insegnando loro a utilizzare i singoli accessi in modo da poter tenere traccia di chi sta facendo cosa sui sistemi. Quindi suppongo che la mia domanda sia: come posso modificarlo per verificare il processo in esecuzione in una particolare sessione degli utenti piuttosto che solo sul computer stesso? Il problema è che se un utente ha effettuato l'accesso e ha le sue applicazioni in esecuzione, quindi si allontana, ma un altro utente deve saltare su quella stazione per aiutare un ospite, lo script verrà eseguito, identificando che i processi sono in esecuzione ma poi lo fanno Niente. Devo modificarlo per verificare se il processo è in esecuzione per la sessione di quell'utente. Spero che abbia un senso.

Risposte:


0

Aggiungi l' /Vopzione per ottenere l'elenco delle attività per elencare anche il nome utente. Quindi reindirizzare il comando in un altro findstr. Esempio:

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

%username% è una variabile di sistema e quindi trova l'app per l'utente attualmente connesso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.