|
v7: Как в 1с 7.7 вывести имена компьютеров при работе в терминале | ☑ | ||
---|---|---|---|---|
0
barsik123
29.08.16
✎
18:52
|
Директор хочет видеть имена пользователей и названия компьютеров, за которыми пользователи работают, при работе в терминале. Стандартные средства показывают только имя сервера и пользователей.
|
|||
1
Злопчинский
29.08.16
✎
18:54
|
echo %clientname%
|
|||
2
Злопчинский
29.08.16
✎
18:55
|
я у себя вот этой пользуюсь
http://catalog.mista.ru/public/14134/ |
|||
3
Torquader
29.08.16
✎
18:55
|
(1) Надо не забывать, что это нужно выполнить на клиенте и записать данные куда-то в 1С, чтобы их можно было вывести, ну и отслеживать каждое подключение.
Проще, у терминального сервера спросить, кто и откуда, а потом уже мучить 1С. |
|||
4
Злопчинский
29.08.16
✎
19:03
|
при этом надо еще отличать комп с которого произвелось подключение к терминалу и комп с которого активировалась разорванная сессия
|
|||
5
Torquader
29.08.16
✎
19:11
|
(4) Вот как раз терминальный сервер это умеет лучше других, так как он знает, какую сессию и кому подключить.
|
|||
6
Garykom
гуру
29.08.16
✎
19:38
|
Проще отказаться от терминалки
|
|||
7
Torquader
29.08.16
✎
19:39
|
(6) Кому как.
|
|||
8
Torquader
29.08.16
✎
19:40
|
Нет - ну есть альтернативный вариант - в памяти сервера на каждого пользователя создаётся виртуалка - они все объединяются в виртуальную сеть и гоняем 1С по виртуальной сети.
|
|||
9
Garykom
гуру
29.08.16
✎
20:05
|
Изначально терминальный режим придумали как костыли для ускорения программ которые не умеют нормально работать по сети в многопользовательском режиме.
А потом под эти костыли начали писать софт... Ну не идиотизм ли? |
|||
10
Garykom
гуру
29.08.16
✎
20:09
|
(9)+ Еще понимаю когда клиенты были просто терминалы с экраном/клавой и все, даже без проца, проц был только на сервере.
Но когда это терминальное эмулируют поверх сети из нехилых таких машин, самая древняя из которых влегкую победит многотерминальные системы истоков терминалов... |
|||
11
MishaD
29.08.16
✎
20:33
|
слегка погуглил, и нашел целую тему. Можно ли в терминале получить имя компьтера клиента?
|
|||
12
Torquader
29.08.16
✎
22:43
|
(10) Про такое понятие как "тонкий клиент" слышал (не путать с программой в 1С). Так вот - это "чудо" становится стандартом в корпоративной среде - так как в терминальном режиме у пользователя нет доступа к компьютеру, на котором выполняется программа, и он ничего исказить не может.
|
|||
13
Garykom
гуру
29.08.16
✎
23:10
|
(12) У "тонких клиентов" есть одна малюсенькая проблеммка с сервером.
Когда пара-тройка особо умных менагеров, каждый открыв по паре отчетиков Ёкселя каждый метров по 200-300 влегкую кладут любой сервачек )) |
|||
14
Garykom
гуру
29.08.16
✎
23:11
|
(13)+ Хотя да надо признать что железячные тонкие клиенты позволяют сильно облегчить труд админов/эникеев.
|
|||
15
Torquader
29.08.16
✎
23:16
|
(13) И что, все 64 гига памяти "положат" - одному-то клиенту больше 2 Гб не светит.
Ну, немного тормозит, но вытесняющая многозадачность и не такое проглотит. |
|||
16
Garykom
гуру
29.08.16
✎
23:41
|
(15) С чего это одному клиенту более 2 гигов не светит?
Да можно настроить разные ограничение ресурсов на пользователя/сеанс но это означает жесткие ограничения на используемый софт и его возможности. Вот у меня сча хром сожрал на 20 вкладок около 1,5 гига оперативки и еще скайп полгига съел. Представим что 100 юзеров в терминале сидят и как и на скоко им хватит этих несчастных 64 гигов оперативки? |
|||
17
Torquader
29.08.16
✎
23:47
|
(16) Если пользователей не ограничивать, то они любую машину зас..т, и память, и диск.
|
|||
18
Garykom
гуру
29.08.16
✎
23:49
|
(17) Это точно ))
(16)+ Кста в этом плане мне понравился LTSP с его возможными жирными клиентами, где для машинок отдельно можно настроить список софта (тот же Хром) которые будут выполняться на клиентских машинках. Для пользователя все прозрачно он не замечает на сервере или на клиенте оно выполняется. |
|||
19
Garykom
гуру
29.08.16
✎
23:51
|
А будущее думаю за "локальными облаками", когда все работают в одной "гетерогенной среде" и где ресурсы серверов/клиентов распределяются между процессами/сеансами.
С легким добавлением еще одного "сервера" в общий кластер для повышения быстродействия/нагрузки. |
|||
20
Torquader
29.08.16
✎
23:56
|
(19) Боюсь, что в будущем, компьютер будет один на всю планету, а все устройства будут терминалами для подключения к нему.
|
|||
21
Garykom
гуру
29.08.16
✎
23:59
|
(20) Не думаю, конкуренция не позволит.
Но обмен вычислительными мощностями между облаками это легко могу представить, как сейчас обмен трафиком между опсосами/провами. Когда используют сначала более дешевые каналы (лучше свои/арендованные долгосрочно), а когда они заполнены то оперативно пробрасывают трафик по тем операторам у кого есть свободные мощности. |
|||
22
Torquader
30.08.16
✎
00:04
|
(21) Обмен вычислительными мощностями - это и есть "единый компьютер", когда задача вычисляется там, где меньше всего загруженность.
|
|||
23
Garykom
гуру
30.08.16
✎
00:19
|
(22) Ну если в этом смысле то да, практически так оно. Понятно что не у всех со всеми будут договора, но предвижу операторов которые будут дешево скупать свободные мощности и "перепродавать" их нуждающимся с наценкой...
|
|||
24
VoditelKobyly
30.08.16
✎
05:42
|
Пользуюсь вот этим:
ИмяЮзераТ=""; ИмяКомпаТ=""; Попытка scrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl"); scrptCtrl.language="vbscript"; scrptCtrl.addcode(" |Function GetUser() |Set WSHShell = CreateObject(""WScript.Shell"") |Set WshSysEnv = WshShell.Environment(""Process"") |GetUser = WshSysEnv(""Username"") |End Function |Function GetClient() |Set WSHShell = CreateObject(""WScript.Shell"") |Set WshSysEnv = WshShell.Environment(""Process"") |GetClient = WshSysEnv(""Clientname"") |End Function |"); ИмяЮзераТ = scrptCtrl.run("GetUser"); // возвращает имя пользователя Windows (пользователь в терминале) ИмяКомпаТ = scrptCtrl.run("GetClient"); // имя терминального клиента (комп в терминале) Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; //Сообщить("ИмяЮзераТ: "+ИмяЮзераТ); //Сообщить("ИмяКомпаТ: "+ИмяКомпаТ); |
|||
25
varelchik
30.08.16
✎
08:28
|
Ну у меня по другому:
WScript=CreateObject("WScript.Shell"); ИмяКомпа=WScript.ExpandEnvironmentStrings("%ComputerName%"); ИмяКлиента=WScript.ExpandEnvironmentStrings("%clientname%"); ИмяЮзера=WScript.ExpandEnvironmentStrings("%username%"); |
|||
26
varelchik
30.08.16
✎
08:28
|
просто и без попыток.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |