У меня есть служба, которую мне нужно записать в общий сетевой ресурс на другом компьютере, используя локальную учетную запись на этом компьютере. Для этого мне либо нужно сопоставить сетевой диск, который может видеть служба (вход в систему как пользователь, под которым работает служба, и установка диска, похоже, не работает), либо мне нужно указать путь unc с именем пользователя и паролем как часть конфигурации моей службы.
Возможно ли что-то из этого?
приведенный выше ответ должен работать .... но более простым подходом было бы создать локальную учетную запись на обоих ящиках с тем же именем пользователя и паролем. Затем настройте службу для запуска под этим именем локальной учетной записи на ServerA и установите разрешения для общего доступа к сети ServerB, чтобы разрешить использование этого имени локальной учетной записи на ServerB. Поскольку у них одно и то же имя пользователя и пароль, он должен разрешить доступ к общему ресурсу.
Или еще лучше ... создать учетную запись домена и использовать ее для обеих сторон.
Вы можете указать имя пользователя / пароль с помощью чистое использование команда.
net use Z: \\Server\SharedFolder passwordGoesHere /USER:userAccountGoesHere /persistent:no
Под какой учетной записью работает служба? Это локальная система или какой-то другой аккаунт? Хотя лучший подход - использовать пользователя домена / того же пользователя и передать локального пользователя для достижения того, чего вы хотите, другой альтернативой является использование диспетчера учетных данных в Windows. Вы можете добавить учетные данные для удаленного компьютера во время работы в том же контексте, в котором будет запущена служба, и подсистема аутентификации будет получать их автоматически. Вы можете легко сделать это с помощью cmdkey.exe в командной строке для учетной записи службы.
Менее просто, но другой вариант любезно SO.