
Windows 10 Профессиональная
Версия 1709 ОС
Сборка 16299.666
У меня есть служба, которая хочет получить доступ к сетевому диску U:/public/blah.txt
. Запуск ее от имени обычного пользователя с командной строкой работает, запуск ее в качестве службы — нет.
Если перейти services.msc -> servicename -> properties -> Log On -> This account
и использовать MYDOMAIN/MYUSER
правильный пароль и перезапустить, это все равно не работает, и выдает то же самое сообщение об ошибке. Это учетная запись, которая может успешно запустить программу из командной строки.
Это исполняемый файл golang, работающий внутринссмслужба и фактическое сообщение об ошибке Error opening file U:\public\blah.txt: The system cannot find the path specified
.
Эта программа работала как служба на другом компьютере, она даже обращается к тому же диску. Единственное отличие, которое я вижу, заключается в том, что учетная запись, которую я сейчас использую, является учетной записью домена, тогда как раньше это была учетная запись локального пользователя.
Почему мой сервис не видит сопоставления дисков, если он успешно вошел в систему как пользователь, у которого они есть?
решение1
Вместо того чтобы предоставлять службе доступ к данным через подключенный диск, используйте имя пути UNC.
Существует множество способов, с помощью которых можно сопоставить диск при загрузке профиля пользователя. Не все из них срабатывают при загрузкеуслугавходит в систему, используя определенную учетную запись. По этой причине пути UNC более надежны, чем сопоставленные диски.