3

У меня есть несколько пользователей, которые используют приложение удаленного рабочего стола (Server 2008) и когда они открывают.BAT-файл, который я создал, открывает две программы ... однако мне нужно предотвратить многократное открытие одной и той же программы (в данном случае Outlook) ...

Я создал эту линию в моем.BAT файл ...

tasklist /nh /fi "imagename eq outlook.exe" | find /i "Outlook.exe" > nul ||(start /min Outlook.exe)

Он работает нормально ... за исключением того, что несколько пользователей входят в систему на этом "терминальном сервере" и работают одинаково.BAT-файл ... так что происходит, когда "Пользователь 2" входит в систему, Outlook не запускается, потому что он уже показывает, как работает в диспетчере задач в "USER 1" ...

Мне нужно иметь возможность различать "imagename" and "username" ... хорошо, "имя пользователя" будет %USERPROFILE%

1 ответ1

0

Как предотвратить открытие одной и той же программы на терминальном сервере "тем же пользователем" из командной строки?

У меня есть несколько пользователей, которые входят в систему на этом "терминальном сервере" и работают одинаково.BAT-файл ... так что происходит, когда "Пользователь 2" входит в систему, Outlook не запускается, потому что он уже показывает, как работает в диспетчере задач под "USER 1"

Используйте приведенную ниже логику, поскольку она будет использовать переменную среды %Username% %%, чтобы получить только текущую запись TASKLIST для имени пользователя профиля учетной записи пользователя, который выполняет эту команду. , ,

КОМАНДЫ ТАСКЛИСТА ПОЛУЧИТЬ ПРОЦЕСС ТОЛЬКО ДЛЯ ПОЛЬЗОВАТЕЛЯ

TASKLIST /NH /FI "USERNAME eq %Username%" /FI "imagename eq outlook.exe"

ИСПОЛЬЗОВАНИЕ С ВАШЕЙ ПРИМЕРНОЙ ЛОГИКОЙ

TASKLIST /NH /FI "USERNAME eq %Username%" /FI "imagename eq outlook.exe" | find /i "Outlook.exe" > nul ||(start /min Outlook.exe)

Дополнительное Чтение и Ресурсы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .