Планировщик задач Server 2008 и файл CMD

Планировщик заданий - у меня есть файл.cmd, который я пытаюсь выполнить через планировщик заданий. Я поставил задачу так, чтобы она указывала на файл cmd. Я хочу, чтобы задача выполнялась, даже если никто не вошел в систему. Я установил учетные данные, связанные с задачей, для локальной учетной записи службы. Когда я выполняю задачу, ничего не происходит. Результат последнего запуска показывает 0x1, это означает, что он не выполнялся должным образом. Когда я запускаю файл из командной строки, он работает просто отлично. Любая помощь там будет оценена. Я хотел бы опубликовать код, но он содержит конфиденциальную информацию, и мне не разрешают выпускать код снаружи. Спасибо

5 ответов

Создайте учетную запись пользователя, установите разрешения, чтобы задача могла выполняться от имени этого пользователя (например, права доступа к папке), запустите командную строку от имени этого пользователя (runas /user:domain\user cmd), а затем оттуда попробуйте выполнить задачу.

Когда это работает, настройте запланированное задание для запуска от имени этого пользователя.

Изменить: это не будет работать, пока вы не примете во внимание ответ Шейна Мэддена о разрешениях для c:\windows\system32\cmd.exe.

У меня была похожая проблема, потому что мой файл.cmd находился в C:\ (root). Переместившись в другое место, он отлично работал из планировщика заданий. В некоторых корпоративных средах существуют ограничения на уровне C:\ root.

Из вашего вопроса неясно, выполняется ли задача как "ЛОКАЛЬНАЯ СИСТЕМА" или локальный пользователь, который является служебной учетной записью.

Если,

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

тогда вам нужно будет внести изменения в настройки безопасности cmd.exe - по умолчанию ACL NTFS разрешает его выполнение только администраторам и пользователям, вошедшим в систему в интерактивном режиме. ( ссылка)

Редактировать: Да, и это применимо только к Windows 2003. В этом ответе у меня есть три необоснованных предположения... дайте нам знать, какая ОС и уровень прав пользователя, и мы должны быть в состоянии сузить это.

Для XP, 2000 и Server 2003 посмотрите на эту статью MS "единственный способ запланировать задачу, поскольку Системная учетная запись - использовать AT.EXE, чтобы запланировать задачу"

http://support.microsoft.com/kb/223375

Для Vista и 2008 это может помочь https://stackoverflow.com/questions/77528/how-do-you-run-cmd-exe-under-the-local-system-account

Попробуйте pause в вашем сценарии. Затем вы сможете прочитать проблему.

В моем случае я получил access denied ошибка, так как скрипт начал работать в \windows\system32, Итак, после изменения в правильную папку (cd), это сработало.

Другие вопросы по тегам