Конференция "Сети" » Подключение сетевого диска из службы (сервиса) [D6, WinXP]
 
  • astorm (02.04.12 14:17) [0]
    Дано: несколько машин, обменивающихся данными с некоторым интервалом. Обмен реализован с помощью VPN и сетевых дисков. Подключение сетевых дисков было реализовано с помощью простенького bat-файла.
    Но с некоторых пор возникла потребность - устранить человеческий фактор - у людей появилась дурацкая привычка закрывать это бедное черное окошечко, которое само по себе отлично исчезало через 5сек. после появления.

    Решение: написание службы, которая бы при старте подключала диски, и в дальнейшем мониторила их состояние, при необходимости переподключая их.

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

    1. Когда просто тренировался с функциями WNetAdd\Cancel\Get\Connection в режиме простого приложения - все работало изумительно. Диски подключались, название их отображалось в проводнике корректно, ручками все отключалось.
    2. Когда перенес их в службу (написанную без VCL) - подключает диски, но вместо названия диска в виде "Папка такая-то на машине такой-то "отображает "Отключенное сетевое устройство". При попытке вручную в проводнике отключить сетевой диск - ругается "Не обнаружено сетевое подключение". При всем этом работает отлично - все пишется и читается. Понятно, что служба работает от имени системы (в функциях AddConnection не указывал логинов и паролей) и не даст просто так убить сетевой диск. Оставил как рабочий вариант.
    3. Когда написал службу на VCL (ServiceType=stWin32, StartType=stSystem) - то сетевые диски подключаться напрочь отказались с ошибкой ERROR_ACCESS_DENIED. Указываю логин и пароль - неважно, пользователя, админа - диск подключается, но с такими же вывертами, как в п.2.

    Вопрос/просьба - научите, пожалуйста, с правами раскидаться? Как правильно нужно запускать службу, и каким образом ей скармливать корректную информацию, от чьего имени должен быть смонтирован сетевой диск.
  • Сергей М. © (02.04.12 15:20) [1]

    > у людей появилась дурацкая привычка закрывать это бедное
    > черное окошечко


    Просто перенеси логику на платформу VBScript - не будет ни "черного окошечка" ни необходимости париться с сервисом
  • brother © (03.04.12 12:26) [2]
    > 1. Когда просто тренировался с функциями WNetAdd\Cancel\Get\Connection
    > в режиме простого приложения - все работало изумительно.
    > Диски подключались, название их отображалось в проводнике
    > корректно, ручками все отключалось.

    и зачем тогда служба? стартанул, подключил диски, закрылся...
 
Конференция "Сети" » Подключение сетевого диска из службы (сервиса) [D6, WinXP]
Есть новые Нет новых   [134435   +18][b:0][p:0]