Служба Windows не может получить доступ к сетевой папке (UNC) - PullRequest
0 голосов
/ 25 августа 2018

У меня есть служба Windows, которая непрерывно опрашивает папку на предмет новых файлов. Для локальных каталогов это работает нормально. Но когда дело доходит до путей UNC в другой системе в той же сети, служба не может получить доступ к папке, которая кажется. У меня естьреферирован на этот пост https://serverfault.com/a/881272;в нем говорится, что мне нужно запустить службу как зарегистрированный в данный момент пользователь. Как я должен это делать?

Путь, который я хочу отслеживать с помощью службы,

\DESKTOP-PC\Users\me\myfolder

Пожалуйста,совет

ОБНОВЛЕНИЕ:

Я разработал службу, используя topshelf. Я хочу опросить папку на другом локальном компьютере в той же сети.Я захожу в сеть, дважды щелкаю по имени компьютера, он запрашивает учетные данные, я ввожу имя пользователя и пароль удаленного компьютера, я получаю доступ к файлам в системе для этого пользователя (в проводнике).

Теперь, когда я настроил службу для запуска в качестве пользователя локального компьютера на этом компьютере, он не может получить доступ к удаленному пути UNC, который доступен с помощью explorer.Я попытался установить его как пользователя удаленного компьютера, но это не удалось.

myService.exe install -username:DESKTOP-REMOTE\myname -password:mypassword

Ответы [ 4 ]

0 голосов
/ 08 сентября 2018

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

Посмотрите здесь (у ОП в этом посте та же проблема, и он / она предоставил общую папку «Все имеют полный доступ к управлению».

https://serverfault.com/questions/177139/windows-service-cant-access-network-share

0 голосов
/ 02 сентября 2018

Если вы попытаетесь запустить службу под учетной записью desktop-remote\myname, вы, вероятно, потерпите неудачу. Локальный компьютер любит только принадлежащие ему учетные записи.

Что бы я сделал, это перевернул его. Сделайте так, чтобы удаленный компьютер открыл папку для опроса вашей машины. Таким образом, удаленный компьютер может контролировать, какие данные он публикует, точно так же, как объект имеет свойства private или public. Если вы согласны с тем, чтобы кто-то, кто знает адрес \\desktop-remote\my-not-so-secret-folder\, мог его прочитать, установите его так, чтобы любой мог читать. Если вы более скрытны, добавьте к папке суффикс, например, так: \\desktop-remote\my-secret-folder$. Теперь он не видимый, но все же достижимый.
Вы также можете создать специальную учетную запись, которая имеет доступ к указанной папке.

Затем вы разрешаете службе запускать любую учетную запись (с доступом к сети) по вашему выбору на локальном компьютере. Пусть попробует подключиться к удаленной папке со специальной учетной записью.

(Трудно было понять, что чтение общей папки немного различается на машинах без домена и на машинах в домене; кто-то может читать не работает. По крайней мере, в WindowsXP так было. с тех пор нет необходимости совместно использовать папку.)

НТН

0 голосов
/ 07 сентября 2018

Когда вы устанавливаете службу для запуска в качестве учетной записи локальной системы, она не может получить доступ к удаленному UNC-пути, который доступен через проводник с учетной записью локального компьютера.

Просто потому, что проводник управляет учетными данными пользователя, вошедшими в систему, поэтому, вы добавили учетные данные UNC-пути только для пользователя LOGGED.

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

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

Все, что вам нужно сделать, - это настроить службу Windows с этой новой зарегистрированной учетной записью.

Security

0 голосов
/ 25 августа 2018
  1. Откройте Панель управления> Администрирование> Окно Сервисы на ваш сервер Windows.
  2. Остановите службу Windows.
  3. Откройте диалоговое окно «Свойства»> «Вход в систему».
  4. Измените учетную запись пользователя службы на целевую учетную запись пользователя.
  5. Запустите свой сервис.

enter image description here

Если вы разрабатываете службу в Visual Studio и хотите эмулировать другую учетную запись, вы также можете нажать shift + щелчок правой кнопкой мыши на devenv.exe и нажать «запускать как другой пользователь».

Также убедитесь, что вы указали полный путь к папке и что используемая учетная запись имеет полные права на папку.

...