|
v7: из users.usr получить список каталогов пользователей. | ☑ | ||
---|---|---|---|---|
0
Cthulhu
01.09.16
✎
17:07
|
на VB/autoit (не на 77).
Собственно список пользователей - ясно как (нашел пару ссылок с 77-кодом, легко перегоняемым в vb/autoit, тупопарсинг текстового куска файла с контейнером container.contents). Каталоги тоже можно но только посмотреть - скормив упомянутый выше файл любой приблуде, внятно показывающей содержимое компаундов... А вот программно - как мне выдрать, какой текстовый кусок (там чуть после container.contents) с полным наим. 1с-юзера + каталогом пользователя + интерфейсом + набором прав к кому относится (как-то плясать от номеров Page.NN я так подозреваю - но как?) заранееблагодаренивсьотакоэ |
|||
1
vde69
01.09.16
✎
17:18
|
1. ЗАЧЕМ ???
2. сабж нарушает правила форума 3. поищи что-то вроде http://catalog.mista.ru/public/22037/ |
|||
2
hitodom
01.09.16
✎
17:19
|
(1) Ну как бы это стандартный виндовый контейнер
|
|||
3
hitodom
01.09.16
✎
17:20
|
(2) Это равносильно, если бы данные лежали в зипе, и был бы вопрос как вытащить данные из этого зипа
|
|||
4
Cthulhu
01.09.16
✎
17:51
|
(1):
3) мне не нужна готовая программа на дельфях или прочий пропиетар (странно, я об этом изначально сказал недостаточно ясно?) 2) Не нарушает. Никаких модификаций программного продукта. Никаких модификаций данных. Никаких модификаций поведения программного продукта. 1) Затем что надо. Сделать "прокладку" для запуска 1с в терминальных сессиях с добавлением следующих фич: - не оставлять зависших 1с-окон авторизации (которые лочат базу и сам users.usr). - предоставлять возможность повторного запуска пользователя в той же базе (при невозможности сброса оторвавшейся терминальной сессии с его первым/предыдущим входом) - выделением отличного от оригинального (из users.usr) рабочего каталога с копированием в него (и по завершении - обратно в оригинальный) cfg и lst с настройками - добавить функционал проверки дополнительных условий при запуске (стоп-файлы, временные запреты глобальные-локальные, логирование входов в альтернативных хранилищах, etc.) и реализацию дополнительных сценариев (без запуска 1с) - добавить функционал сброса запущенной 1с по маркер-файлу или событию - вне зависимости от открытых в 1с модальных форм и прочих пердимоноклей - и т.п. |
|||
5
Cthulhu
01.09.16
✎
17:53
|
(2): и? ткните пжалста в нужном направлении...
на тем.момент я могу только из стрима побайтно выдернуть и интерпретировать блок со списком имен пользователей (ну и их page-номеров, с которыми не знаю что и как делать чтобы из остального содержимого корректно дернуть рабочие каталоги этих пользователей)... :( |
|||
6
Torquader
01.09.16
✎
23:38
|
Что такое Compound - это IStorage.
При правильной инициализации из него можно прочитать дерево каталогов и объектов, которое в нём живёт. P.S. каталог пользователя через \u задаётся при запуске - ставишь альтернативный стартер (или пишешь свой) и забываешь вообще про каталоги - по крайней мере - у меня так. |
|||
7
VoditelKobyly
02.09.16
✎
12:28
|
Посмотри в сторону UsersDef.dll
Там есть метод: ПолучитьСписокПользователейТЗ(<?>) Синтаксис: ПолучитьСписокПользователейТЗ(<ПутьКБазе>) Назначение: Возращает список пользователей с данными в виде таблицы значений: колонки: ИмяПользователя, ХэшПароляПользователя, ПолноеИмяПользователя, ДиректорияПользователя, ИнтерфейсПользователя, ПраваПользователя Параметры: <ПутьКБазе> - путь к базе в которой собираемся получить список пользователей (именно путь к базе , а не к файлу users.usr); |
|||
8
Cthulhu
02.09.16
✎
15:30
|
(7): спасибо, но мне не надо из 1с - мне надо надо снаружи, до(!) 1с.
|
|||
9
vde69
02.09.16
✎
15:32
|
(8) а кто тебе мешает использовать UsersDef.dll не из 1с ???
|
|||
10
Cthulhu
02.09.16
✎
16:38
|
(9): мой сволочной ненавистный перфекционизм.
(не хотелось бы тянуть в терминальные сессии что-либо кроме "голой" exe-прокладки-стартера; да и не очень знаю как в аутоит/вбс/жс использовать длл-ки, которые, чтрого говоря, неизвестно что и как могут наворотить в сессии) |
|||
11
Изобретатель Велосип
02.09.16
✎
16:43
|
(10) Если ты пишешь стартер, то указываешь каталог явно, зачем файл users ковырять ?
Имя пользователя, пароль, каталог пользователя и каталог временных файлов задаётся как параметры командной строки - что ещё мешает "отцу русской демократии" ? |
|||
12
Cthulhu
02.09.16
✎
16:44
|
ЗЫ: строго говоря, по факту просмотра этого компаунда в raw-виде... ну соответствие page-номера каждому имени юзера я выдираю по-байтовым парсингом... и вижу текстовые фрагменты, которые в том же виде вижу в page-потоках при просмотре копаунд-вьювером... мне бы даже совет - как бы по page-номеру определить лексему (последовательность байтов или символов) для дальнейшего raw-парсинга -- наличие которой говорило бы о том, что "вот дальше щя будет кусок, который относется к этому самому page"...
|
|||
13
Cthulhu
02.09.16
✎
16:45
|
(11): (терпеливо) для получения списка пользователей и списка их оригинальных рабочих каталогов, которые нужны для (4) п.3
|
|||
14
Cthulhu
02.09.16
✎
16:46
|
^^^ поправка: п.1
|
|||
15
Torquader
03.09.16
✎
00:41
|
Это, вроде как, и есть стартер.
Просто, стартеру нужен ещё один глобальный каталог, где будет лежать сценарий запуска - тогда всякое ковыряние в файлах будет не нужно - всё будет делаться по сценарию. P.S. а если ещё и WTS_API подцепить, то при отвале сеанса можно будет закрывать 1С или выполнять в ней какое-то действие. |
|||
16
Cthulhu
03.09.16
✎
11:14
|
(15): ох вот да!
если возможно+нетрудно - примерчиков бы (autoit или нунезнаю vbs/js/1c) как про способ найти заголовок/начало стрима в компаунд-файле по его имени (ну или получить список юзеров с раб каталогами из users.usr), так и про использование wts_api (список/свойства/атрибуты/управление)... заранеепремногоблагоданостьбеспредельная. |
|||
17
Cthulhu
03.09.16
✎
11:16
|
(16)+ по wts страшно интересно определять время бездействия, отключать сессию, сбрасывать сессию... ну и инициировать корректный выход из 1с в сессии... etc.
|
|||
18
Бородатый Админ
04.09.16
✎
16:27
|
(17) WTS_API качается help с сайта Microsoft.
Я не помню, если ли русский, но и в английском всё понятно. Только вот - если у вас терминальные клиенты "тонкие", то не все функции в них работают. А Compound обычно читается примерно так: https://support.microsoft.com/en-us/kb/186898 |
|||
19
Бородатый Админ
04.09.16
✎
16:30
|
Ну или, вот по-русски:
https://habrahabr.ru/post/254541/ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |