Название говорит само за себя.
Можно ли создать отображение сетевого диска, видимое службе? Предположим, что служба работает под учетной записью домена, у которой есть разрешения на общий ресурс.
Сделайте это с помощью утилиты psexec:
Откройте командную строку cmd.exe с повышенными привилегиями (Запуск от имени администратора). Затем сделайте psexec -i -s cmd.exe
. Теперь вы "не авторитет \ система" :) Теперь все, что вам нужно сделать, это net use z: \servername\sharedfolder /persistent:yes
Имейте в виду, что если вам нужно удалить подключенный диск, вам придется сделать это таким же образом (вместо этого выполните net use z: /del
).
Сопоставления постоянных дисков восстанавливаются только во время интерактивного входа в систему, который служба не использует. Я считаю, что единственный способ заставить службу использовать сетевой диск - это чтобы эта служба отображала сам диск или, альтернативно, для него нам путь UNC вместо подключенного диска.
Почему нет? Моя работа делает это все время, хотя я подозреваю, что ваши учетные записи пользователей, вероятно, немного более строгие, чем наши, т.е. вы говорите об учетных записях, которые не входят в сеанс рабочего стола.
Но если ты делать разрешить учетной записи войти в систему как сеанс рабочего стола ...
Создайте учетную запись, как и любой другой пользователь, и предоставьте сценарий входа в систему, как и любой другой пользователь, но он специально предназначен для этой учетной записи. Настройте машину на автоматический вход при включении, который, в свою очередь, запустит скрипт, из которого отображаются диски. Просто.
Если вы застряли в ситуации, когда это невозможно, вам все равно понадобится сеанс рабочего стола для этого, поэтому создайте простую учетную запись службы, которая отделена от других, единственная задача которой - вход на сервер. и обеспечение доступа к приводу. В целях безопасности заблокируйте эту учетную запись только для доступа к диску. У других ваших учетных записей есть свои привилегии, и они не связаны таким образом. Лучшее из обоих миров.
Что касается некоторых комментариев ниже, это делается с точки зрения установки Windows XP или 2003. С тех пор все немного изменилось, большинство людей используют Win7 и 2008, обе имеют новые функции. В исходном вопросе не указывалось, какая среда использовалась, поэтому я могу ответить только на ту, с которой я знаком.
Кроме того, необходимость в GUI на самом деле является артефактом того, как Windows продавалась и продавалась. около 1990-х. Из-за этого Microsoft потребовалось много времени, почти десять лет, чтобы создать адекватные инструменты для поддержки автономных сред (например, PowerShell и 2008 без графического интерфейса пользователя). В то время обычным делом было просто купить другую машину, войти в нее, запустить службу и поставить ящик в угол. В результате такого мышления того времени неконтролируемый рост серверов нередко происходил в подсобных помещениях, и как побочный эффект, необходимость приобретения дополнительных лицензий и рабочих мест. С годами этот «метод органического роста», заключающийся в установке все большего и большего числа серверов, был сокращен, поскольку сказывались затраты на единицу продукции, потребности в электроэнергии, виртуализация и сокращение бюджета. Сегодня это просто поблекшее воспоминание, и вы действительно не можете найти людей, которые помнят «плохие старые времена».
Если есть лучшее решение для старых систем, таких как моя (XP / 2003), я хотел бы знать, это, безусловно, будет ценная информация.
P.S. прежде, чем вы начнете наваливать ненужные насмешки по поводу использования программного обеспечения 10-летней давности, имейте в виду (а) я не принимаю здесь все решения (б) я не подписываю чеки, чтобы раскошелиться на новые технологии (в) ERP приложение на моей работе может ненадежно работать в Windows 7 без использования расширения «эмуляция XP» (т.е. переименованного в Virtual PC), и, наконец, (d) моя работа очень затратна, поэтому выбросить все и получить «новое и блестящее» не имеет смысла все время.