Recomandat, 2024

Alegerea Editorului

Fix Task Scheduled nu se va executa pentru fișierul .BAT

Dacă aveți un fișier .BAT și încercați să îl executați automat utilizând Task Scheduler în Windows, s-ar putea să fi întâmpinat problema în cazul în care pur și simplu nu rulează decât dacă executați manual sarcina.

Am creat un fișier batch care șterge totul în interiorul unui folder temp ori de câte ori computerul pornește. Am creat o sarcină de bază în Task Scheduler și am sperat pentru cele mai bune. Din păcate, nu sa întâmplat nimic când computerul meu a pornit. După o mulțime de încercări și erori, mi-am dat seama cum să obțin scriptul să ruleze.

În acest articol, vă voi îndruma prin setările și permisiunile de care aveți nevoie pentru a vă ajusta pentru a vă permite să rulați fișierul batch fără intervenția manuală.

Pasul 1: Verificați permisiunile pentru fișiere / foldere

Primul pas pentru a remedia această problemă este să vă asigurați că contul pe care îl utilizați pentru a rula script-ul în Task Scheduler are permisiuni Full Control asupra dosarului care conține scriptul, script-ul propriu-zis, precum și eventualele dosare / fișiere pe care scriptul le atinge atunci când rulează.

De exemplu, am creat următorul script de mai jos:

 set folder = "C: \ test" cd / d% folder% pentru / F "delims =" %% i in ('dir / % i "/ s / q) 

Am salvat fișierul .BAT în dosarul Documente. Calea este C: \ Users \ username \ Documents . M-am dus la C: \ Users \ username, am click-dreapta pe folderul Documents si am dat click pe Properties . Apoi am făcut clic pe fila Securitate .

După cum puteți vedea, contul de utilizator Aseem a fost adăugat în mod explicit și a primit permisiunea de control complet . Acum trebuie să faceți același lucru pentru folderul care conține scriptul și pentru scriptul însuși. Nu presupuneți doar că, dacă acordați permisiuni folderului care conține scriptul, sunteți bine să mergeți, pentru că nu sunteți. În cele din urmă, setați permisiunile pentru toate fișierele și folderele cu care scriptul va interacționa.

În cazul meu, a trebuit să merg la testul C: \, faceți clic dreapta pe dosarul respectiv și să adăugați contul de utilizator acolo cu permisiuni de control complet. Este cam enervant că trebuie să faceți acest lucru, dar este singura modalitate de a face scriptul să ruleze.

Notă : Contul utilizat pentru a rula scriptul trebuie să facă parte din grupul local de administratori de pe computer. În cazul meu, contul Aseem este un cont de administrator și, prin urmare, face parte din grupul local de administratori.

Pasul 2: Verificați setările programului de activități

Acum hai să mergem la Task Scheduler și să schimbăm setările potrivite acolo. Deschideți Task Scheduler și găsiți sarcina dvs. în secțiunea Activități active . Acestea ar trebui să fie enumerate în ordine alfabetică.

Faceți dublu clic pe el și va deschide sarcina în sine în aceeași fereastră. Pentru a edita sarcina, va trebui să faceți clic dreapta pe ea și să alegeți Proprietăți .

Există câteva file și câteva lucruri trebuie verificate și schimbate aici. În primul rând, în fila General, trebuie să verificați contul de utilizator care este utilizat pentru a executa sarcina. În cazul meu, este contul Aseem, pe care l-am acordat permisiuni mai devreme în sistemul de fișiere și care face parte din grupul Administrators de pe computer.

Apoi, trebuie să alegeți opțiunea Executare dacă utilizatorul este conectat sau nu și alegeți Windows Vista, Windows Server 2008 în caseta Configurare .

În fila Acțiuni, trebuie să selectați scriptul, să faceți clic pe Editați și apoi să adăugați calea către dosarul care conține script-ul în caseta Start în (opțional) . Acest lucru poate părea inutil, dar nu este. În cazul meu, am introdus în casetă C: \ Users \ Aseem \ Documents \ .

Acum faceți clic pe OK pentru a salva setările. Când faceți acest lucru, poate apărea un dialog în care trebuie să introduceți parola pentru contul de utilizator care va executa sarcina. Acest lucru aduce o altă cerință. Nu puteți utiliza un cont care nu are o parolă. Contul de utilizator trebuie să aibă o parolă pentru ca sarcina să funcționeze.

În cele din urmă, ar trebui să executați sarcina manual o dată în Task Scheduler pentru a vă asigura că rulează. Dacă rulează bine manual după ce ați schimbat toate setările, atunci ar trebui să ruleze când se presupune că este declanșată. În cazul meu, trebuia să se întâmple la pornire și după ce am făcut schimbările, totul a funcționat bine.

Rețineți că dacă scriptul dvs. accesează diferite computere dintr-un domeniu atunci când se execută, ar trebui să încercați să utilizați contul de administrator de domeniu pentru a executa sarcina. Acest lucru va asigura că contul are permisiuni suficiente pentru a accesa calculatoarele la distanță.

Un alt element care trebuie luat în considerare este dacă scriptul dvs. accesează resurse dintr-o partajare de rețea. Dacă scriptul dvs. utilizează litere pentru a accesa rețeaua, este posibil să nu fie rulat. De exemplu, în loc să utilizați F: \ data \, ar trebui să utilizați \\ machinename \ share_name \ data \ în script. Dacă tot nu reușiți să rulați scriptul dvs., postați un comentariu aici și voi încerca să vă ajut. Bucurați-vă!

Top