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

Удобное средство для отключения пользователей от информационной базы на сервере 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 — уведомление о блокировке доступа «нарушителей» ответственному лицу не высылается

 

 

9 Comments

  1. Den_D

    за идею наказания огромный +

    Reply
  2. dka80

    Строго у вас в конторе…

    Reply
  3. silver-747

    Полезная вещь особенно для большой организации и не понимающих бухгалтеров что выйти из программы это не свернуть программу…. 🙂

    Reply
  4. Aleck12

    Запускаю в планировщике под Администратором (иначе не работает). Сеансы пользователей завершает, но не блокирует (несмотря на включенные настройки). Но для решения моей задачи (завершить сеансы всех пользователей для резервной копии базы) работает отлично!

    Reply
  5. matytsin_new

    (4) Aleck12,

    Сорее всего проблема в кодировке файла настроек

    проверьте ее

    она должна быть та же, как в образце

    Reply
  6. matytsin_new

    Сорее всего проблема в кодировке файла настроек

    проверьте ее

    она должна быть та же, как в образце

    Reply
  7. Aleck12

    (6) matytsin_new

    Но в файле настроек используются только латинские буквы, при чём тут кодировка? Или имеются в виду файлы AllowedUsers и UntouchableUseers?

    Reply
  8. matytsin_new

    Дело в том, что стандартно в C# поток читается в Unicode

    И если подсунуть другую кодировку — поток прочитан будет, но символы будут прочитаны с использованием преобразования в эту кодировку, т.е. будет использовано два байта на символ. Соответственно, независимо от языка текст может быть прочитан неверно. Если не переписывать код — то проблема решается редактированием файлов — образцов с помощью редактора с поддержкой юникода, например notepad++. Кстати, если это не помогает, вышлите мне файл настроек блокировки (где перечень неблокируемых пользователей) и файл настроек, и я попробую доработать утилиту, если смогу воспроизвести ошибку.

    Кстати опишите подробней в какой среде вы эту утилиту применяете (если не секрет). Настройки серверов, количество процессов сервера и т.п. Чем подробней — тем лучше для конечного результата.

    Reply
  9. ShamanNet

    Установил Net Framework Client 4, перезагрузился. Отредактировал файлы Settings.ini, AllowedUsers.ini и UntouchableUsers.ini. Запускаю файлик ControlThe1CUsers.exe и появляется окошко: ControlThe1CUsers — обнаружена ошибка. Приложение будет закрыто. Приносим свои извинения за неудобства. Печаль!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *