Имя: Пароль:
1C
 
Как прибить сеансы пользователей?
0 deep_amnesia
 
03.10.06
17:40
Здравствуйте!

Подскажите пожалуйста, как прибить сеансы пользователей, которые подключаются через терминал к серверу. Перед окончанием рабочего дня, многие забывают завершить своего клиента и он болтается всю ночью, с открытым 1С.

Какие есть варианты действий? Угрозы физической расправы не предлагайте, не помогает. :) Нужно для того, чтобы делать архив.

Заранее спасибо!
1 ado
 
03.10.06
17:44
Настроить клиентские соединения с запуском одной программы. Тогда при завершении программы завершается сеанс. А еще есть диспетчер служб терминалов.
2 Andrey_Kharkiv
 
03.10.06
17:46
1) В глобальнике написать выгонялку
Процедура Выгонялка() Экспорт  
   Если Константа.Завершить=1 Тогда
       Сигнал();
       Нафиг=нафиг+1;    
       ост=Константа.КвоМинут-нафиг;
       Предупреждение("Уважаемый(ая) "+ПолноеИмяПользователя()+" будьте добры закрыть систему 1С:Предприятие!
       |Внимание! : СОХРАНИТЕ ДОКУМЕНТЫ : через "+ост+" мин. произойдет автоматическое закрытие системы.",10);
       
       Если ост = 0 Тогда
           ЗавершитьРаботуСистемы(0);
       КонецЕсли;    
   КонецЕсли;
КонецПроцедуры    // Выгонялка

ее вызывать через обработку ожидания

2) отключать в лоб используя например программу Killwatcher
3 Дмитрий_
пользователь
 
03.10.06
17:51
1) К у самых забывчивых предоставить себе терминальный доступ.
2) Написать в конфе, что бы при определенном значении чего-нибудь, предположим константы, сеанс после предупреждения или вопроса с разумным таймоутом звершался.
4 deep_amnesia
 
03.10.06
17:52
извиняюсь, а что за обработка ожидания и как этот веселый код :) запустить допустим в 11-часов вечера, если в этот момент открыта 1С?
5 Andrey_Kharkiv
 
03.10.06
17:57
ОбработкаОжидания(<?>,)
Синтаксис:
ОбработкаОжидания(<ИмяПроцедуры>,<ИнтервалВызова>)
Назначение:
Инициирует периодический вызов процедуры глобального модуля с заданным интервалом времени.

т.е. выгонялка будет периодически вызываться, в данном случае напр. 60 секунд
ОбработкаОжидания("Выгонялка",60); // при открытии глобальника пишешь

+ надо завести константу "Константа.КвоМинут" ставишь ее в значение времени напр 10 минут и через 10 минут всех выкидывает, главное чтобы они не сидели в модальных окнах, но этих ты вручную "того"
:)
Удачи!
6 smaharbA
 
03.10.06
19:36
(2)(3) Здорово...!???
7 DimSpirt
 
03.10.06
19:40
Ну и я плюну, диспетчер задач\вкладка пользователи, далее по желанию
8 Создаватель Объектов
 
04.10.06
08:12
Самое простое, когда юзеры забывают выйти из программ 1С - не важно - терминал, не терминал - пофиг, если надо чтото важное делать ночью автоматом монопольно и если баз 1Совских много и никого нет на предприятии, не надо ничего писать ни в каких глобальниках-пофигальниках, а сделать СЛЕДУЮЩЕЕ:

в шедулере на сервере прописать перезагрузку сервера в 24-00 (например), перед архивацией или перед роботом и т.п.... и серверу хорошо и юзеры от 1С отваляться.
9 Obed
 
04.10.06
08:21
+(8)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"DefaultDomainName"="MyServer"
"DefaultUserName"="Администратор"
"LegalNoticeCaption"=""
"LegalNoticeText"=""
"forceunlocklogon"=dword:00000000
"AltDefaultUserName"="Администратор"
"AltDefaultDomainName"="MyServer"
"AutoAdminLogon"="1"
"CachePrimaryDomain"="MyServer"
"DefaultPassword"="ПарольАдмина"
"Welcome"="Превед, админчег!"


эту батву в reg файл и ентер по этому файлу
10 ASV
 
04.10.06
08:23
может еще пароли на шифрованные диски в реестр ввести
11 Obed
 
04.10.06
08:25
(10) Обязательно, без этого никак :)
12 VasilyKushnir
 
04.10.06
09:26
С помощью nnСron (для жителей бывшего СССР - халява) Каждую ночь в 00:15 у меня выполняется следующее

#( 1c_copy
AsLoggedUser
Time: 15 0 * * * *
Action:

//  Вот здесь собственно я и убиваю все процессы 1С, а дальше спойно
//переиндексирую, коприрую и архивирую. Как видишь, минимум знаний
// Форт и все чики-чики.
BEGIN
       KILL: "1cv7.exe"
       PROC-EXIST: "1cv7.exe" NOT
UNTIL

FILE-DELETE: "D:\FARMACEYA\*.cdx"

StartIn: "C:\1Cv77\bin"
ShowNormal   NormalPriority
START-APPW: C:\1Cv77\BIN\1cv7.exe enterprise /d D:\FARMACEYA\ /NVasily /PZorge /m

StartIn: "C:\Program Files\nnBackup"
ShowNormal   NormalPriority
START-APPW: C:\Program Files\nnBackup\nnbackup.exe copy -log log\copy_arh.log -i D:\Farmaceya -o \\server2004\Pharmacia\ -p -s -v

StartIn: "C:\Program Files\nnBackup"
ShowNormal   NormalPriority
START-APPW: C:\Program Files\nnBackup\nnbackup.exe copy -log log\copy_arh.log -i D:\Farmaceya -o \\server2004\1c_save\ -p -s -v

StartIn: "C:\Arc"
ShowNormal   NormalPriority
START-APPW: rar a -r -agDDMMYY -m5 -ed -ep2 -inul -mdg -t -x*.cdx -x*.tmp f:\1CCopy\2006\farmaceya D:\FARMACEYA\

GET-CUR-TIME
MSG: "Копирование выполнено в %hh%:%mm%:%ss%"
)#
13 smaharbA
 
04.10.06
09:31
(12) а без крона никак ?
14 skunk
 
04.10.06
09:32
самое просто шелудером сделать выключить/включить сетевую карту... после чего очистить SQL, если юзается скульная база, ...
15 skunk
 
04.10.06
09:33
для дбф переиндексировать....
16 gr13
 
04.10.06
09:41
рестартануть сервер;)
17 gr13
 
04.10.06
09:42
(14) а еще можно просто убрать расшаривание папки... интересно можно это сделать программно)

и как программно очистить SQL, на предмет одного или 2 висящих подключенных пользователей?
18 IMHO
 
04.10.06
09:44
(5)главное чтобы они не сидели в модальных окнах, но этих ты вручную "того"
по ночам кто то на работе сидит с админскими правами на домен контроллер?
(8) а от этого я вообще фигею, на кой ляд сервер то перегружать? а если кто там
делает чего?

никому в голову не приходит поставить в шедулер на рабочих станциях
батник чтобы комп гасил, или шатдаунер поставить коих полно.
19 bse
 
04.10.06
09:46
в шедулер

rem *** закрываем 1с, Word, Excel ***
tskill *1Cv7* /a /v
tskill *Excel* /a /v
tskill *WinWord* /a /v
rem *****************************************

а потом ...
20 bse
 
04.10.06
09:47
отключаем сесии:
net session /delete /yes
21 bse
 
04.10.06
09:48
(19) для терминала
(20) для сетевых подключений
22 gr13
 
04.10.06
09:51
(19) при таком отключении могут остаться пользователи, подключенные к sql sever'у, как отключить их?
объясню, у меня бывает такое приходишь утром, делаешь регламентные операции (загрузка выгрзка поведение, удаление) в монопольном режиме.
отрубаешь пользоватлей, после этого пытаешься запустить в монопольном режиме систему- бесполезно отруб. Заходишь в Enterprise Manager и делаешь Detach
и видим, что к системе подключены пользователи, нажимаем Clear, и все летает (отключать не нада) а как это сделать программно?
23 gr13
 
04.10.06
09:51
(21) читай 22
24 VasilyKushnir
 
04.10.06
09:51
>никому в голову не приходит поставить в шедулер на рабочих станциях батник чтобы комп гасил, или шатдаунер поставить коих полно.

так комп бывает и так погашен - некорое вырубают комп без выхода из 1С и оключенияя от сервера (хотя последнее времмя у нас эти факты становятся редкостью).

А чем крон не нравится (он и есть своего рода шедулер, тока покруче стандартного)? Все предельно просто и понятно. Между прочим из кроновского файла я показал только одно задание, а у меня их там туева хуча с разными параметрами запуска и действиями. При необходимости окажу любую консультативную помощь (мыло открыто).
25 gr13
 
04.10.06
09:54
(24) у меня так и до меня делалось и сейчас новый админ также сделал, я не понимаю зачем сервер перегружать и возникают вопросы, о котоырх спрашиваю
26 IMHO
 
04.10.06
09:55
(24) за три месяца работы заметил только раз такое чтобы комп был вырублен,
а сессия висела.
27 Dusyaya
 
04.10.06
09:56
Можно и с помощью nnCron, но ведь можно и проще - терминал ведь. поставь ограничение на длительность активного и бездействующего сеанса, чтобы сеанс завершался автоматом :)
28 smaharbA
 
04.10.06
09:57
Я на вас удивляюсь...(с)
29 gr13
 
04.10.06
09:58
(27) блин, а как завершить Connections using this database? там висит один или 2 пользователя, и при таком завершении, как Вы предлагаете он не завершается
30 VasilyKushnir
 
04.10.06
10:04
>Можно и с помощью nnCron, но ведь можно и проще - терминал ведь. поставь ограничение на длительность активного и бездействующего сеанса, чтобы сеанс завершался автоматом

А как ты думаешь, я это не пробовал? Не всегда это срабатывало. Уже точно не помню, но ситуация вроде следующая(как мне показалось): для юзера при коннекте взводится таймер или счетчик  для контроля сеанса, при дисконекте должен по идее сбрасыватся и устанавливатся для новой сессии. А вот если сессия завершилась аварийно, то фиг фам бабушка, а не черешень - и висеть сессия будет до втопого пришествия...
31 gr13
 
04.10.06
10:06
(30) угу( но это будет не всегда, следовательно самое надежное это перегруз?
32 smaharbA
 
04.10.06
10:06
(30) Да ну ?
33 skunk
 
04.10.06
10:18
sp_detach_db
Detaches a database from a server and, optionally, runs UPDATE STATISTICS on all tables before detaching.

Syntax
sp_detach_db [ @dbname = ] 'dbname'
   [ , [ @skipchecks = ] 'skipchecks' ]

Arguments
[@dbname =] 'dbname'

Is the name of the database to be detached. dbname is sysname, with a default value of NULL.

[@skipchecks =] 'skipchecks'

skipchecks is nvarchar(10), with a default value of NULL. If true, UPDATE STATISTICS is skipped. If false, UPDATE STATISTICS is run. This option is useful for databases that are to be moved to read-only media.

Return Code Values
0 (success) or 1 (failure)

Result Sets
None

Remarks
The detached files remain and can be reattached using sp_attach_db or sp_attach_single_file_db. The files can also be moved to another server and attached.

Permissions
Only members of the sysadmin fixed server role can execute sp_detach_db.

Examples
This example detaches the pubs database with skipchecks set to true.

EXEC sp_detach_db 'pubs', 'true'