|
Скрипт для отключения пользователей. Проблема. | ☑ | ||
---|---|---|---|---|
0
Menjoy
04.10.12
✎
11:56
|
Добрый день.
Использую такой скрипт для отключения пользователей на сервере, но отрабатывает он через раз. Часто остаются активные сеансы, 1 - 2 сеанса. В чем ошибка? UserName = "robot" UserPass = "password" ServerName = "192.168.1.67" BaseName = "BaseName" Dim Connector Dim AgentConnection Dim Cluster Dim WorkingProcess Dim WorkingProcessConnection Dim ibDesc Dim connections Dim ConnectString Set connector = CreateObject("V82.COMConnector") Set AgentConnection = Connector.ConnectAgent(ServerName) Set Cluster = AgentConnection.GetClusters()(0) AgentConnection.Authenticate Cluster, "", "" Set WorkingProcess = AgentConnection.GetWorkingProcesses(Cluster)(0) ConnectString = WorkingProcess.HostName & ":" & WorkingProcess.MainPort Set WorkingProcessConnection = Connector.ConnectWorkingProcess(ConnectString) WorkingProcessConnection.AddAuthentication UserName, UserPass Set ibDesc = WorkingProcessConnection.CreateInfoBaseInfo() ibDesc.Name = BaseName Connections = WorkingProcessConnection.GetInfoBaseConnections(ibDesc) Dim i Dim Connection Dim RobotConnection For i = LBOUND(Connections) To UBound(Connections) Set Connection = Connections(i) If Connections(i).userName <> "robot" then WorkingProcessConnection.Disconnect Connection end if If Connections(i).userName = "robot" then set RobotConnection = Connection end if Next WorkingProcessConnection.Disconnect RobotConnection |
|||
1
Fragster
гуру
04.10.12
✎
12:02
|
бывает такое...
|
|||
2
Fragster
гуру
04.10.12
✎
12:02
|
из консоли они тоже, наверное, не срубаются
|
|||
3
Menjoy
04.10.12
✎
12:03
|
В том-то и дело, что такое "бывает" очень часто. На сегодняшний день последний бекап только от 27 сентября.
|
|||
4
Menjoy
04.10.12
✎
12:04
|
Ставил абсолютно всем пользователям системы в фоновое задание
ЗавершениеРаботыСистемы(Ложь); но и оно почему-то ни у кого не срабатывает, но это, как я вижу, единственный выход. |
|||
5
shuhard
04.10.12
✎
12:23
|
(0) работает как часы, хотя мне dt нафиг и не нужны:
НомерСоединения=0; Пользователь=ПараметрыЗапуска[2]; Пароль=ПараметрыЗапуска[3]; Попытка СтрокаСоединения=СтрокаСоединенияИнформационнойБазы(); ЭтоСоединение=НомерСоединенияИнформационнойБазы(); База=ПараметрыЗапуска[1]; КОМ=Новый COMОбъект("V82.COMConnector"); Сервер=ПараметрыЗапуска[0]; Агент=КОМ.ConnectAgent(Сервер); Кластеры=Агент.GetClusters(); Кластер=Кластеры.GetValue(0); Агент.Authenticate(Кластер,"",""); РабочиеПроцессы=Агент.GetWorkingProcesses(Кластер); // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Для Каждого Процесс Из РабочиеПроцессы Цикл СтрокаСоединенияРП=Процесс.HostName+":"+Формат(Процесс.MainPort,"ЧГ="); СоединениеРП=КОМ.ConnectWorkingProcess(СтрокаСоединенияРП); СоединениеРП.AddAuthentication(Пользователь,Пароль); ОписаниеИБ=СоединениеРП.CreateInfoBaseInfo(); ОписаниеИБ.Name=База; Соединения=СоединениеРП.GetInfoBaseConnections(ОписаниеИБ); Для Каждого Соединение Из Соединения Цикл Если Соединение.AppID="COMConsole" Тогда Продолжить; КонецЕсли; Если Соединение.ConnID<>ЭтоСоединение Тогда СоединениеРП.Disconnect(Соединение); // всех кроме себя КонецЕсли; КонецЦикла; КонецЦикла; КОМ=Неопределено; ЗавершитьРаботуСистемы(Ложь); Исключение //Сообщить(ОписаниеОшибки()); КонецПопытки; |
|||
6
Maxus43
04.10.12
✎
12:25
|
бэкапы в виде Dt - моветон... бэкап скулем наше всё
|
|||
7
Fragster
гуру
04.10.12
✎
12:26
|
(3) блиииин.... бэкапь скулем и вообще не парься...
|
|||
8
Menjoy
04.10.12
✎
23:37
|
(5) Спасибо за пример, буду пробовать.
(7) SQL бэкап базы у клиентов весит порядка 15 Гб, сжатый 1,7 Гб - многовато для их дохлой удаленки. *.dt в 700 Мб и то долго скачивается. |
|||
9
shuhard
04.10.12
✎
23:52
|
(8)[SQL бэкап базы у клиентов весит порядка 15 Гб, сжатый 1,7 Гб ]
перевести базу в симпл и делать вместо полного бэкапа дифференциальные |
|||
10
Menjoy
05.10.12
✎
00:07
|
(9) Я понимаю, что можно сделать полноценный бекап через SQL. Но есть еще небольшая проблема - админских прав на SQL у меня нет, сис. администратор предприятия их не выдаст, а сам сделает если только через большой промежуток времени...
|
|||
11
Menjoy
05.10.12
✎
00:07
|
(9) Если бы не небольшие проблемы - не искал бы сложных путей.
Спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |