Сопоставленные диски не найдены службой Windows, несмотря на то, что вы вошли в систему как правильный аккаунт

273
Marvin Irwin

Windows 10 Pro

Версия 1709 ОС

Сборка 16299,666

У меня есть сервис, который хотел бы получить доступ к сетевому диску U:/public/blah.txt. Запуск его как обычного пользователя с командной строкой работает, запуск как службы - нет.

Если перейти services.msc -> servicename -> properties -> Log On -> This accountи использовать MYDOMAIN/MYUSERправильный пароль и перезапустить, он все равно не работает, и выдает то же сообщение об ошибке. Это учетная запись, которая может успешно запустить программу из командной строки.

Это golang исполняемый работает внутри NSSM службы и фактическое сообщение об ошибке Error opening file U:\public\blah.txt: The system cannot find the path specified.

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

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

0
Is the service mapping the drive before it attempts to access it? Alternately, can you access the file using a UNC path instead of a mapped drive? Twisty Impersonator 5 лет назад 0
How is the drive being mapped? If the drive isn’t set to persist then it won’t be available in a service running as that user. In addition, if the domain account is a local admin you may have the UAC issue described here: http://www.fmsinc.com/microsoftaccess/developer/mapped_drives_not_available.htm in any case trying to access a mapped drive from a service is horrible, terrible, no good programming. Access the data directly via it’s UNC path. Appleoddity 5 лет назад 0
The drive is already mapped by the user many reboots ago. The UNC path works on both, that was it. Post it as an answer and I'll accept. Marvin Irwin 5 лет назад 0

1 ответ на вопрос

0
Twisty Impersonator

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

Существует множество способов сопоставления диска при загрузке профиля пользователя. Не все из них запускаются, когда служба входит в систему с использованием определенной учетной записи. По этой причине пути UNC более надежны, чем сопоставленные диски.