Перевели сервер 1С в новый домен. (Не знаю, связано ли это, но админы говорят, что остальные условия прежние).
Перестало работать фоновое задание.
КаталогНаДиске = Новый Файл("\\ServerName\");
Возвращает КаталогНаДиске.Существует()=ложь.
В логах такое:
Event Type: Failure Audit
Event Source: Security
Event Category: Logon/Logoff
Event ID: 529
Date: 04.04.2012
Time: 9:15:05
User: NT AUTHORITY\SYSTEM
Computer: CARDSERVER
Description:
Logon Failure:
Reason: Unknown user name or bad password
User Name: techman
Domain: KZW1C01
Logon Type: 3
Logon Process: NtLmSsp
Authentication Package: NTLM
Workstation Name: KZW1C01
Caller User Name: -
Caller Domain: -
Caller Logon ID: -
Caller Process ID: -
Transited Services: -
Source Network Address: ххх.хх.х.ххх
Source Port: 0
1. Запуск сервера 1С проходит локальной учеткой или с доменной???
Если учетка локальная то и доступа в сеть нет.
Для нормальной работы нужна доменная учетка с доступом к этой сетевой папке
2. Проверьте доступ у пользователей до папки.
(4) На серевре вин Server 2008, внешняя обработка от меня отрабатывает на ура, на сервер у меня доступа нет, а у кого есть - тот в отпуске до понедельника :)
Тут путём тыка выяснилось, что фоновое задание вообще во вне никуда не может достучаться, даже на папки с общим доступом, на своих локальных дисках и читает и записывает...
(5) catena, тогда не понятно. Если с внешней обработки доступ есть а фоновое задание не может получить этот доступ.
Я у себя делал так: создавал на сервере админ-пользователя(доменного) под ним должна запускаться 1С(сервер запускается с этой учеткой)
Далее на сервере с ресурсом к папке дается доступ этому Админ пользователю.
у меня заработало только так.
В общем суть проблемы определена: пользователь-таки локальный, а не доменный, но доменного давать пока отказываются. Пробую обойтись так:
Network = Новый COMОбъект("WScript.Network");
FileSys = Новый COMОбъект("Scripting.FileSystemObject");
Если FileSys.DriveExists("Z") Тогда
Network.RemoveNetworkDrive("Z:");
КонецЕсли;
Network.MapNetworkDrive("Z:", КаталогНаДиске.ПолноеИмя, False);
Теперь проблема такая: диск подключает, файл записывает, всё ок.
Подключила ручками к Z другой ресурс (потестировать).
Теперь FileSys.DriveExists("Z") возвращает ложь, но при етом MapNetworkDrive падает с ошибкой:
"Локальное имя устройства уже используется для подключения к другому сетевому ресурсу." ВТФ???
(7) catena,
Не понимаю почему они не могут сделать под эту ситуацию отдельную учетку у которой будут права только на папку, с которой надо работать.
Как насчет net use z: /delete /yes перед тем как подключать ручками Z ?
Сама ситуация с сетевыми дискам не нова. Помогает банальная перезагрузка.
Этот текст в скрипт, в любое место вариантов "автозапусков" (хоть через реестр, хоть через вставку в параметры профиля пользователя, хоть и т.д.) и цепляйтесь к любой шаре в вашей сетке.
вы почти у цели были
это ваше:
Network.MapNetworkDrive("Z:", КаталогНаДиске.ПолноеИмя, False);
это моё:
WshNetwork.MapNetworkDrive "Z:", "\\xxx.xxx.xxx.xxx\sharedfolder", "false", "username", "password"
разница в параметрах, дописывайте в своём вызове юзера и пароль для доступа к шаре
С локальным юзером в службе можно сделать так: создать на сервере, где находится шара, юзера с таким же именем и дать ему права на эту самую шару. Личный опыт.