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 se execută dacă nu 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, nimic nu sa întâmplat când computerul meu a pornit. După o mulțime de încercări și erori, mi-am dat seama cum să dau scriptul să ruleze.
În acest articol, vă voi trece prin setările și permisiunile de care aveți nevoie pentru a vă ajusta pentru a obține fișierul dvs. de lot pentru a rula fără intervenție manuală. Pasul 1: Verificați fișierele / permisiunile de folder
Primul pas pentru a remedia această problemă este să vă asigurați că contul pe care îl utilizați pentru a rula scriptul în Task Scheduler are permisiuni Full Control asupra dosarului care conține scriptul, script-ul propriu-zis, precum și orice dosare / fișiere pe care le atinge scriptul atunci când rulează. De exemplu, am creat următorul script batch:
/ p>set folder="C:\test"cd /d %folder% for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%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 făcut clic dreapta pe folderul Documenteși am făcut clic pe Proprietăți. Apoi am făcut clic pe fila Securitate.
După cum puteți vedea, / strong>a fost adăugată în mod explicit și a fost acordată permisiunea Control total. 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 va interacționa scriptul.
În cazul meu, trebuia să merg la C: \ testși adăugați contul de utilizator acolo cu permisiuni complete de control. Este un lucru enervant că trebuie să faceți acest lucru, dar este singura modalitate de a face ca scriptul să ruleze.
Notă: Contul utilizat scriptul trebuie să facă parte din grupul local Administratoride 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 programatorului de sarcini
Acum mergeți la Task Scheduler și modificați setările corespunzătoare acolo. Deschideți Task Scheduler și găsiți sarcina dvs. sub secțiunea Activități active. Acestea ar trebui să fie listate în ordine alfabetică.
Faceți dublu clic pe ea și va deschide sarcina în sine în aceeași fereastră. Pentru a edita sarcina, trebuie să faceți clic dreapta pe ea și să alegeți Proprietăți.
Există mai multe 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.
După aceea, trebuie să alegeți opțiunea Executați dacă utilizatorul este conectat sau nuși alegeți Windows Vista, Windows Server 2008în caseta Configurați pentru.
În >, 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 scriptul în caseta e Start în (opțional). Acest lucru poate părea inutil, dar nu este. În cazul meu, am introdus C: \ Users \ Aseem \ Documents \în casetă.
Acum faceți clic pe OKpentru 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 executarea sarcinii.
În cele din urmă, trebuie să executați sarcina manual o dată în Task Scheduler pentru a vă asigura că rulează. Dacă rulează bine după ce ați schimbat toate setările, atunci ar trebui să ruleze când se presupune că este declanșată. În cazul meu, ar fi trebuit să se întâmple la pornire și după ce am făcut schimbările, totul a mers bine.
accesând diferite computere dintr-un domeniu când este rulat, 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 computerele la distanță.
Un alt element pe care trebuie să îl notați 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 se execute. De exemplu, în loc de a utiliza F: \ data \, ar trebui să utilizați scriptul \\ machinename \ share_name \ data \. 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ă!