![]() |
![]() |
|
Выгнать пользователей | ☑ | ||
---|---|---|---|---|
0
Выгон
30.05.05
✎
13:54
|
Как выгнать пользователей из базы автоматически?
Надоело каждый раз их обзванивать, чтобы сохранить изменения в MD-шнике. |
|||
1
Ferz
30.05.05
✎
13:56
|
Поиск
|
|||
2
Бес Толковый
30.05.05
✎
14:09
|
(0) нуууу... минимизировать количество необходимых выгонов можно при помощи turbomd...
А с остальным действительно в поиск... |
|||
3
Выгон
30.05.05
✎
14:14
|
Ссылки можно? У меня файл-сервер.
ТурбоМД я пользую, МД-шник даже в новый файл сохраняю (1cv7new.MD) (скрпипт OpenConf). Осталось только это. |
|||
4
gr13
30.05.05
✎
14:22
|
поиск по форуму сделай... тут много чего было...
|
|||
5
неправильный метод
30.05.05
✎
14:40
|
зачем обзванивать всех ? ГБ скажи...дальше ее проблемы...и ваще не ставь себя ниже плинтуса, не заменяй оргпроблемы техническими решениями.
|
|||
6
Выгон
30.05.05
✎
14:43
|
Глав бух ни причем.
Это вообще не бухия. Юзера(ов) обычно не застанешь на раб месте. Где найти Close1c? |
|||
7
1111
30.05.05
✎
14:46
|
net send * Вышли все вон из моей 1С !!! :)
Только в терминале, кажется, не сработает. |
|||
8
Ёпрст
гуру
30.05.05
✎
14:51
|
1.Константа НадоЗавершитьРаботу (0-не надо, 1- надо);
2.В глобальнике: ПриНачалеРаботыСистемы() ..... ОбработкаОжидания("АнализЗавершенияРаботы",10); .... 3.Процедура АнализЗавершенияРаботы() Если Константа.НадоЗавершитьРаботу = 0 Тогда Возврат ; ИначеЕсли Константа.НадоЗавершитьРаботу > 0 Тогда Сообщить("Программа закрыта для работы."); врИмяПользователя = Нрег(ИмяПользователя()); Если (врИмяПользователя = "админ") Тогда // Админ. Ему положено. Возврат ; //ИначеЕсли Тогда // здесь можно еще блатных поставить КонецЕсли; ИначеЕсли Константа.НадоЗавершитьРаботу < 0 Тогда Сообщить("Программа закрыта для работы."); врИмяПользователя = Нрег(ИмяПользователя()); Если (врИмяПользователя = "админ") Тогда // Админ. Ему положено. Возврат ; КонецЕсли; КонецЕсли; СтатусВозврата(0); ЗавершитьРаботуСистемы(); КонецПроцедуры //АнализЗавершенияРаботы |
|||
9
Выгон
30.05.05
✎
15:09
|
Значит нужно перед этим войти в ИБ под админом и установить константу НадоЗавершитьРаботу в 1?
|
|||
10
Ёпрст
гуру
30.05.05
✎
15:22
|
(10) в принципе не важно под кем , главное штоб доступ был к этой костанте
|
|||
11
angrig
30.05.05
✎
15:26
|
Процедура ОстановкаСистемы() Экспорт
ОчиститьОкноСообщений(); Сигнал(); Сообщить("ВНИМАНИЕ! ОСТАНОВКА ПРОГРАММЫ. ","!!!"); Сообщить("Просьба сохранить все необходимые документы или элементы справочников.","!!!"); Если ПопыткаВыхода=1 Тогда Коммент="Предупреждение об остановке системы."; ЗаписьЖурналаРегистрации(Коммент,,,,4); КонецЕсли; Если ПопыткаВыхода=4 Тогда ОчиститьОкноСообщений(); Сигнал(); Сигнал(); Сигнал(); Предупреждение("Ваше время истекло! ОСТАНОВКА СИСТЕМЫ.",1); Коммент="Отключение охамевшего пользователя."; ЗаписьЖурналаРегистрации(Коммент,,,,4); ЗавершитьРаботуСистемы(0); КонецЕсли; Ответ=0; Если ПопыткаВыхода<4 Тогда // Если не проверять, то при отключении (см. выше) система успевает снова задать вопрос. Ответ=Вопрос("Вы готовы к остановке системы",4,10); КонецЕсли; Если Ответ=7 Тогда // Ответ - НЕТ Сигнал(); Коммент="Отсрочка отключения № "+Строка(ПопыткаВыхода); ЗаписьЖурналаРегистрации(Коммент,,,,4); ПопыткаВыхода=ПопыткаВыхода+1; ИначеЕсли Ответ=6 Тогда // Ответ - ДА Сигнал(); Сигнал(); ОчиститьОкноСообщений(); Коммент="Отключение раб. станции "+Строка(ИмяКомпьютера())+"."; ЗаписьЖурналаРегистрации(Коммент,,,,4); ПопыткаВыхода=ПопыткаВыхода+1; ЗавершитьРаботуСистемы(1); ИначеЕсли Ответ=-1 Тогда // Ответ не получен. Выход по таймауту. ОчиститьОкноСообщений(); Сигнал(); Сигнал(); Сигнал(); Предупреждение("Внимание! ОСТАНОВКА СИСТЕМЫ.",3); Коммент="Отключение неответившей раб. станции "+Строка(ИмяКомпьютера())+"."; ЗаписьЖурналаРегистрации(Коммент,,,,4); ЗавершитьРаботуСистемы(0); КонецЕсли; КонецПроцедуры //****************************************************************************** Процедура ПроверкаОстановки() Экспорт Каталог=КаталогИБ(); СтопФайл="stop.all"; ФИмя=Каталог+СтопФайл; Если ((ФС.СуществуетФайл(ФИмя) = 1) ИЛИ (Константа.DisableSystem = Перечисление.Булево.Да) ИЛИ (Константа.DisableNewLogons = Перечисление.Булево.Да)) Тогда Если НЕ(НазваниеНабораПрав()="Админ") Тогда ОстановкаСистемы(); КонецЕсли; КонецЕсли; ФИмя=""; КонецПроцедуры |
|||
12
angrig
30.05.05
✎
15:27
|
(11) Реализовано без констант. Просто создаешь файл stop.all и всех вышибает, если сами не хотят выйти.
|
|||
13
angrig
30.05.05
✎
15:28
|
(11) Работает, если 1С у юзверей не заблокирована...
|
|||
14
Выгон
30.05.05
✎
15:33
|
(11)
О! Вот это я понимаю. То что нужно. Проверка через файл-флаг. Спасибо! |
|||
15
Выгон
30.05.05
✎
15:34
|
(13) - да уже читал, что для заблокированных нельзя.
А можно ли блокировать возможность блокировки? |
|||
16
Факер_S
30.05.05
✎
15:43
|
с помощью WSH можно процессы на машинах убивать, если я не ошибаюсь
|
|||
17
PVasili
30.05.05
✎
15:59
|
(0)Для 8 можно http://itland.ru/rep/index.php?id=380
|
|||
18
Факер_S
30.05.05
✎
16:03
|
и есчо (не моё)
Процедура делает Log Off (Парам=4), Shutdown (Парам=5) или Reboot (Парам=6) выбранному компьютеру: Процедура глViolateComputer(ИмяКомпа,Парам) Экспорт Попытка ScrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl"); ScrptCtrl.Language="vbscript"; ScrptCtrl.AddCode(" |Function ViolateComputer() | Set WMI = GetObject(""winmgmts:{(Shutdown,RemoteShutdown)}\\"+СокрЛП(ИмяКомпа)+"\Root\CIMV2"") | For Each OS In WMI.ExecQuery(""SELECT * FROM Win32_OperatingSystem"") | OS.Win32Shutdown("+Парам+") | Next |End Function |"); ScrptCtrl.Run("ViolateComputer"); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецПроцедуры //глViolateComputer |
|||
19
skunk
30.05.05
✎
16:48
|
(11)есть еще пару фишек когда не взлетит... и придеться к зверю скакать... или звонить
|
|||
20
MuI_I_Ika
31.05.05
✎
00:39
|
А я вот как представлю что будет, если я начну выгонять своих пользователей из базы мне плохо становится. (Очень не люблю слушать как бухгалтера матерятся)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |