Довольно просто настроить задачу для запуска в качестве СИСТЕМЫ, но при установке ее на СЕТЕВОЙ СЕРВИС отображается сообщение об ошибке «Доступ запрещен».
Есть ли способ заставить это работать? (Проблема в том, что я не хочу создавать нового пользователя домена для этой задачи, и мне нужно получить доступ к удаленному общему ресурсу из этой задачи.)
Я задал тот же вопрос. К счастью, Райан Райс смог предоставить правильный ответ.
В Windows Server 2003 вы не может запустить запланированную задачу как NT AUTHORITY\NetworkService
(он же Учетная запись сетевой службы). Эта возможность была добавлена только в Task Scheduler 2.0, который существует только в Windows Vista / Windows Server 2008.
Бонусный чат
VADER$
). Вы можете использовать эту учетную запись для запуска запланированных задач, если вам нужен аутентифицированный доступ к сети.Вы не можете. Функциональность была представлена в Task Scheduler 2.0, что означает Vista / 2008 +.
Из документации для Schtasks.exe:
/ RU имя пользователя
Значение, указывающее пользовательский контекст, в котором выполняется задача. Для системной учетной записи допустимые значения: «», «NT AUTHORITY \ SYSTEM» или «SYSTEM». Для задач Task Scheduler 2.0 допустимыми значениями также являются NT AUTHORITY \ LOCALSERVICE и NT AUTHORITY \ NETWORKSERVICE.
http://msdn.microsoft.com/en-us/library/windows/desktop/bb736357(v=vs.85).aspx:
Я пробовал сделать это несколькими способами, но теперь не думаю, что это возможно. Я был бы рад исправить это, но я перепробовал все, что мог придумать, включая добавление NETWORK SERVICE
к Administrators
, настраивая всевозможные параметры локальной политики безопасности и т. д.
Когда я включаю аудит, я получаю следующее:
Event Type: Failure Audit
Event Source: Security
Event Category: Account Logon
Event ID: 680
Date: 02/03/2010
Time: 8:49:53 PM
User: NT AUTHORITY\SYSTEM
Computer: RESULTANT
Description:
Logon attempt by: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
Logon account: NETWORK SERVICE
Source Workstation: RESULTANT
Error Code: 0xC0000064
Event Type: Failure Audit
Event Source: Security
Event Category: Logon/Logoff
Event ID: 529
Date: 02/03/2010
Time: 8:49:53 PM
User: NT AUTHORITY\SYSTEM
Computer: RESULTANT
Description:
Logon Failure:
Reason: Unknown user name or bad password
User Name: NETWORK SERVICE
Domain: NT AUTHORITY
Logon Type: 4
Logon Process: Advapi
Authentication Package: Negotiate
Workstation Name: RESULTANT
0xC0000064
декодирует в NO_SUCH_USER
. Это немного глупо, учитывая, что я вошел только network service
- как он узнал, что сбойная учетная запись находится в NT AUTHORITY
?
Когда я ввожу неверное имя пользователя, я даже не вижу попытки аутентификации. Так ясно что-то соглашается, что NETWORK SERVICE
это реальный аккаунт.
Если я неверно ввожу пароль для известного имени пользователя (т.е. Administrator
), Я получил 0xC000006A
(STATUS_WRONG_PASSWORD
).
Попробуйте добавить Log on as a batch job
прямо к NETWORK SERVICE
. Я думаю, это глупая идея; вам нужно просто перекусить и создать учетную запись домена ...
Попробуйте добавить право «Вход в качестве службы» в учетную запись сетевой службы. Подробные инструкции Вот.
Просто хочу оживить эту ветку как она ЯВЛЯЕТСЯ можно использовать СЕТЕВОЙ СЕРВИС для задач! По крайней мере, на Server 2016 и 2019!
Просто небольшая странность после выбора аккаунта обычным способом. Под
Run whether user is logged on or not
Вам необходимо выбрать:
Do not store the password. The task will only have access to local computer resources
Вторую часть нужно брать с лопатой, полной соли! Это означает, что у вас нет полномочия, но если вы запускаете что-то, для чего не требуется учетная запись для учетных данных, она ДЕЙСТВИТЕЛЬНО имеет доступ к сети!
При экспорте задания основная часть выглядит так
<Principals>
<Principal id="Author">
<UserId>S-1-5-20</UserId>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
Я использую его для отправки статусных писем через smtp, и он прекрасно связывается с smtp-сервером
Сетевая служба - это локальная (компьютерная) учетная запись. Следовательно, он никогда не будет иметь прав на другом компьютере (на котором находится общий ресурс).
Если вам нужен доступ к общему сетевому ресурсу, вам необходимо использовать известную в сети учетную запись, поэтому используйте учетную запись домена. И служба, которую вы хотите запустить, ДОЛЖНА поддерживать адресацию UNC. Если ему нужен доступ по букве сетевого диска, вам понадобится сеанс пользователя с подключенными дисками, иначе это также не удастся.
(Полагаю, вы это уже знаете, глядя на дату своего сообщения. Мой ответ - просто дополнение для людей, которые найдут этот пост с похожей проблемой)
Kees