Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

Работа с сетью из-под сервиса   Найти похожие ветки 

 
Sour Smile   (2005-04-29 14:30) [0]

Мой сервис запускается под правами LocalSystem (всё правильно, так и должно быть), но вот наткнулся на проблему: не получается работать с из-под этого сервиса с сетью; прочитать список открытых ресурсов, покопировать файлы и т.п. (что интересно, список доменов и компьютеров в этих доменах функция NetServerEnum возвращает без вопросов, а вот список открытых ресурсов NetShareEnum уже отвечает "Отказано в доступе")...
Может есть какой нибудь способ обойти эту проблему?


 
BiN ©   (2005-04-29 14:40) [1]

Administrator, Power User, Print Operator, or Server Operator group membership is required to successfully execute the NetShareEnum function at levels 2 and 502. No special group membership is required for level 0 or level 1 calls.


 
Набережных С. ©   (2005-04-29 14:54) [2]

A LocalSystem вообще никто в сети. В домене W2k можно дать права учетной записи компьютера, тогда LocalSystem будет представлена этой учеткой. Как и что - это к админам.


 
Sour Smile   (2005-04-29 16:08) [3]


> BiN ©   (29.04.05 14:40) [1]


> Набережных С. ©   (29.04.05 14:54) [2]

Это я всё прекрасно знаю и понимаю, но эти знания никак не помогают обойти эту проблему...

ps. гдето я видел пример как запустить процедуру под текущим пользователем, вот хоть убейте не помню где...
И даже при таком подходе тоже проблема полностью не решается - сервис может быть уже запущен, а в систему никто ещё не входил... Впрочем уже былобы легче...


 
Ученик   (2005-04-29 22:34) [4]

>Sour Smile   (29.04.05 14:30)  

Необходимо подключить сетевой ресурс с допустимым пользователем


function ConnectNetResource(const ResourceName : string;
                           const UserName, Password : string;
                           Delay : DWORD) : Integer;
var
 NetResource : TNetResource;
 StartTick : DWORD;
 lpUserName, lpPassword : PChar;
begin
 FillChar(NetResource, SizeOf(NetResource), 0);
 NetResource.dwType := RESOURCETYPE_DISK;
 NetResource.lpRemoteName := PChar(ResourceName);
 if UserName = "" then
   lpUserName := NIL
 else
   lpUserName := PChar(UserName);
 if Password = "" then
   lpPassword := NIL
 else
   lpPassword := PChar(Password);
 StartTick := GetTickCount;
 repeat
   Result := WNetAddConnection2(NetResource, lpPassword, lpUserName, 0);
   if (Result = 0) or ((GetTickCount - StartTick) > Delay) then
     Break
   else
     Sleep(10000);
 until False
end;



 
Slym ©   (2005-05-03 12:34) [5]

Делай 2 сервиса.
1. Логика от LocalSystem.
2. Коммуникации от пользователя домена.
Сервисы общаются при помощи:
1. SendMessage
2. MMF+ Mutex (в Samples есть)
3. NamedPipe



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.066 c
10-1094808266
Шнур
2004-09-10 13:24
2005.06.29
WordOLE


14-1117610965
Skier
2005-06-01 11:29
2005.06.29
Построение буферной зоны.


1-1118142981
dimod
2005-06-07 15:16
2005.06.29
ANSI терминал


1-1117894004
Motion
2005-06-04 18:06
2005.06.29
Объявление предела массива


11-1101475886
Alex-
2004-11-26 16:31
2005.06.29
ADO + KOL