gifts2017

Утилита завершения работы пользователей на серверах 1С предприятие (8.1 и 8.2) на C# 4

Опубликовал Евгений Матыцин (matytsin_new) в раздел Администрирование - Системное

Удобное средство для отключения пользователей от информационной базы на сервере 1С Предприятие. Поддерживает списки "привилегированных" пользователей двух видов, работает с произвольным числом процессов в кластере. Допускает управление различными серверами в локальной сети и может запускаться по расписанию через шедулер ОС Windows.

Утилита предназначена для решения следующей задачи:

В рамках локальной сети есть несколько серверов, на которых подняты Серверы приложений 1С:Предприятие 8.1 и 8.2

Существует график резервного копирования информационных баз 1С. Согласно графика,  каждая информационная база резервервируется средствами MS SQL и средствами 1С:Предприятие. Перед выгрузкой баз средствами 1С:Предприятия необходимо отключить пользователей, "забывших" завершить работу в 1С. Есть ряд пользователей, отключать которых нельзя, т.к. они могут выполнять долговременые задачи. Пользователи, не только отключаются от сервера 1С:Предприятие, но и "наказываются". В учетных записях этих пользователей закрываются разрешения на аутентификацию в базе любыми способами. Однако есть пользователи, которых можно отключать, но нельзя блокировать повторный вход (например - руководители отделов).

Информация о всех пользователях, которым был заблокирован доступ собирается и отсылается электронной почтой в виде уведомления ответственному лицу. Повторый вход заблокированного пользователя в базу возможен после письменного объяснения причин "забывчивости".

Перед каждым запуском процесса резервного копирования информационной базы выполняется запуск предлагаемой утилиты.

Утилита написана на C# 4 и требует для работы .Net Framework Client 4.

Настройки утилиты расположены в трех файлах:

AllowedUsers.ini - это перечень всех пользователей информационной базы, которых нельзя отключать от сервера или блокировать повторный вход.

untouchableusers.ini - это перечень всех пользователей информационной базы, которых можно отключать, но нельзя блокировать

settings.ini - это перечень настроек работы утилиты.

Состав файла settings.ini: (кодировка UTF-8)

Platform = "V82" или "V81" платформа, для которой выполняется утилита.
Server1C = "ServerName:ServerPort" Имя и порт подключения сервера приложений 1С:Предприятие
Base1CName = "ИмябазыДанных1СДляПодключения"

SmtpAddr = "smtpАдресПочтовойСлужбыДляОтправкиУведомленияОБлокировке"
SmtpPort = "25"
MailName = "SmtpLogin" как правило совпадает с адресом электронной почты отправителя
MailPassword = "SmtpPassword" пароль к почтовому ящику отправителя
Sender = "E-mailАдресОтправителя" можно указать любой адрес электронной почты.
Reciever = "E-mailАдресПолучателя" адрес ответственного, который будет уведомлен о блокировке доступа "нарушителей"

User1C = "ПользовательАдминистраторБазы" логин пользователя, имеющего администраторские права в выбранной информационно базе
Password1C = "ПарольАдминистратораБазы1С" пароль пользователя User1C

KickOutUsers = "false" если false - отключение "нарушителей" от сервера 1С не выполняется (полезно во время длительных профилактик серверов). Если "true" - отключаются все пользователи, кроме списка allowedusers.ini

BlockUsers = "false" - если false - блокировка повторного входа нарушителей не производится. Уведомление о блокировке не высылается.

SendNotification = "false" - если false - уведомление о блокировке доступа "нарушителей" ответственному лицу не высылается

 

 

Скачать файлы

Наименование Файл Версия Размер
Скомпилированная утилита + шаблоны файлов настроек 43
.zip 10,91Kb
16.05.12
43
.zip 10,91Kb Скачать
Исходный код утилиты 87
.cs 18,98Kb
16.05.12
87
.cs 18,98Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. Денис (Den_D) 18.05.12 15:41
за идею наказания огромный +
2. dka80 ~ (dka80) 23.05.12 06:20
Строго у вас в конторе...
3. Света Серебряная (silver-747) 23.05.12 15:59
Полезная вещь особенно для большой организации и не понимающих бухгалтеров что выйти из программы это не свернуть программу.... :-)
4. Александр Остапенко (Aleck12) 06.06.12 12:31
Запускаю в планировщике под Администратором (иначе не работает). Сеансы пользователей завершает, но не блокирует (несмотря на включенные настройки). Но для решения моей задачи (завершить сеансы всех пользователей для резервной копии базы) работает отлично!
5. Евгений Матыцин (matytsin_new) 09.06.12 06:38
Сорее всего проблема в кодировке файла настроек
проверьте ее
она должна быть та же, как в образце
6. Евгений Матыцин (matytsin_new) 09.06.12 06:38
(4) Aleck12,
Сорее всего проблема в кодировке файла настроек
проверьте ее
она должна быть та же, как в образце
8. Александр Остапенко (Aleck12) 11.06.12 11:17
(6) matytsin_new
Но в файле настроек используются только латинские буквы, при чём тут кодировка? Или имеются в виду файлы AllowedUsers и UntouchableUseers?
9. Евгений Матыцин (matytsin_new) 13.06.12 13:12
Дело в том, что стандартно в C# поток читается в Unicode
И если подсунуть другую кодировку - поток прочитан будет, но символы будут прочитаны с использованием преобразования в эту кодировку, т.е. будет использовано два байта на символ. Соответственно, независимо от языка текст может быть прочитан неверно. Если не переписывать код - то проблема решается редактированием файлов - образцов с помощью редактора с поддержкой юникода, например notepad++. Кстати, если это не помогает, вышлите мне файл настроек блокировки (где перечень неблокируемых пользователей) и файл настроек, и я попробую доработать утилиту, если смогу воспроизвести ошибку.
Кстати опишите подробней в какой среде вы эту утилиту применяете (если не секрет). Настройки серверов, количество процессов сервера и т.п. Чем подробней - тем лучше для конечного результата.
10. Федор Сумкин (ShamanNet) 15.06.12 14:48
Установил Net Framework Client 4, перезагрузился. Отредактировал файлы Settings.ini, AllowedUsers.ini и UntouchableUsers.ini. Запускаю файлик ControlThe1CUsers.exe и появляется окошко: ControlThe1CUsers - обнаружена ошибка. Приложение будет закрыто. Приносим свои извинения за неудобства. Печаль!