Как запретить запуск двух и более копий 1С8 в Терминальном сеансе пользователя!
Есть вполне рабочий скрипт проверки наличия запущенной копии приложения, вот он
Код:
SET SEARCH=notepad.exe Возможно ли его (скрипт) модифицировать таким образом, чтобы он проверял наличие процесса только в рамках процессов, запущенных от имени текущего пользователя ( в данном случае терминального) ? Также принимаются другие варианты скриптов, имеющих нужный функционал. Спасибо |
Цитата:
а вообще это проще решать средствами 1С - там есть инструмент, которым можно ограничить пользователя одним входом в базу, а не приложением 1cv8.exe |
Цитата:
Цитата:
|
Цитата:
запущенных приложений до нажатия "1С: предприятие" или "конфигуратор" при выбраной базе может быть сколько угодно. для проверки этого возьмите изолированную виртуальную машину, установите туда 1С и запустите 100 копий приложения без активации лицензии или подключения ключа. Цитата:
Цитата:
|
Цитата:
Так что там с запуском в контексте текущего пользователя? зачем вы мне кидаете мой код, я его уже видел :) |
Цитата:
но я права - у вас уже есть подключение к базе ;), но висит на аутификации. я вам говорила про другое. Цитата:
альтернативно рассмотрите вариант RemoteApp. |
Цитата:
|
Цитата:
Цитата:
Код:
TASKLIST /U <домен>\<пользователь> Опять не понял ? Нужен один универсальный скрипт, который будет работать у всех пользователей одинаково, без указания его ( пользователя ) имени. Цитата:
Цитата:
|
Цитата:
причём он тут - не ясно. зачем - не ясно. Цитата:
хинт1: при входе на ТС можно запускать программу. хинт2: 1С можно запускать с параметрами подключения к базе. |
Цитата:
Цитата:
Разве не tasklist /U ? Цитата:
Цитата:
Код:
"C:\Program Files (x86)\1cv82\common\1cestart.exe" ENTERPRISE /RunModeOrdinaryApplication /S "сервер\имя_базы" |
|
:o Он итак запускается в сессии пользователя! Где же еще ?
Хм... как бы так объяснить еще понятнее, даже не знаю ... Взгляните на мой скрипт, его алгоритм прост: 1. Задаем переменную SEARCH , равную названию нужного нам процесса ( в скрипте это notepad.exe ) 2. Выполняем команду tasklist , которая возвращает нам список всех активных процессов всех пользователей 3. Ищем в результатах выполнения команды процесс с именем SEARCH 4. Если такой процесс находим - завершаем работу скрипта 5. Если такой процесс не находим - запускаем блокнот start notepad.exe Так вот , повторюсь, команда tasklist возвращает список всех процессов сервера!. А нужно сделать так, чтобы она возвращала процессы только того пользователя, от имени которого запущен bat'ник , иначе скрипт видит процессы других пользователей, и его работа завершается согласно пункту 4 нашего алгоритма. |
Цитата:
запустите под пользователем. |
sigmatik, вот меньше бы умничал да больше читал. Я тебе что сказал смотреть? Параметры ком. строки для данной команды. Которые можно применить для определения пользователя - в инете полно примеров.
TASKLIST /FI "USERNAME ne ХХХ" У тебя проблема с определением юзернейма? Он хранится в параметре, как не странно, %username% данного компьютера. Полная конструкция выглядит как TASKLIST /FI "USERNAME eq %username%". Дальше скрипт поправить сможешь? Ведь не сложно же, нужно только малость времени и желание разобраться. Без него - Цитата:
Цитата:
Цитата:
Так понятно? ЗЗЫ: ответ - под катом. Но сначала попробуй разобраться сам ;) |
Цитата:
Цитата:
Цитата:
Код:
tasklist /fi "imagename eq %SEARCH%" /fi "USERNAME eq %username%" /fo table /nh | find /c /i "%SEARCH%" |
Цитата:
ЗЫ: на будущее - на конференции есть раздел, интуитивно непонятно названный Скриптовые языки администрирования Windows. ;) Подобные вопросы в дальнейшем лучше направлять туда. ЗЗЫ: Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
|
апну тему, уважаемые коллеги! а есть идеи, как запретить запуск более трех копий? ну вот 2 копии можно, а 3 уже нельзя
ситуация напрашивается, потому как есть пользователи, работающие в 2-х базах сразу (в одной базе запрет на 2 сессии планируем реализовать через 1С-ку) |
Цитата:
|
Цитата:
Откройте окно консоли командной строки cmd.exe. Выполните в ней данный набор команд, не забыв про правильные пути, имена файлов и разрядность. |
Curiosity, для указанной версии ОС нет отличий в работе данной команды. Возможно, требуются права для выполнения скрипта, при необходимости используй дополнительно команду runas
|
Время: 01:48. |
Время: 01:48.
© OSzone.net 2001-