
Mehrere meiner Benutzer verwenden die Remote Desktop App (Server 2008). Wenn sie die von mir erstellte BAT-Datei öffnen, werden zwei Programme geöffnet. Ich muss jedoch verhindern, dass dasselbe Programm (in diesem Fall Outlook) mehrmals geöffnet wird.
Ich habe diese Zeile in meiner .BAT-Datei erstellt …
tasklist /nh /fi "imagename eq outlook.exe" | find /i "Outlook.exe" > nul ||(start /min Outlook.exe)
Es funktioniert einwandfrei... außer, dass sich mehrere Benutzer bei diesem „Terminalserver“ anmelden und dieselbe BAT-Datei ausführen. Wenn sich also „Benutzer 2“ anmeldet, wird Outlook nicht gestartet, weil es im Task-Manager bereits unter „BENUTZER 1“ als ausgeführt angezeigt wird...
Ich muss in der Lage sein, das zu unterscheiden "imagename" and "username"
... also, der "Benutzername" wäre%USERPROFILE%
Antwort1
Wie kann verhindert werden, dass derselbe Benutzer mit der Eingabeaufforderung dasselbe Programm auf dem Terminalserver öffnet?
Ich habe mehrere Benutzer, die sich bei diesem „Terminalserver“ anmelden und dieselbe .BAT-Datei ausführen. Wenn sich also „Benutzer 2“ anmeldet, wird Outlook nicht gestartet, da es im Taskmanager bereits unter „BENUTZER 1“ als ausgeführt angezeigt wird.
%Username%
Probieren Sie die folgende Logik aus, da sie die Umgebungsvariable verwendet, um nur den aktuellen TASKLIST
Eintrag für den Benutzernamen des Benutzerkontoprofils abzurufen, das diesen Befehl ausführt. . .
TASKLIST-BEFEHLE, UM PROZESSE NUR FÜR DEN BENUTZER ZU ERHALTEN, DER SIE AUSFÜHRT
TASKLIST /NH /FI "USERNAME eq %Username%" /FI "imagename eq outlook.exe"
VERWENDUNG MIT IHRER BEISPIELLOGIK
TASKLIST /NH /FI "USERNAME eq %Username%" /FI "imagename eq outlook.exe" | find /i "Outlook.exe" > nul ||(start /min Outlook.exe)