Удаленный рестарт сервиса 1С на Windows Server 2012 R2 (перезапуск агента 1С на кластере не под администратором)

20.09.19

Разработка - Инструментарий разработчика

Предоставление возможности определенным доменным пользователям производить перезапуск службы (агента 1С), не заходя на сам сервер и не имея административных прав (это освобождает администратора от необходимости заходить на сервер и делать перезапуск).

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

Наименование Файл Версия Размер
Пример файла Restart1CAgentOnCluster.bat плюс содержимое этой статьи
.zip 280,61Kb
27
.zip 280,61Kb 27 Скачать бесплатно

Дано: виртуальная машина с ОС Windows Server 2012 R2 (функция сервера - кластер 1С). Установлен сервер 1С 8.3. В службах присутствует агент сервера 1С.
Задача: в некоторых случаях возникает необходимость сделать перезапуск агента 1С, поэтому появилась задача сделать так, чтобы определенные доменные пользователи могли перезапускать службу (агента 1С), не заходя на сам сервер и не имея административных прав (это освобождает администратора от необходимости заходить на сервер и делать перезапуск).

 


Решение: для перезапуска агента пользователь на своем ПК будет запускать bat-файл, который содержит специальную команду удаленного перезапуска сервиса.

Описание
Настройку делаем в два этапа:
1. Подготовка сервера (кластера 1С) - назначение прав на сервис при помощи специальной утилиты.
2. Подготовка клиента (ПК пользователя) - создание bat-файла для удаленного перезапуска.

ЭТАП 1. Подготовка сервера (кластера 1С) - назначение прав на сервис при помощи специальной утилиты.

Первоначально нужно предоставить определенному пользователю право на перезапуск сервиса.
Самым удобным способом в моем случае оказалось это - задать права при помощи утилиты SubInACL (скачивайте ее с официального сайта Microsoft).
После установки утилиты SubInACL на кластере при помощи следующей команды можно посмотреть какие права назначены на сервис 1С агента:

subinacl.exe /service "1C:Enterprise 8.3 Server Agent (x86-64)" /display >c:\tmp\service1cAgent.txt

В файле service1cAgent.txt в итоге будет примерно такая информация:

=================================================
+Service 1C:Enterprise 8.3 Server Agent (x86-64)
=================================================
/control=0x0
/owner             =system
/primary group     =system
/audit ace count   =1
/aace =everyone  SYSTEM_AUDIT_ACE_TYPE-0x2
 FAILED_ACCESS_ACE_FLAG-0x80    FAILED_ACCESS_ACE_FLAG-0x0x80
 SERVICE_ALL_ACCESS
/perm. ace count   =7
/pace =system  ACCESS_ALLOWED_ACE_TYPE-0x0
 SERVICE_QUERY_CONFIG-0x1           SERVICE_QUERY_STATUS-0x4           SERVICE_ENUMERATE_DEPEND-0x8     
 SERVICE_START-0x10                 SERVICE_STOP-0x20                  SERVICE_PAUSE_CONTINUE-0x40        SERVICE_INTERROGATE-0x80         
 READ_CONTROL-0x20000               SERVICE_USER_DEFINED_CONTROL-0x0100
/pace =builtin\administrators  ACCESS_ALLOWED_ACE_TYPE-0x0
 SERVICE_ALL_ACCESS
/pace =interactive  ACCESS_ALLOWED_ACE_TYPE-0x0
 SERVICE_QUERY_CONFIG-0x1           SERVICE_QUERY_STATUS-0x4           SERVICE_ENUMERATE_DEPEND-0x8     
 SERVICE_INTERROGATE-0x80           READ_CONTROL-0x20000               SERVICE_USER_DEFINED_CONTROL-0x0100
/pace =service  ACCESS_ALLOWED_ACE_TYPE-0x0
 SERVICE_QUERY_CONFIG-0x1           SERVICE_QUERY_STATUS-0x4           SERVICE_ENUMERATE_DEPEND-0x8    
 SERVICE_INTERROGATE-0x80           READ_CONTROL-0x20000               SERVICE_USER_DEFINED_CONTROL-0x0100
=================================================


Видно, что кроме администраторов никто особых прав не имеет.
Требовалось назначить права на данный сервис нужному пользователю, например, mydomain\user1.

Сначала попробовала эту команду:

subinacl.exe /service "1C:Enterprise 8.3 Server Agent (x86-64)" /grant=mydomain\user1=PTO

не сработало

При попытке что-то сделать с сервисом почти всегда был ответ об отсутствии доступа:
 


В результате экспериментов нашла нужную команду:

subinacl.exe /service "1C:Enterprise 8.3 Server Agent (x86-64)" /grant=mydomain\user1=LQSETOPI

Эту команду необходимо запускать на каждого пользователя, которому нужно предоставить права на перезапуск сервиса.

Результат выполнения команды:
 


LQSETOPI - перечисление предоставляемых пользователю прав.

Расшифровка прав для данной команды:
 


При зачитывании информации о сервисе первой командой в текстовом файле получаем список назначенных прав:

/pace =mydomain\user1
ACCESS_ALLOWED_ACE_TYPE-0x0
SERVICE_QUERY_CONFIG-0x1
SERVICE_QUERY_STATUS-0x4
SERVICE_ENUMERATE_DEPEND-0x8   
SERVICE_START-0x10
SERVICE_STOP-0x20
SERVICE_PAUSE_CONTINUE-0x40
SERVICE_INTERROGATE-0x80
READ_CONTROL-0x20000 


ЭТАП 2. Подготовка клиента (ПК пользователя) - создание bat-файла для удаленного перезапуска.

У пользователя имеющего право на перезапуск сервиса используем утилиту PsService.exe (скачивайте ее с официального сайта Microsoft, установки она не требует).

Проверить доступ к сервису на удаленном сервере можно при помощи команды ниже.
Чтение сервиса под пользователем с другой машины:

psservice \\SRV-NODE -u mydomain\user1 query "1C:Enterprise 8.3 Server Agent (x86-64)"

Где \\SRV-NODE  - это имя сервера (кластера 1С), на котором нужно произвести перезапуск 1С агента.

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

psservice \\SRV-NODE restart "1C:Enterprise 8.3 Server Agent (x86-64)"

На перезапуск сервиса может уйти около одной минуты.

При успешном выполнении команды получаем:
 


Для удобства делаем батник, запускающий данную команду (например, Restart1CAgentOnCluster.bat) и кладем его там же где и утилита psservice.

Содержимое файла Restart1CAgentOnCluster.bat:

@echo Restart 1C Agent On Cluster
psservice \\SRV-NODE restart "1C:Enterprise 8.3 Server Agent (x86-64)"
@pause

Результат выполнения bat-файла на ПК пользователя:
 


В итоге для пользователя понадобится для файла:
 

  • PsService.exe - утилита командной строки
  • Restart1CAgentOnCluster.bat - должен лежать в той же папке, что и файл PsService.exe


Т.е. достаточно предоставить пользователю два этих файла и он сможет по запросу делать перезапуск 1С агента на сервере (например, если что-то у кого-то зависло в 1С, а админ в отпуске в Тайланде!)

В архиве к статье сам пример файла Restart1CAgentOnCluster.bat и содержимое этой статьи.

Windows Агент PsService кластер

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122180    670    389    

714

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 15300 руб.

06.10.2023    7298    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3545    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177760    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99349    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18118    6    8    

40

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28111    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23605    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 24.03.19 18:33
(0) Интересный подход. Спасибо за информацию!
2. ellavs 1022 27.03.19 14:19 Сейчас в теме
(1) спасибо, буду рада, если кому-то пригодится :)
3. Oleg_N 23 27.02.21 22:13 Сейчас в теме
Огромное спасибо!
Очень помогло, мы подключили кассу в офисе к интернет-магазину и из за кривого решения битрикса, касса постоянна подключена к ИМ, а нам иногда надо пробивать чеки в офисе с помощью УТ11.4, и вот теперь перед тем как выполнить любую операцию с кассой из УТ, кликаем ярлык bat файла, который останавливает службу подключения кассы на сервере. Включается служба далее сам с помощью планировщика.
Было бы еще удобней вывести это на кнопку формы пробития чека, но пока не нашел готового решения.
Пример моего файла:
@echo Stop BxDTO-svc
psservice \\192.168.1.240 stop "BxDTO-svc"
@pause
4. user645801_yyyuuu123q 21.04.23 07:43 Сейчас в теме
Делаю чуть чуть по проще
Можно еще так:
cmd от админа.

Net Use \ имя_компьютера пароль / Пользователь: имя пользователя

SC \ computername Start | Stop имя_службы
Оставьте свое сообщение