Запуск пакетного файлу із планувальника завдань без входу користувача


10

Я намагаюся запустити пакетний файл в Windows 7 з Планувальник завдань. Я можу добре запустити пакетний файл, якщо запускати його з командного рядка.

Якщо я запускаю його з Планувальника завдань для запуску лише тоді, коли користувач увійшов у систему, завдання буде виконуватись без проблем. Однак, коли він запускається, коли користувач не входить у систему, Планувальник завдань виглядає так, що працює з файлом, але нічого не відбувається.

Я намагався змінити пакетний файл ні на що, окрім наступного рядка, щоб переконатися, що це не через те, що знаходиться в пакетному файлі:

echo "success" >> c:\temp\test.log

і це не працює. Будь-які ідеї? У мене він працює з найвищими привілеями та з обліковим записом адміністратора, який має повні дозволи на пакетний файл і папку, в яку файл записується.


Який обліковий запис ви використовуєте для виконання завдання? Які тригери ви встановили?
camilohe

Спробуйте запустити завдання як обліковий запис System Service.
SamAndrew81

Відповіді:


20

ЗАВДАННЯ ЗАВДАННЯ: СКЛАДОВАНИЙ СТРУКТУРУ НЕ ПРАВИЛО

Властивості планувальника завдань. . .

У Windows Task Schedulerна роботі Properties (див. Нижню частину знімків екрана) у програмі. . .

  • 1. General переконайтесь, що наведені нижче параметри вибрані / перевірені або невірно встановлені, як показано на екрані друку A

    • Зніміть прапорець Run only when user is logged on
    • Перевірити Run whether user is logged on or not
    • Перевірити Run with the highest privileges
  • 2. Conditions Вкладка, переконайтеся , що нижче опцій вибору , перевіряється , чи безконтрольно так само , як показано на Print Screen B

    • Перевірити Wake the computer to run this task
  • 3. Actions клацніть, натисніть Editі переконайтесь, що значення Start in (optional)встановлено так, як показано у наведеному нижче прикладі ( НЕ кладіть навколо нього подвійних лапок) для повного шляху, який вказує, де розміщений пакетний сценарій БЕЗ остаточної косої риски " \" Екран друку C


ВИСНОВКИ БЕЗПЕКИ

  • Після натискання OK( 2. вище) він повинен запропонувати вам, щоб обліковий запис запустив це як, і цей обліковий запис - це те, що потребуватиме доступу до EXECUTEпакетного файлу там, де він існує, і він також потребує доступу, щоб зробити все, що працює з пакетним файлом. що ви написали.

  • Можливо, найкраще налаштувати статичний обліковий запис послуги / проксі для цього процесу, а потім використовувати його облікові дані для запуску процесу. Вам потрібно буде впевнитись, що його пароль є надійним, і він не буде закінчуватися, і йому потрібен доступ до EXECUTEпартії та запускати все те, що запущений пакетний сценарій та будь-які команди та ресурси, ect. він також використовує.

  • Здається, варіант Run whether user is logged on or not, ЯКЩО ВАМ ПОВИНЕН перевірити варіант, Run with highest privilegesщоб він фактично запускався так, як очікувалося від планувальника завдань.

Помилка перевірки

  • Якщо виникає проблема з фактичним пакетним сценарієм, але планувальник завдань Windows насправді виконує його для запуску, але помилка логіки пакетного скрипта і т. Д. З будь-якої причини, Планувальник завдань може не бачити цього збою на цьому рівні. З точки зору (за замовчуванням більшу частину часу) він виконує пакетний файл, доки він може виконати його та мати доступ до цього, його робота виконується успішно.

  • Додайте перевірку помилок або реєстрацію помилок до логіки пакетного сценарію, щоб зафіксувати (або усунути неполадки ) проблеми на цьому рівні, включаючи забезпечення того, що контекст безпеки, яким планувальник пакетних пакетів виконує його, має відповідний доступ до команд, ресурсів тощо.


Міркування щодо групової політики

ПЕРЕВІРТЕ ГРУППУ ПОЛІТИКУ ТА ЛОГІЙ НА ДОГЛЯДІ РОБОТИ

Відповідь: У Windows ця привілей надається через локальну політику або політику безпеки домену . Для цього використовуючи локальну політику безпеки , виконайте ці кроки.

  1. На Панелі керування відкрийте адміністративні інструменти , а потім локальну політику безпеки .
  2. Під Налаштуваннями безпеки відкрийте локальну політику та виділіть Призначення прав користувача .
  3. Знайдіть Увійти як пакетне завдання . Відкрийте властивості та додайте будь-яких користувачів, які потребують цього права.
  4. Закінчивши, збережіть зміни та закрийте вікно налаштувань локальної безпеки .

Ваші зміни мають набути чинності негайно. Щоб внести зміни до політики безпеки домену, на контролері домену скористайтеся утилітою Політика безпеки домену на Панелі керування


Пакетна логіка сценаріїв із картами накопичувачів або повним шляхом UNC та проблемами. . .

Якщо ваш скрипт посилається на картографічний мережевий диск, але ви хочете, щоб це Run whether the user is logged on or not, то в цьому контексті відображення накопичувача може насправді не існувати для пакетного процесу, щоб зробити те, що очікується.

Якщо можливо, використовуйте UNCшляхи в логіці пакетного сценарію, а не накресленому букві диска, щоб уникнути проблем. В іншому випадку, можливо, вам доведеться використовувати PUSHD \\ServerName\ShareNameна початку пакетного процесу, а потім використовувати POPDв кінці пакетного процесу. Ви можете зіставити диск з NET USE X: \\ServerName\ShareNameпочатком пакетного процесу, а потім від'єднати диск з NET USE X: /DELETEв кінці пакетного процесу.


ДРУГІ

  • MS HOTFIX (KB977353): пункт "Негайне завдання" для групової політики не працює на клієнтському комп'ютері з ОС Windows 7 або Windows Server 2008 R2

  • Подивіться на Settingsвкладку запланованого завдання та параметр, вказаний як Stop the task if it runs longer than:. Якщо цей параметр перевіряється, а період часу менший за запущений сценарій, Планувальник завдань вбиває його рано, і, таким чином, ви не зможете отримати очікуваних результатів. Це щось інше, щоб перевірити при усуненні неполадок на всякий випадок.

    введіть тут опис зображення

  • На Triggersвкладці запланованого завдання при виборі Editпараметра не забудьте встановити Start:час і дату, які мають значення, які НЕ перейшли. Будьте впевнені, що дату і час встановлено значенням у майбутньому . В іншому випадку ви можете помітити, що завдання зазначає, що його планується запустити в наступний запланований час, як ви очікували; однак він не виконується Планувальником завдань, а також на вкладці Планувальник завдань не вказується History , що він коли-небудь виконується (тому що це не так). Просто відредагуйте тригер і оновіть його майбутнім датою та / або часом, щоб вирішити цю проблему, якщо у вас виникає проблема.

    введіть тут опис зображення


ДРУКОВІ ЕКРАНИ

Екран друку A

введіть тут опис зображення

Екран друку B

введіть тут опис зображення

Екран друку C

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.