Форум: "WinAPI";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
Внизсеть не видно в сервисе Найти похожие ветки
← →
tim (2003-10-15 12:06) [0]Добрый день, Уважаемые.
Намедни столкнулся с такой проблемой: есть сервис, которые архивирует данные. Необходимо, чтобы после этого архив был скопирован на сетевую папку. НО! похоже, что сервисы принципиально ничего не хотят знать о сети. команды для перемещения или копирования файлов не срабатывают, ни стандартные из дельфи, ни WinApi. Пробовал также запустить
GetDriveType(Drive), где Drive - сетевая папка, возвращает ошибку "The root directory does not exist". хотя из простой программы все ок(DRIVE_REMOTE). Решил обмануть: написал внешнюю программу, которая просто перемещает файл. Имена файлов передаю через реестр(хотя это не имеет значения). Если запускать отдельно - все ок, если из процесса - ошибка. Кто нибудь с этим сталкивался? Как победить?
← →
CMeX (2003-10-15 12:10) [1]Если стоит фаервол, то забудь.
← →
tim (2003-10-15 12:13) [2]его нет, да и причем он?
← →
CMeX (2003-10-15 12:44) [3]А при том, что он отшивает любую сетевую активность если нет разрешения, а копирование по сети происходит насколько я помню на пакетном уровне.
← →
Reindeer Moss Eater (2003-10-15 12:55) [4]НО! похоже, что сервисы принципиально ничего не хотят знать о сети.
Local System Account ничего не знает о сети, а не сервис.
← →
tim (2003-10-15 12:58) [5]не, я запускал даже под аккаунтом админа сети, не помогает.
← →
Reindeer Moss Eater (2003-10-15 13:00) [6]GetDriveType(Drive), где Drive - сетевая папка, возвращает ошибку "The root directory does not exist".
На диски, замаппенные интерактивным пользователем сервису глубоко наплевать. Он их не видит. Он сам должен их маппить
← →
tim (2003-10-15 14:41) [7]как я понимаю, это существенно если вход в систему не произошел,
а если сервис работает под моим аккаунтом, когда я вошел в систему, он должен видеть замаппеные диски?
← →
Reindeer Moss Eater (2003-10-15 14:45) [8]Не должен. Не обязан. И не видит.
← →
tim (2003-10-15 15:20) [9]каким же образом это проделать?
ведь это возможно! не может такого быть, чтобы нельзя было это сделать.
для примера:я делал bat-файл и запускал его шедуллером - все отлично работает.
← →
Reindeer Moss Eater (2003-10-15 15:32) [10]каким же образом это проделать?
Что?
ведь это возможно!
Что?
Ты вообще [6] до конца прочитал?
← →
Cobalt (2003-10-19 14:52) [11]2 Reindeer Moss Eater
Даже если сервис запущен под учётной записью админа, он, получается, работает в отдельной сессии, так?
И после локального входа Админа, всё равно у них разные сессии?
← →
igornov (2003-11-13 17:29) [12]можно я это делаю так:
var
MyResource : TNetResource;
e3,e2_t,e3_t : string;
begin
with MyResource do
begin
dwScope := RESOURCE_GLOBALNET;
dwType := RESOURCETYPE_DISK;
dwDisplayType := RESOURCEDISPLAYTYPE_GENERIC;
dwUsage := RESOURCEUSAGE_CONNECTABLE;
lpLocalName := ""; //тут можно замапить на диск а можно и не мапить
lpRemoteName := "\\197.168.100.15\galtrigger$";
lpProvider := nil;
end;
try
WNetAddConnection2( MyResource,
PChar("always"),//password
PChar("SOFTLAB\triguser"),
0);
trini:=tinifile.create("\\197.168.100.15\galtrigger$\trigger.ini");
e3:=trini.ReadString("SQLdriver","SQLname","");
e2_t:=trini.ReadString("SQLdriver","SQLtestserver","");
e3_t:=trini.ReadString("SQLdriver","SQLtestname","");
finally
WNetCancelConnection2 ("\\197.168.100.15\galtrigger$",0,false);
trini.free;
end;
end;
и при этом сервис работает под учётной системной записью или любой другой.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c