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