Как настроить доступ 1С к сетевым папкам от имени другой учетной записи?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В практике администрирования 1С часто возникает дилемма: служба агента сервера запущена от имени локального пользователя (например, localadmin), а для работы с файлами по сети (выгрузки, хранилище документов, обмен данными) требуются права доменного пользователя. Традиционно это решается либо запуском всей службы от имени доменной учетки, либо дублированием локальных пользователей на всех серверах. Однако существует «третий путь», который позволяет использовать техническую доменную учетную запись для сетевых ресурсов, не меняя владельца основного процесса 1С. Разберем подробно, как это реализовано и какие подводные камни могут возникнуть.

Механизм 1: Использование диспетчера учетных данных Windows (Credential Manager)

Проанализируем ситуацию, когда система «магическим образом» подставляет нужные учетные данные при обращении к сетевой шаре. В Windows существует специальное хранилище — Диспетчер учетных данных (Credential Manager). Это наиболее вероятный способ скрыть авторизацию от глаз программиста и не прописывать пароли в коде.

Когда процесс rphost.exe, работающий под localadmin, пытается достучаться до пути \\fileserver\share, операционная система сначала проверяет наличие сохраненных паролей для этого конкретного адреса в профиле текущего пользователя.

Рассмотрим по шагам, как настроить такой доступ:

  1. Необходимо выполнить вход на сервер 1С под той самой учетной записью, от которой запущен агент сервера (в нашем примере — localadmin).
  2. Откроем «Панель управления» — «Учетные записи пользователей» — «Диспетчер учетных данных».
  3. Выберем раздел «Учетные данные Windows».
  4. Нажмем «Добавить учетные данные Windows».
  5. В поле «Адрес интернета или сети» укажем имя целевого сервера (например, fileserver).
  6. В полях пользователя и пароля введем данные технической учетной записи (например, abc\1cadmin).

После этого любое обращение из 1С к этому серверу по протоколу SMB будет автоматически использовать сохраненный токен abc\1cadmin. В коде 1С при этом используется обычный метод КопироватьФайл или НайтиФайлы, и никаких дополнительных параметров передавать не нужно.

Механизм 2: Использование компоненты COM+ и удостоверения Identity

Посмотрим на ситуацию, упомянутую в обсуждении, где фигурирует v82.comcntr. В Windows серверные приложения могут быть обернуты в службу компонентов COM+. Это позволяет запускать конкретную библиотеку в отдельном процессе dllhost.exe с собственным контекстом безопасности.

Проанализируем алгоритм настройки через COM+:

  1. Откроем оснастку «Службы компонентов» (команда dcomcnfg).
  2. Перейдем в раздел «Компьютеры» — «Мой компьютер» — «Приложения COM+».
  3. Если там создано приложение для 1С (например, 1C8_COM_Connector), зайдем в его свойства.
  4. На вкладке «Удостоверение» (Identity) можно выбрать вариант «Указанный пользователь» и прописать доменную учетку abc\1cadmin.

В этом случае, когда в коде 1С выполняется инициализация объекта:


Connector = Новый COMОбъект("V83.COMConnector");
// Или для старых версий: 
// Connector = Новый COMОбъект("V82.COMConnector");

Система порождает процесс dllhost.exe, который физически работает от имени abc\1cadmin. Если дальнейшая работа с файлами идет через методы этого объекта, то и доступ к сети будет осуществляться от имени технической учетки, независимо от того, кто запустил основной rphost.exe.

Механизм 3: Неявная авторизация через net use без маппинга диска

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

Рассмотрим пример команды, которую можно выполнить в скрипте перед запуском службы или через КомандаСистемы (хотя последний вариант менее надежен):

net use \\fileserver\share /user:abc\1cadmin mypassword /persistent:yes

Важный момент: Если выполнить эту команду без указания буквы диска (как в примере выше), соединение установится, и Windows «запомнит», что для доступа к \\fileserver\share нужно использовать данные abc\1cadmin. При этом в списке дисков ничего не появится, что часто сбивает с толку администраторов.

Почему доступ сохраняется после блокировки учетной записи?

Посмотрим на странное поведение: учетка отключена, а 1С продолжает писать файлы до самого утра. Это объясняется спецификой работы протоколов Kerberos и SMB.

Разберем причины устойчивости доступа:

  1. SMB-сессии: После успешной авторизации между сервером 1С и файловым сервером открывается сессия. Пока процесс 1С (рабочий процесс rphost.exe) активен и поддерживает активность в этой сессии, файловый сервер может не перепроверять статус пользователя в Active Directory.
  2. Билеты Kerberos (TGT): Когда пользователь авторизуется, контроллер домена выдает билет (TGT), срок жизни которого по умолчанию составляет 10 часов. В течение этого времени сервер 1С использует этот билет для получения сервисных тикетов без обращения к паролю.
  3. Кэширование в 1С: Перезапуск рабочих процессов (обычно настроенный на ночное время в консоли администрирования 1С) принудительно завершает старые процессы и обрывает все установленные сетевые соединения. Именно поэтому «магия» заканчивается только утром.

Рекомендации по переключению на новую учетную запись

Если вам необходимо заменить старую техническую учетку abc\1cadmin на новую abc\newadmin, выполните следующие действия, чтобы изменения вступили в силу гарантированно:

  1. Проверьте COM+: Если используется COM-объект, обновите данные на вкладке «Удостоверение» и обязательно нажмите «Завершить» (Shutdown) на приложении в оснастке dcomcnfg, чтобы старый dllhost.exe закрылся.
  2. Очистите Credential Manager: Удалите старые записи для целевого сервера и добавьте новые.
  3. Сбросьте сетевые сессии: В командной строке от имени пользователя службы выполните net use * /delete /yes.
  4. Перезапустите службу 1С: Это самый надежный способ сбросить все кэшированные токены безопасности в оперативной памяти рабочих процессов.

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

← На главную