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

Публикация № 1026905

Администрирование - Администрирование данных 1С - Сервисные утилиты

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

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

Дано: виртуальная машина с ОС 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 и содержимое этой статьи.

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

Наименование Файл Версия Размер
Пример файла Restart1CAgentOnCluster.bat плюс содержимое этой статьи

.zip 280,61Kb
23.03.19
0
.zip 280,61Kb Скачать бесплатно

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. YPermitin 9790 24.03.19 18:33 Сейчас в теме
(0) Интересный подход. Спасибо за информацию!
2. ellavs 768 27.03.19 14:19 Сейчас в теме
(1) спасибо, буду рада, если кому-то пригодится :)
Оставьте свое сообщение

См. также

Настройка KDiff3 для исключения номеров строк в отчетах о сравнении конфигураций

Сервисные утилиты Администрирование данных 1С v8 1cv8.cf Бесплатно (free)

Те, кто часто обновляют доработанные типовые конфигурации, а потом проверяют корректность обновления, сравнивая отчеты о сравнении конфигураций, знают, как мешают при этом строки вида "Объект присутствует только в первой|второй конфигурации: 99 - 99", "Изменено: 99 - 99".<br /> Но если вы, как и я, пользуетесь для этого утилитой KDiff3, то есть простой способ избавиться от таких строк.

21.09.2020    604    fillin    0    

Сервер администрирования кластера серверов 1C:Предприятия и deployka

Сервисные утилиты Администрирование данных 1С v8 Бесплатно (free)

В данной статье познакомимся с сервером администрирования кластера серверов 1С:Предприятия, а конкретно с утилитами rac.exe и ras.exe, а также программой deployka, с помощью которых становится возможным администрирование кластера серверов 1С:Предприятие из командной строки.

04.04.2018    64184    Tavalik    37    

Удаление "snccntx". Батник

Сервисные утилиты v8 1cv8.cf Бесплатно (free)

Дополнение к известному скрипту по рестарту "СлужбаАгентаСервера1С" (САС1С)

20.03.2015    18229    Tommy82    6    

Публикация конфигурации 1С на GitHub

Сервисные утилиты Практика программирования Администрирование данных 1С v8 1cv8.cf Бесплатно (free)

Статья показывает, как можно подготовить конфигурацию 1С к публикации в системах версионирования, отличных от хранилища конфигурации 1C. В операции задействован .Net framework и C#, позволяющий аккуратно распределить проект 1С по папкам. Пример публикации конфигурации на основе старых обновлений БСП четырехлетней давности (с 1.0.7.5 по 1.1.3.1) можно посмотреть по адресу https://github.com/elisy/ssl . Таким же образом теоретически можно публиковать конфигурации в другие системы версионирования.

23.02.2015    20572    Elisy    20    

Файловые базы *.1CD. Физическая структура. Восстановление.

Сервисные утилиты Администрирование данных 1С Тестирование и исправление v8 1cv8.cf Бесплатно (free)

Как устроены файловые базы? Что делать, если база упала? В статье приведены обзорные сведения об устройстве баз и возможностях восстановления. Приведено описание новых возможностей Tool_1CD.

06.06.2013    186753    awa    124    

Восстановление файловой версии базы данных *.1CD после ошибки динамического обновления.

Сервисные утилиты Архивирование (backup) Администрирование данных 1С Тестирование и исправление v8 1cv8.cf Бесплатно (free)

Восстановление работоспособности файл-серверной базы данных (файл *.1CD) после критической ошибки, возникшей в результате динамического обновления с последующим предупреждением "Внимание!!! При обновлении данных, после последней реструктуризации, произошла ошибка. Повторить обновление?".

02.10.2012    51333    djserega    77    

Пример использования 1С-Automation и скриптов AutoIT

Сервисные утилиты v8 1cv8.cf Россия Бесплатно (free)

В данной статье приводится пример использования скрипта AutoIT в качестве клиента для 1С-Automation сервера.

28.06.2012    18663    LexSeIch    2    

Ночная обработка

Сервисные утилиты v8 Бесплатно (free)

Ночной запуск обработки в 1С - 8

14.01.2010    12864    kitminsk    7    

К вопросу о зависающих фоновых заданиях в 8.1

Производительность и оптимизация (HighLoad) Сервисные утилиты Администрирование данных 1С v8 1cv8.cf Бесплатно (free)

Фоновые задания в клиент-серверном варианте иногда зависают так, что снять их можно только путем перезапуска службы. Насколько я понял, никто не знает, что с этим делать. И я не знаю. Но могу поделиться опытом, как научиться с этим жить :)

03.09.2009    25980    bulpi    27    

К вопросу о регламентном задании – восстановлении последовательности

Практика программирования Сервисные утилиты v8 1cv8.cf Бесплатно (free)

В связи с тем, что, когда передо мной стояла подобная задача, материала в интернете я нашел очень мало. Попытаюсь немного компенсировать этот пробел. Заранее предупреждаю – информация для начинающих разработчиков :)

22.06.2009    20503    Dimasik2007    9