Планировщик задач Server 2008 и файл CMD
Планировщик заданий - у меня есть файл.cmd, который я пытаюсь выполнить через планировщик заданий. Я поставил задачу так, чтобы она указывала на файл cmd. Я хочу, чтобы задача выполнялась, даже если никто не вошел в систему. Я установил учетные данные, связанные с задачей, для локальной учетной записи службы. Когда я выполняю задачу, ничего не происходит. Результат последнего запуска показывает 0x1, это означает, что он не выполнялся должным образом. Когда я запускаю файл из командной строки, он работает просто отлично. Любая помощь там будет оценена. Я хотел бы опубликовать код, но он содержит конфиденциальную информацию, и мне не разрешают выпускать код снаружи. Спасибо
5 ответов
Создайте учетную запись пользователя, установите разрешения, чтобы задача могла выполняться от имени этого пользователя (например, права доступа к папке), запустите командную строку от имени этого пользователя (runas /user:domain\user cmd), а затем оттуда попробуйте выполнить задачу.
Когда это работает, настройте запланированное задание для запуска от имени этого пользователя.
Изменить: это не будет работать, пока вы не примете во внимание ответ Шейна Мэддена о разрешениях для c:\windows\system32\cmd.exe.
У меня была похожая проблема, потому что мой файл.cmd находился в C:\ (root). Переместившись в другое место, он отлично работал из планировщика заданий. В некоторых корпоративных средах существуют ограничения на уровне C:\ root.
Из вашего вопроса неясно, выполняется ли задача как "ЛОКАЛЬНАЯ СИСТЕМА" или локальный пользователь, который является служебной учетной записью.
Если,
- пользователь является локальной учетной записью службы, а не системной учетной записью, и
- пользователь не входит в группу администраторов,
тогда вам нужно будет внести изменения в настройки безопасности 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
), это сработало.