Настройка автоматической блокировки сеансов по расписанию на сервере 1С 8.3 . Как выгнать пользователей из 1С. Настройка задачи для планировщика Windows

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

Для понимания необходимости автоматической блокировки входа пользователей в 1С достаточно представить следующую ситуацию. Допустим программист 1С выполнил поставленную задачу по программированию или разработке в тестовой базе и далее необходимо актуализировать рабочую базу данных. Т.е. проще говоря — обновить конфигурацию. На собственно процессе обновления мы останавливаться не будем, т.к. все действия  уже рассматривались неоднократно и нужную информацию можно посмотреть по ссылке: http://www.advanter.net/?s=обновить+конфигурацию .


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

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

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

Средство разработки (PS)

Сначала нам нужно определиться со средством для написания нашей управляющей подпрограммы (скрипта). Ранее серверы и рабочие станции на ОС Windows для написания командных сценариев и подпрограмм использовали командную строку (cmd). Современные серверные ОС под управлением Windows используют более совершенный аналог cmd — расширяемое средство автоматизации Windows PowerShell.

Наш рассматриваемый опыт будет выполняться на сервере с ОС Windows 2012 R2 и кластере серверов на базе 1С Предприятие 8.3. В связи с этим и разработку командного сценария мы будем делать на Windows PowerShell.

Powershell

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

Регистрация СОМ объекта

Также для разработки нам потребуется зарегистрированный СОМ-объект V83.COMConnector. Если такой класс не зарегистрирован, то после входа в PowerShell с администраторскими привилегиями нужно выполнить несложную команду: regsvr32 «C:\Program Files (x86)\1cv8\8.3.х.xxxx\bin\comcntr.dll», где вместо «х» нужно указать версию используемой Вами платформы.

regsvr32

 

Автоматизация блокировки начала сеансов в 1С.

Настроить данную автоматизацию нам поможет зарегистрированное COM-соединение, а собственно менеджер COM-соединений 1С. При администрировании кластера серверов в части работы с информационной базой этот менеджер обладает рядом достаточно эффективных функций. Это, например, такие широко применяемые конструкции:

  • PermissionCode
  • DeniedMessage
  • DeniedFrom
  • DeniedTo

и т.д.

Итак, откроем обычный текстовый редактор (Блокнот) и напишем скрипт следующего содержания:

Это же можно сделать и в специальной интегрированной среде сценариев Windows PowerShell ISE

Windows PowerShell ISE

Данный командный сценарий выполняет следующие действия:

  • подключается к серверу
  • инициирует СОМConnector
  • определяет существующие кластеры
  • разрывает существующие сессии выбранной базы
  • запрещает в течении 2 часов подключение к выбранной базе.

В параметре

AddHours можно менять на AddMinutes или AddSeconds, или AddDays соответственно. Но, думается, это уже слишком. Цифра 2 обозначает количество единиц времени, в течение которых будет невозможен доступ.

Параметр

содержит текст сообщения, в котором говорится то, что решил сказать пользователю администратор.

Сохранение созданного скрипта

Создадим папку для расположения нашего командного сценария. Пусть это будет папка «_cmd» на диске C/. В зависимости от выбранного редактора сохраним из блокнота или Windows PowerShell ISE текст подпрограммы  в созданный каталог. Зададим имя, например «block». Если сохранение происходит из блокнота, то укажем расширение файла — «ps1». Такое расширение присваивается в системах Windows PowerShell скриптам.

Сохранение PowerShell скрипта

Теперь мы имеем работающий сценарий для автоматического завершения сессий пользователей 1С и блокирования новых сеансов на сервере 1С на 2 часа.

Устанавливаем расписание.

Windows

Установку расписания в системах с ОС Windows достаточно просто делать при помощи планировщика задач. Открыть его можно выполнив команду taskschd.msc все в том же PS.

Планировщик Windows

на запуск скрипта

В открывшемся интерфейсе планировщика создадим новое задание. Для этого в правом окне «Действия» выберем «Создать задачу…»

Создать задачу планировщика Windows

Далее заполним параметры на закладках

Общие

Заполним имя задания, желательно заполним описание. Обязательно укажем радиокнопкой опцию «Выполнять для всех пользователей» и поставим галочку «Выполнять с наивысшими правами»

Закладка Общие планировщика Windows

Триггеры

На закладке Триггеры настроим временные параметры нашего задания. Например, укажем запуск в 7:00, каждый день

Создать триггер планировщика

Укажем вверху — «По расписанию», далее «Ежедневно», укажем дату начала работы задания, период повторения — 1 день. проверим внизу галочку «Включено».

Расписание запуска

Действия

За закладке Действия создаем запись с указанием нужных к выполнению действий для задания.

Создать Действия

В нашем случае для работы скрипта PowerShell указываем запуск оболочки powershell.exe и параметров запуска., в которых и располагается ссылка на наш исполняемый скрипт.

Программа или сценарий: powershell.exe

Добавить аргументы: -File «C:\_cmd\block.ps1»

Также в аргументах можно указать дополнительные опции:

-Command — выполняет команды и другие параметры. Параметр можно использовать для запуска скрипта, например: -Command ″& {C:\_cmd\block.ps1}″. C его помощью можно передавать в скрипт параметры: -Command ″& {C:\_cmd\block.ps1 -a 1 -b 3}″;

-ExecutionPolicy — задает политику выполнения скриптов для текущего сеанса, может принимать значения Unrestricted, RemoteSigned, AllSigned и Restricted. Заданная политика имеет приоритет над любыми ранее созданными политиками, действует только в текущем сеансе;

-NonInteractive — отключает диалог с пользователем в интерактивном режиме;

-WindowStyle Hidden — запуск окна PowerShell в скрытом режиме;

-NoProfile — предотвращает загрузку профиля;

-NoExit — не закрывается оболочка после окончания работы скрипта.

Программа и параметры действия задания планировщика

Закладки Параметры и Условия оставляем без изменений. Нажимаем кнопку «ОК» для завершения создания задания.

На этом минимальные требования к заданию удовлетворены и с завтрашнего дня, с 7:00 наш скрипт на 2 часа будет блокировать пользователей выбранной базы.

 

Если у Вас появились вопросы по статье или остались нерешенные проблемы обсудить их Вы можете на Форуме 1С Вопросы и ответы 



Оцените статью:
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 голосов, 5,00 из 5)
Загрузка...


Если Вы заметили ошибку, то выделите ее мышью и нажмите Ctrl+Enter

Добавить комментарий