Ако имате .BAT файл и се опитвате да го накарате да се изпълнява автоматично с помощта на Task Scheduler в Windows, може да сте се сблъскали с проблема, когато той просто не работи, освен ако ръчно не стартирате задачата.
Създадох партиден файл, който изтрива всичко вътре в папка temp, когато компютърът се стартира. Създадох основна задача в Task Scheduler и се надявах на най-доброто. За съжаление, нищо не се случи, когато компютърът ми се зареди. След много проби и грешки разбрах как да стартирам скрипта.
В тази статия ще ви запозная с настройките и разрешенията, които трябва да коригирате, за да изпълните командния си файл без ръчна намеса.
Стъпка 1: Проверете разрешенията за файлове / папки
Първата стъпка за решаването на този проблем е да се гарантира, че акаунтът, който използвате за изпълнение на скрипта в Task Scheduler, има пълни разрешения за управление на папката, съдържаща скрипта, самия скрипт и всички папки / файлове, които скриптът докосва, когато се изпълнява.
Например, създадох следния скрипт по-долу:
папка = "C: тест" cd / d% папка% за / F "delims =" %% i в ("dir / b") прави (rmdir "%% i" / s / q || del "% % i "/ s / q)
Запазих .BAT файла в папката „Документи“. Пътят е C: Потребителско име на потребител Документи . Отидох на C: Потребителско потребителско име, с десен бутон върху папката " Документи " и натиснах " Свойства" . След това щракнах върху раздела за сигурност .
Както виждате, потребителският акаунт Aseem е добавен изрично и е получил пълно разрешение. Сега трябва да направите същото за папката, която съдържа скрипта и за самия скрипт. Не само предполагайте, че ако дадете разрешения за папката, съдържаща скрипта, добре е да отидете, защото не сте. И накрая, задайте разрешения за всички файлове и папки, с които скриптът ще взаимодейства.
В моя случай трябваше да отида в C: тест, да щракнете с десния бутон на мишката върху тази папка и да добавя моя потребителски акаунт с разрешения за пълен контрол. Донякъде е досадно, че трябва да направите това, но това е единственият начин да стартирате скрипта.
Забележка : Акаунтът, който се използва за изпълнение на скрипта, трябва да е част от локалната група на администраторите на компютъра. В моя случай акаунтът Aseem е администраторски акаунт и следователно е част от местната група „Администратори“.
Стъпка 2: Проверете настройките на Task Scheduler
Сега да преминем към Task Scheduler и да променим подходящите настройки там. Отворете Планировчика на задачите и намерете задачата си в раздела Активни задачи . Те трябва да бъдат изброени по азбучен ред.
Кликнете два пъти върху него и тя ще отвори задачата сама в същия прозорец. За да редактирате задачата, трябва да щракнете с десния бутон върху нея и да изберете Свойства .
Има няколко раздела и няколко неща трябва да бъдат проверени и променени тук. Първо, в раздела Общи трябва да проверите потребителския акаунт, който се използва за изпълнение на задачата. В моя случай това е акаунтът Aseem, който по-рано съм давал на файловата система и който е част от групата „Администратори“ на компютъра.
След това трябва да изберете опцията Изпълни независимо дали потребителят е влязъл или не и изберете Windows Vista, Windows Server 2008 в полето Конфигуриране за .
В раздела Действия трябва да изберете скрипта, да кликнете върху Редактиране и след това да добавите в пътя към папката, съдържаща скрипта в полето Старт в (по избор) . Това може да изглежда ненужно, но не е така. В моя случай поставям C: Потребители Aseem Документи в кутията.
Сега кликнете върху OK, за да запазите настройките. Когато направите това, може да се появи диалогов прозорец, където трябва да въведете паролата за потребителския акаунт, който ще изпълни задачата. Това води до друго изискване. Не можете да използвате профил, който няма парола. Потребителският акаунт трябва да има парола, за да може задачата да се изпълни.
Накрая, трябва да изпълните задачата ръчно веднъж в Task Scheduler, за да се уверите, че се изпълнява. Ако той работи добре ръчно, след като сте променили всички настройки, тогава той трябва да работи, когато се предполага, че ще бъде задействан. В моя случай трябваше да се случи при стартиране и след като направих промените, всичко работи добре.
Обърнете внимание, че ако скриптът ви осъществява достъп до различни компютри в домейн, трябва да опитате да използвате акаунта на администратора на домейна, за да изпълните задачата. Това ще гарантира, че в профила има достатъчно разрешения за достъп до отдалечените компютри.
Друг елемент, който трябва да се отбележи, е ако скриптът ви достъпва ресурси в мрежов дял. Ако вашият скрипт използва писма за достъп до мрежата, той може да не работи. Например, вместо да използвате F: данните трябва да използвате: \ t Ако все още не можете да стартирате скрипта си, публикувайте коментар тук и аз ще се опитам да помогна. Наслади се!