Отказано в доступе к Планировщику заданий Windows Server 2012 R2 (0x80070005), но команда работает вручную в оболочке.

Вопрос или проблема

У меня следующая проблема. На нашем Windows Server 2012 R2 есть запланированная задача, которая вызывает пакетный файл, который, в свою очередь, вызывает VB скрипты.

Эти скрипты просто загружают 5 изображений и сохраняют их в папку под определенным именем. Если я вызываю бат-файл напрямую через командную строку, всё работает отлично, но с планировщиком я получаю следующую информацию.

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

Информация о событии: Идентификатор события: 201  Код результата 2147943645 успешно выполнено

Код результата, похоже, соответствует следующему сообщению об отказе в доступе.

Результат последнего выполнения: Отказано в доступе 0x80070005

Мои исследования приводят меня к необходимости попробовать некоторые изменения конфигурации.

  • Запустить задачу в планировщике с наивысшими привилегиями -> та же ошибка

  • Изменить безопасность для %windir%/system32/cmd.exe -> пользователь уже в
    группе администраторов

  • Удалить ” из start in -> там ничего нет, также добавление
    папки, где находится скрипт, ничего не меняет

Заранее благодарю за любые подсказки, вопросы, информацию по этой проблеме.

Я думаю, что следует проверить Контекст безопасности задачи вашей запланированной задачи.

Вы сохранили пароль пользователя в задаче?

Ошибка может быть вызвана отсутствием сетевого доступа.

Скорее всего, вам нужно предоставить системную привилегию “Вход в качестве пакетной задачи” учетной записи службы, которую вы используете для выполнения запланированной задачи.

(Вы же не запускаете запланированную задачу с вашими собственными личными учетными данными, верно?)

Из описания TechNet:

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

По умолчанию только учетная запись LocalSystem имеет привилегию входа в систему как пакетная задача.

Это можно настроить в доменной GPO или локальной GPO, в следующем расположении:

Конфигурация компьютера\Параметры Windows\Параметры безопасности\Локальные политики\Назначение прав пользователя

Чтобы подтвердить источник отказа “Отказано в доступе”, вам следует проверить журнал безопасности Windows в Просмотрщике событий. Отфильтруйте журнал, чтобы показывать только неудачные аудиты, а затем найдите последнее время, когда вы попытались запустить вашу запланированную задачу.

Ответ или решение

Ошибка 0x80070005, также известная как "доступ запрещен", при выполнении задачи в Планировщике задач Windows Server 2012 R2 может возникать по нескольким причинам, связанным с правами доступа и разрешениями. Давайте разберем данную проблему более детально, используя подход TEA (Теория, Пример, Применение).

Теория

Ошибка этого типа часто связана с недостатком разрешений у учетной записи, под которой выполняется задача. В Windows, выполнение задач в планировщике отличается от запуска скриптов вручную в командной строке. При запуске задачи в Планировщике она выполняется в контексте пользователя, указанного в конфигурации задачи, и этот пользователь должен обладать определенными привилегиями, такими как "Log on as a batch job", которые позволяют запускать задания на сервере. Кроме того, вы должны учитывать учетные данные, используемые для доступа к ресурсам, необходимым вашему скрипту для выполнения, таким как сетевые ресурсы.

Пример

Допустим, у нас есть сценарий, в котором задача должна скачивать изображения и сохранять их на диске. Когда вы выполняете ваш .bat файл вручную, он используется вашими текущими учетными данными, которые могут иметь необходимые права и доступ к ресурсам. Однако при запуске из Планировщика задач может использоваться другая учетная запись, у которой нет этих прав.

Применение

Чтобы решить проблему, следуйте этим шагам:

  1. Проверьте контекст безопасности задачи:
    Убедитесь, что задача настроена на выполнение от имени пользователя, который имеет необходимые права и доступ к ресурсам. Проверьте пункт "Выполнять с наивысшими правами" в настройках задачи. Убедитесь, что в задаче указаны правильные учетные данные, и пароль к учетной записи сохранен.

  2. Настройте привилегии "Log on as a batch job":
    Откройте "Локальную политику безопасности" или "Политику домена" и перейдите в "Конфигурация компьютера -> Параметры Windows -> Параметры безопасности -> Локальные политики -> Назначение прав пользователя". Добавьте здесь пользователя или группу, под которыми выполняется задача, в список "Log on as a batch job".

  3. Проверьте журналы Windows:
    В "Просмотре событий" Windows откройте журнал безопасности и отфильтруйте по "Сбой аудита". Это позволит увидеть, какая именно проблема с доступом возникла во время выполнения задачи. Это может помочь выявить недостающие разрешения или неправильные настройки.

  4. Тестируйте под тем же пользователем:
    Если возможно, выполните .bat скрипт вручную, войдя под тем же пользователем и в том же контексте, что используется в Планировщике задач. Это поможет подтвердить, что проблема в правах, а не в самом скрипте.

Следуя данным рекомендациям, вам удастся устранить ошибку 0x80070005, обеспечив правильное выполнение вашей задачи в Планировщике задач на Windows Server 2012 R2.

Оцените материал
Добавить комментарий

Капча загружается...