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

20.09.19

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

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

Дано: виртуальная машина с ОС 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! 15%

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

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

10000 руб.

02.09.2020    160072    881    399    

866

SALE! 15%

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    8046    60    28    

70

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

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

9360 руб.

17.05.2024    23612    68    45    

117

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10525    36    27    

62

SALE! 15%

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

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

22200 19980 руб.

06.10.2023    15494    35    7    

71

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    188163    1140    0    

912

SALE! 15%

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 12750 руб.

07.10.2021    17352    6    32    

42

Инструментарий разработчика Программист Платные (руб)

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

1800 руб.

21.02.2023    7751    8    35    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 24.03.19 18:33
(0) Интересный подход. Спасибо за информацию!
2. ellavs 1052 27.03.19 14:19 Сейчас в теме
(1) спасибо, буду рада, если кому-то пригодится :)
3. Oleg_N 24 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 имя_службы
Оставьте свое сообщение