Доступ запрещен при выполнении пакетного задания на компьютере под управлением Windows Server 2003

В этой статье описано решение ошибки (доступ запрещен), которая возникает при выполнении пакетного задания на компьютере под управлением Microsoft Windows Server 2003.

Применяется к: Windows Server 2003
Исходный номер базы знаний: 867466

Симптомы

При выполнении пакетного задания, выполняемого в контексте обычной учетной записи пользователя, скрипт может не выполняться. Если пакетное задание выполняется с помощью функции запланированных задач, в файле журнала запланированных задач (Schedlgu.txt) может быть зарегистрировано следующее сообщение об ошибке:

0x80070005: доступ запрещен.

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

Доступ запрещен (ошибка 5)

Причина

Эта проблема возникает, если выполняются все следующие условия:

  • Пакетное задание выполняется на рядовом сервере под управлением Windows Server 2003.
  • Пакетное задание выполняется как неинтерактивный процесс.
  • Пакетное задание настроено для выполнения в контексте учетной записи, которая не является членом группы администраторов.

В Windows Server 2003 группа Пользователи не имеет разрешений на чтение и выполнение для обработчика команд (Cmd.exe). По умолчанию программа Cmd.exe имеет следующие параметры разрешений:

  • Интерактивная неявная группа и неявная группа службы имеют разрешения на чтение и выполнение.

    Примечание.

    На рядовом сервере группа TelnetClients также имеет разрешения на чтение и выполнение. На контроллере домена неявная группа пакетной службы также имеет разрешения на чтение и выполнение.

  • Неявная группа "Администраторы" и "Система" имеют разрешения на полный доступ.

Чтобы устранить эту проблему, используйте один из следующих методов.

Решение 1. Предоставление разрешений на чтение и выполнение Cmd.exe

Предоставьте программе Cmd.exe разрешения на чтение и выполнение для учетной записи пользователя, под которой выполняется пакетное задание. Для этого выполните следующие действия:

  1. Нажмите кнопку Пуск, а затем — Windows Обозреватель.

  2. Найдите и щелкните файл Cmd.exe правой кнопкой мыши. Файл Cmd.exe находится в папке %windir%\System32.

  3. Выберите команду Свойства.

  4. Щелкните вкладку Безопасность.

  5. Нажмите кнопку Добавить.

  6. В поле Введите имена объектов для выбора введите имя пользователя, под которым выполняется пакетное задание, и нажмите кнопку ОК два раза.

    Примечание.

    При добавлении пользователя ему автоматически предоставляются разрешения на чтение и выполнение.

  7. Нажмите кнопку Да , когда появится запрос на продолжение.

Решение 2. Предоставление разрешений на чтение и выполнение для Cmd.exe файла группе пакетной службы

Предоставьте разрешения на чтение и выполнение для файла Cmd.exe группе пакетной службы. Это позволяет всем пакетным процессам запускать обработчик команд. Для этого выполните следующие действия:

  1. Нажмите кнопку Пуск, а затем — Windows Обозреватель.
  2. Найдите и щелкните файл Cmd.exe правой кнопкой мыши. Файл Cmd.exe находится в папке %windir%\System32.
  3. Выберите команду Свойства.
  4. Щелкните вкладку Безопасность.
  5. Нажмите кнопку Добавить.
  6. В поле Введите имена объектов для выбора введите Пакетная служба и нажмите кнопку ОК два раза.
  7. Нажмите кнопку Да , когда появится запрос на продолжение.

Дополнительная информация

Поведение, описанное в этой статье, отличается от поведения microsoft Windows 2000 Server по умолчанию. По умолчанию Windows 2000 Server предоставляет разрешения на чтение и выполнение для группы Пользователи.

Дополнительные сведения о неявных группах см. на следующих веб-сайтах Майкрософт: