Запуск процессов в профиле нужного пользователя из сервера 1С

11.07.15

Администрирование - Информационная безопасность

У меня возникла необходимость запустить приложение (на самом деле bat-ничек) из сервера 1С, но так, чтобы сам bat-ник выполнился с привилегиями и из под профиля другого пользователя (например, администратора). Сам сервер 1С запущен из под стандартной учетной записи USR1CV82, а она не имеет прав почти ни на что. И это хорошо. Решений для этой задачи масса. Боян еще тот, но... Сколько смотрел. Везде нужно оставить зачастую в открытом виде пароль от той учетной записи, под которой нужно выполнить запуски. Или необходимо скачать/установить какое-либо средство администрирования. Я же нашел решение, использующее только стандартные средства Windows.

Файлы

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

Наименование Скачано Купить файл
Обработка
.epf 5,82Kb
2 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Итак. Windows Server 2008R2 (Должно работать на всем начиная с Windows7, хотя, может, и под XP сработает, не проверял). В моем случае есть web-сервис. У него есть метод InserCustomer(sXML). Все это неважно. Важно, в каком контексте этот метод вызывается. А вызывается он в контексте пользователя USR1CV82. Т.е. очень ограниченные права. Запустить что-либо из под нее не всегда получается. В моем случае нужно было именно запустить приложение, которое не может выполняться под такой урезанной учетной записью.

На выручку приходит Планировщик задач. Создаем там задачу. Все просто. Расписание можно не указывать (а если нужно - можно и указать). Важно указать учетную запись, под которой задача должна запускаться, и ввести пароль от этой учетной записи. Все. Более пароль от этой учетки нам нигде оставлять не нужно (и уж тем более в открытом виде).

Далее нам нужно дать права на эту задачу пользователю USR1CV82 (в моем случае, а в вашем, может, и другой, из которого вам нужно давать команду на запуск). Для этого открываем папку C:\Windows\system32\Task. Надеюсь, все, у кого Windows установлен в другой директории, смогут найти эту папку самомстоятельно. В этой папке все задачи Планировщика лежат в виде файлов. Находим нашу (по названию) и ПКМ-Свойства-Безопастность. Ну и добавляем чтение/выполнение для пользователя USR1CV82. Да, кстати, если эту задачу нужно будет запускать и из-под других пользователей, то также можно добавить и их. На этом с безопастностью все.

 

Теперь как запустить эту задачу из web-сервиса 1С (в моем случае) или из любого серверного метода (или вообще от куда угодно). Для этого выполняем такой короткий код:

WshShell=Новый COMОбъект("Wscript.Shell");
WshShell.Run("schtasks /Run /TN НазваниеЗадачиВПланировщике");

Как видите, все очень просто. Удобно, что не требуется никаких внешних средств для администрирования такой простой задачи.

Всем спасибо за внимание. Надеюсь, кому-то помог.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

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

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

24900 руб.

20.08.2024    75108    379    170    

325

Разработка Инструменты администратора БД Администрирование веб-серверов Администрирование Программист 1C:ERP Платные (руб)

Это специализированное решение для глубокого анализа и мониторинга серверов и баз данных 1С. Продукт позволяет выявлять причины замедлений, блокировок и ошибок, объединяя данные технологического журнала, СУБД и оборудования в единой интерактивной системе.

90000 руб.

13.05.2026    1299    2    0    

4

Информационная безопасность Поиск данных ServiceDesk, HelpDesk Журналы и реестры данных 1С 8.3 Россия Бухгалтерский учет Бюджетный учет Налоговый учет Управленческий учет Платные (руб)

Полный контроль над изменениями в 1С без нагрузки на вашу базу. Мгновенный доступ к истории изменений, удобное сравнение и откат данных в один клик. Простой отчет с визуальным отображением изменений Откат на любую версию объекта в два клика История изменения данных хранится во внешней базе

180000 руб.

05.09.2025    5104    2    1    

3

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

17000 руб.

10.11.2023    26429    98    46    

104

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14640 руб.

29.04.2020    51306    141    162    

96

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Программист Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.

6000 руб.

15.04.2026    2625    6    0    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. demkonst 2 12.07.15 06:33 Сейчас в теме
А как хранится список задач планировщика? Держу пари, в виде какого-нибудь конфига, завернутого в хеш, или тот же стандартный виндовый DPAPI. Я к тому, что там пароль тоже хранится наверняка в открытом виде (или условно-открытом).
3. gep 24 13.07.15 17:14 Сейчас в теме
(1) demkonst, Да, вы правы. Это просто файл. Но доступ на запись есть только у Владельца изначально (т.е. тот кто создал). Далее он и Администратор могут дать доступ на чтение и/или запись другим пользователям.
По поводу его содержимого. Вот что содержит файл задачи которую я создал при написании статьи:
c:\Windows\System32\Tasks>type НазваниеЗадачиВПланировщике
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2015-07-11T20:35:43.1013854</Date>
    <Author>Тут_имя_сервера\Администратор</Author>
  </RegistrationInfo>
  <Triggers>
    <TimeTrigger>
      <StartBoundary>2015-07-11T20:32:25.2460687</StartBoundary>
      <Enabled>true</Enabled>
    </TimeTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <RunLevel>LeastPrivilege</RunLevel>
      <UserId>Тут_имя_сервера\Администратор</UserId>
      <LogonType>Password</LogonType>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>­
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries­>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>­
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>НашаПрограмма</Command>
    </Exec>
  </Actions>
</Task>
Показать

Как видите кроме слова PASSWORD ничего о паролях. (К слову, у меня пароль не PASSWORD). При попытке записи задачи система запрашивает пароль того пользователя, под которым она будет в дальнейшем исполнятся. Без ввода пароля указать пользователя нельзя. Запись в этот каталог пользователи не имею. Сложно представить ситуацию при которой возможен обход пароля. Не исключаю что путь есть, но не уровня продвинутого пользователя.
5. gep 24 13.07.15 17:43 Сейчас в теме
(1) demkonst, Кстати, а DPAPI вы считаете условно открытым?
2. Dimasik2007 430 12.07.15 11:56 Сейчас в теме
Советую еще посмотреть в сторону http://admilink.narod.ru/admilink.htm, тулза очень полезная.
AdmiLink - утилита, при помощи которой Администратор может создать ярлык, дающий возможность пользователям с ограниченными правами запускать конкретную (без возможности подмены!) программу с правами Администратора (или любого другого пользователя) без (интерактивного) ввода пароля.
4. gep 24 13.07.15 17:29 Сейчас в теме
(2) Dimasik2007, Спасибо. Действительно интересная программа. Да и сайт содержит интересную информацию. Но... Я прямо говорю о том, что мой подход хорошо тем, что не требует установки каких-либо сторонних приложение на ваш сервер (ну или просто компьютер). На мой взгляд это бывает важно. Несомненно, возможности предоставляемые программой AdmiLink очень широки, особенно начиная с версии 1.5. И это здорово.
Для отправки сообщения требуется регистрация/авторизация