Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » [решено] Как запретить запуск двух и более копий 1С8 в Терминальном сеансе пользователя!

Ответить
Настройки темы
[решено] Как запретить запуск двух и более копий 1С8 в Терминальном сеансе пользователя!

Пользователь


Сообщения: 92
Благодарности: 1

Профиль | Отправить PM | Цитировать


Есть вполне рабочий скрипт проверки наличия запущенной копии приложения, вот он

Код: Выделить весь код
SET SEARCH=notepad.exe
tasklist /fi "imagename eq %SEARCH%" /fo table /nh | find /c /i "%SEARCH%"
if %ERRORLEVEL%==1 start notepad.exe
Взять отсюда

Возможно ли его (скрипт) модифицировать таким образом, чтобы он проверял наличие процесса только в рамках процессов, запущенных от имени текущего пользователя ( в данном случае терминального) ? Также принимаются другие варианты скриптов, имеющих нужный функционал. Спасибо

Отправлено: 14:44, 09-06-2014

 

Аватара для cameron

Ветеран


Сообщения: 4677
Благодарности: 1092

Профиль | Отправить PM | Цитировать


Цитата sigmatik:
Ок , что вы имели ввиду, когда писали »
Цитата sigmatik:
Разве не tasklist /U ? »
неа.
я говорю про запуск батника в сессии пользователя.

не нужно изобретать дополнительные велосипеды, у вас их уже достаточно.

-------
в личке я не консультирую и не отвечаю на профессиональные вопросы. для этого есть форум.


Отправлено: 16:18, 09-06-2014 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 92
Благодарности: 1

Профиль | Отправить PM | Цитировать


Он итак запускается в сессии пользователя! Где же еще ?
Хм... как бы так объяснить еще понятнее, даже не знаю ...
Взгляните на мой скрипт, его алгоритм прост:
1. Задаем переменную SEARCH , равную названию нужного нам процесса ( в скрипте это notepad.exe )
2. Выполняем команду tasklist , которая возвращает нам список всех активных процессов всех пользователей
3. Ищем в результатах выполнения команды процесс с именем SEARCH
4. Если такой процесс находим - завершаем работу скрипта
5. Если такой процесс не находим - запускаем блокнот start notepad.exe

Так вот , повторюсь, команда tasklist возвращает список всех процессов сервера!. А нужно сделать так, чтобы она возвращала процессы только того пользователя, от имени которого запущен bat'ник , иначе скрипт видит процессы других пользователей, и его работа завершается согласно пункту 4 нашего алгоритма.

Отправлено: 16:39, 09-06-2014 | #12


Аватара для cameron

Ветеран


Сообщения: 4677
Благодарности: 1092

Профиль | Отправить PM | Цитировать


Цитата sigmatik:
2. Выполняем команду tasklist , которая возвращает нам список всех активных процессов всех пользователей »
вы запускате под админом.
запустите под пользователем.

-------
в личке я не консультирую и не отвечаю на профессиональные вопросы. для этого есть форум.


Отправлено: 17:26, 09-06-2014 | #13


Аватара для ShaddyR

Железных Дел Мастер


Moderator


Сообщения: 24529
Благодарности: 4498

Профиль | Сайт | Отправить PM | Цитировать


sigmatik, вот меньше бы умничал да больше читал. Я тебе что сказал смотреть? Параметры ком. строки для данной команды. Которые можно применить для определения пользователя - в инете полно примеров.
TASKLIST /FI "USERNAME ne ХХХ"
У тебя проблема с определением юзернейма? Он хранится в параметре, как не странно, %username% данного компьютера. Полная конструкция выглядит как
TASKLIST /FI "USERNAME eq %username%".
Дальше скрипт поправить сможешь? Ведь не сложно же, нужно только малость времени и желание разобраться. Без него -
Цитата ShaddyR:
писать заявление "по-собственному" »
ЗЫ:
Цитата sigmatik:
Во-первых, я не припомню когда мы перешли на "Ты" Оо »
->>
Цитата:
мы обращаемся на "Вы" к тем, кто нам либо не симпатичен, либо закомплексован. Мы не обращаем внимания на возраст собеседников и считаем себя одним братством IT-шников. Раз уж тебя коробит этот стиль, будем относиться как к чужому.
(c) Tigr
Так понятно?

ЗЗЫ: ответ - под катом. Но сначала попробуй разобраться сам
->>
Код: Выделить весь код
tasklist /fi "imagename eq 1cv8s.exe" /FI "USERNAME eq %username%" /fo table /nh | find /c /i "1cv8s.exe"|| start "" "C:\Program Files (x86)\1cv82\common\1cestart.exe"
Путь запуска среды проконтролируй, это - по-умолчанию для х64 и 1С соотв. версии.

-------
[FAQ] Как определить аппаратную конфигурацию компьютера и правильно задать вопрос
-------
В благодарность за помощь нажимаем ссылочку "Полезное сообщение" внизу этого самого сообщения (подробнее). Помните: админ конфеты НЕ ПЬЁТ ;)
-------
Говори, что думаешь и думай, что говоришь! (c) || МОЙ ShaddyR.at.UA/blog - Как поменять термопасту за 100+ баксов


Последний раз редактировалось ShaddyR, 09-06-2014 в 23:35.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:06, 09-06-2014 | #14


Пользователь


Сообщения: 92
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата ShaddyR:
мы обращаемся на "Вы" к тем, кто нам либо не симпатичен, либо закомплексован. Мы не обращаем внимания на возраст собеседников и считаем себя одним братством IT-шников. Раз уж тебя коробит этот стиль, будем относиться как к чужому. »
Не ну ты тоже молодец, сначала грубишь мне, провоцируешь на конфликт, а потом цитаты приводишь об айтишном братстве...так ведь не делается. На ты, так на ты, я совсем не против.
Цитата ShaddyR:
TASKLIST /FI "USERNAME eq %username%". »
А за вот это большое спасибо, до %username% сам недотумкал
Цитата ShaddyR:
ЗЗЫ: ответ - под катом. Но сначала попробуй разобраться сам »
Разобрался, получилось немного не так, как под катом, но тоже работает:
Код: Выделить весь код
tasklist /fi "imagename eq %SEARCH%" /fi "USERNAME eq %username%" /fo table /nh | find /c /i "%SEARCH%"
if %ERRORLEVEL%==1 start "" "C:\Program Files (x86)\1cv82\common\1cestart.exe" ENTERPRISE /RunModeOrdinaryApplication /S "localhost\base"
Всем спасибо, задача решена!

Отправлено: 10:18, 10-06-2014 | #15


Аватара для ShaddyR

Железных Дел Мастер


Moderator


Сообщения: 24529
Благодарности: 4498

Профиль | Сайт | Отправить PM | Цитировать


Цитата sigmatik:
получилось немного не так »
у тебя скрипт для помещения в cmd, что есть не всегда удобно да и не комильфо. Мой вариант - для ярлыка, пользуйся)

ЗЫ: на будущее - на конференции есть раздел, интуитивно непонятно названный Скриптовые языки администрирования Windows. Подобные вопросы в дальнейшем лучше направлять туда.

ЗЗЫ:
Цитата sigmatik:
сначала грубишь мне»
заметь, я изначально просто констатировал факт, что ты подтвердил и сам -
Цитата sigmatik:
до %username% сам недотумкал »
при том, что
Цитата ShaddyR:
в инете полно примеров »
так что не всегда грубость есть
Цитата sigmatik:
провоцируешь на конфликт »
иногда просто суровая правда

-------
[FAQ] Как определить аппаратную конфигурацию компьютера и правильно задать вопрос
-------
В благодарность за помощь нажимаем ссылочку "Полезное сообщение" внизу этого самого сообщения (подробнее). Помните: админ конфеты НЕ ПЬЁТ ;)
-------
Говори, что думаешь и думай, что говоришь! (c) || МОЙ ShaddyR.at.UA/blog - Как поменять термопасту за 100+ баксов


Отправлено: 11:36, 10-06-2014 | #16


Пользователь


Сообщения: 92
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата ShaddyR:
Скриптовые языки администрирования Windows »
Ок , спасибо еще раз!

Отправлено: 14:15, 10-06-2014 | #17


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


апну тему, уважаемые коллеги! а есть идеи, как запретить запуск более трех копий? ну вот 2 копии можно, а 3 уже нельзя
ситуация напрашивается, потому как есть пользователи, работающие в 2-х базах сразу (в одной базе запрет на 2 сессии планируем реализовать через 1С-ку)

Отправлено: 15:07, 13-06-2019 | #18


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата:
Цитата ShaddyR: ЗЗЫ: ответ - под катом. Но сначала попробуй разобраться сам
tasklist /fi "imagename eq 1cv8s.exe" /FI "USERNAME eq %username%" /fo table /nh | find /c /i "1cv8s.exe"|| start "" "C:\Program Files (x86)\1cv82\common\1cestart.exe"
Путь запуска среды проконтролируй, это - по-умолчанию для х64 и 1С соотв. версии.
добавлю также, что в Windows Server 2019 это не работает, появляется DOS-окошко на мгновение и все, не запускает вообще такой ярлык, подскажите, в чем грабли?

Отправлено: 10:57, 14-06-2019 | #19


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Curiosity:
подскажите, в чем грабли? »
В неопытности, надо полагать.

Откройте окно консоли командной строки cmd.exe. Выполните в ней данный набор команд, не забыв про правильные пути, имена файлов и разрядность.

Отправлено: 19:18, 14-06-2019 | #20



Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » [решено] Как запретить запуск двух и более копий 1С8 в Терминальном сеансе пользователя!

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как запретить запуск двух и более копий 1С8 ragnar40 Хочу все знать 33 11-05-2018 14:02
[решено] Как ограничить количество запущенных копий приложения на терминальном сервере? SkyF Microsoft Windows NT/2000/2003 35 27-09-2017 17:15
Запретить запуск конкретной программы более двух раз за сессию. kardinal96 Хочу все знать 2 03-06-2012 21:54
Запретить клиентам запускать программы в терминальном сеансе avolkov2009 Microsoft Windows NT/2000/2003 1 09-11-2011 09:30
Как запретить запуск программы более 1 раза? svmt Хочу все знать 3 20-01-2004 08:27




 
Переход