ユーザーのセッションでプロセスが実行されているかどうかを確認した後の自動起動


1

私は以下のもので作業してきました(明らかに異なるアプリケーションで):

@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つのアプリケーションを使用している複数のユーザを持つことになるだろうと言っています。

セキュリティ志向の個人であるため、私は、誰がシステムで何をしているのかを追跡できるように、個別のログインを使用するように指示しています。だから私の質問があると思います - どうやったらこれを変更して、コンピュータだけではなく特定のユーザーセッションで実行されているプロセスをチェックできるのでしょうか。問題は、ユーザーがログインしてアプリケーションを実行していて、別のユーザーがそのステーションにアクセスしてゲストを手助けする必要がある場合、スクリプトが実行されるということです。何もないそのユーザーのセッションに対してプロセスが実行されているかどうかを確認するには、これを編集する必要があります。それが理にかなっていると思います。

回答:


0

を追加 /V タスクリストを取得してユーザ名を一覧表示するオプションもあります。 それからコマンドを別のfindstrにパイプします。 例:

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

%username% これはシステム変数なので、現在ログインしているユーザーのアプリを見つけます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.