Ghid complet pentru programarea activităților în Windows cu schtasks

Ultima actualizare: 17/12/2025
Autorul: Isaac
  • Schtasks este interfața de linie a comenzi din Planificatorul de activități și vă permite să creați, modificați, rulați și ștergeți activități atât local, cât și de la distanță.
  • Parametrii cheie precum /sc, /tn, /tr, /ru, /mo, /st sau /d definesc ce se execută, cu ce permisiuni și cu ce frecvență sau condiție de declanșare.
  • Gestionarea permisiunilor și a conturilor (Administrator, SYSTEM, utilizatori la distanță cu /uy /p) este esențială pentru ca sarcinile să fie create și executate corect.
  • Schtasks înlocuiește vechea comandă AT și oferă o platformă robustă pentru automatizarea mentenanței, a scripturilor și a proceselor recurente în ferestre din.

programați sarcinile cu schtasks

Planificarea activităților în Windows cu schtasks Este unul dintre acele lucruri care, odată ce îl stăpânești, te face să te întrebi de ce ai făcut manual sarcini repetitive ani de zile. Copii de rezervă la ore neobișnuite, scripturi pe care le rulezi în fiecare dimineață, servicii pe care trebuie să le repornești după o pană de curent... toate acestea pot fi automatizate cu o simplă comandă.

Comanda schtasks este interfață de linie de comandă Programatorul de activități Windows vă permite să creați, să modificați, să listați, să rulați și să ștergeți activități atât pe propriul computer, cât și pe mașinile la distanță din rețea. Să aruncăm o privire mai atentă, cu exemple și explicații clare pentru fiecare parametru cheie, astfel încât să puteți profita la maximum de el, de la automatizări simple la scenarii avansate care implică utilizatori, permisiuni și computere la distanță.

Ce este schtasks și ce poate face pentru tine?

exemple de schtask-uri în Windows

Schtasks.exe este instrumentul consolei pe care Windows îl folosește pentru a comunica cu Programatorul de activități. Datorită acestuia, puteți defini că un program, scenariu Comanda va fi executată automat la o anumită dată și oră sau la un program specific, fără a fi nevoie să atingeți interfața grafică.

Cu schtasks puteți programa sarcini recurente (la fiecare X minute, ore, zile, săptămâni sau luni), activități care sunt lansate la pornirea sistemului, la conectarea unui anumit utilizator, la inactivitatea computerului sau chiar ca răspuns la evenimente de sistem. În plus, puteți lansa activități sub diferite conturi de utilizator (inclusiv contul SYSTEM) și pe computere la distanță.

Operațiile de bază ale schtask-urilor Acestea sunt grupate în șase subcomenzi principale, pe care le veți folosi în 99% din cazuri:

  • schimbările de sarcini: modifică proprietățile unei sarcini existente (program de rulat, utilizator, parolă, mod interactiv…).
  • schtasks creează: creează o nouă sarcină programată.
  • ștergerea schtasks: șterge o sarcină din planificator.
  • sfârșitul sarcinilor: oprește programul care execută o sarcină.
  • interogare schtasks: afișează sarcinile programate ale echipei.
  • schtasks rulează: forțează execuția imediată a unei sarcini care a fost deja creată.

În spatele acestor operațiuni există o mulțime de parametri Pentru a defini frecvența, datele de început și de sfârșit, utilizatorul sub care se execută sarcina, echipa la distanță, întârzierile, durata, nivelurile de privilegii etc. Le vom detalia mai jos.

Permise necesare pentru lucrul cu schtask-uri

permisiuni pentru schtask-uri

Înainte să începi să creezi sarcini ca nebunulEste important să fii clar în ceea ce privește permisiunile de care ai nevoie, deoarece altfel vei ajunge să ai sarcini care sunt create, dar nu sunt executate sau care eșuează în mod silențios.

În echipa locală, pentru a gestiona toate sarcinile Pentru a vizualiza, crea, modifica și șterge sarcini, trebuie să fii administrator. Un utilizator standard își poate crea propriile sarcini în unele cazuri, dar dacă dorești control deplin asupra sistemului, poți face acest lucru dintr-un cont cu privilegii administrative.

În echipele care lucrează la distanță, lucrurile stau similar.Contul pe care îl utilizați trebuie să fie de Administrator pe computerul la distanță. Puteți rula comanda de pe computer și utiliza parametrul. /s pentru a indica echipa de destinație și /u y /p pentru a furniza acreditări de administrator pentru mașina sau domeniul respectiv.

Parametrul /u funcționează corect doar Acest lucru se întâmplă atunci când computerele locale și cele la distanță se află pe același domeniu sau pe domenii cu încredere configurată. Dacă nu există o relație de încredere, computerul la distanță nu poate autentifica contul pe care îl furnizați, iar sarcina va fi configurată greșit sau goală, chiar dacă pare să fi fost creată.

În plus, sarcina în sine trebuie să aibă permisiuni suficiente să facă ceea ce cereți. În mod implicit, sarcinile sunt executate sub utilizatorul curent sau cu cel specificat de dvs. /uDacă doriți să se lanseze cu un alt cont sau direct cu permisiuni de sistem, trebuie să utilizați parametrul /ru (Executare ca utilizator) și, în mod normal, /rp pentru a introduce parola.

Sintaxa generală a schtask-urilor și a parametrilor cheie

Sintaxa funcțiilor schtask este destul de extinsăTotuși, urmează întotdeauna același model: o subcomandă, urmată de parametri care definesc ce, când, unde și cu ce permisiuni este executată sarcina. Formatul general pentru crearea sarcinilor este:

  Windows Resource Protection nu a putut porni reparația.

schtasks /create /sc <tipo_programación> /tn <nombre_tarea> /tr <comando_o_programa>

Parametrii fundamentali la crearea unei sarcini sunt:

  • /sc: tip de de programareValori tipice:
    • MINUTEla fiecare N minute.
    • ORAREla fiecare N ore.
    • ZILNIC: la fiecare N zile.
    • SĂPTĂMÂNALla fiecare N săptămâni.
    • LUNARla fiecare N luni.
    • O SINGURA DATAo singură execuție.
    • PORNIREîn fiecare cizmă a sistemului.
    • ONLOGON: când un utilizator se conectează.
    • ONIDLEcând sistemul a fost inactiv timp de X minute.
    • UN EVENIMENTca răspuns la un eveniment specific din jurnal.
  • /tnNume unic al activității. Poate include calea folderului (de exemplu, "MiCarpeta\BackupDB"). Maxim 238 de caractere.
  • /trCalea completă către fișierul executabil, scriptul sau fișierul .bat care va fi executat. Dacă nu specificați o cale, aceasta va fi presupusă. %SystemRoot%\System32Lungime maximă 262 de caractere.
  • /s: computer la distanță (nume sau IP). Dacă nu îl utilizați, acționați pe computerul local.
  • /sau: acreditările cu care este executată comanda schtasks în sine (pentru programare la distanță).
  • /p: parola utilizatorului indicat în /uDacă nu îl furnizați, consola vi-l va solicita.
  • /ru { | sistem}Contul sub care va fi executată sarcina. Puteți utiliza un utilizator de domeniu, un utilizator local sau contul Sistem.
  • /rp: parola pentru contul indicat în /ruNu se folosește cu /ru Systemdeoarece contul SYSTEM nu are o parolă.
  • /lună: modificator de frecvență în cadrul tipului de programare (câte minute, ore, zile, săptămâni sau luni).
  • /zi: zi sau zile specifice pentru WEEKLY sau anumite moduri ale MONTHLY (de exemplu, /d MON,FRI).
  • /m: luni specifice (IAN-DEC sau * pentru toate).
  • /Sf: ora de începere în format de 24 de ore (HH:MM).
  • /et o /du: ora de încheiere sau durata maximă pentru programări, în minute/ore.
  • /sd y /ed: datele de început și de sfârșit conform setărilor regionale ale sistemului.
  • /Articol: face ca sarcina să se execute numai dacă utilizatorul de execuție este autentificat interactiv.
  • /np: nu salvează parola; sarcina rulează neinteractiv și doar cu resurse locale.
  • /z: șterge automat sarcina la sfârșitul programării.
  • /rl: nivel de privilegiu (LIMITAT sau CEL MAI ÎNALT).
  • /f: forțează crearea sau modificarea, suprascrierea fără a cere confirmare.

Există parametri mai avansați (XML, compatibilitate inversă, întârzieri cu /întârziere(coduri HRESULT etc.), dar cu cele de mai sus puteți acoperi practic orice scenariu standard.

Programați sarcini cu frecvențe diferite

Unul dintre punctele forte ale schtask-urilor Este vorba despre flexibilitatea în definirea frecvenței. Puteți ajusta de la execuții la fiecare câteva minute la lansări în ultima zi a anumitor luni sau în a doua duminică a fiecărui trimestru.

Pentru programări minut cu minut, este folosit /sc minut. Modificatorul / mo Aceasta indică frecvența lansării sarcinii, în minute. Dacă nu specificați, valoarea implicită este 1 minut.

Exemplu interval 20 minute: schtasks /create /sc minute /mo 20 /tn "Security Script" /tr \\central\data\scripts\sec.vbs

Exemplu cu interval orar: schtasks /create /tn "Security Script" /tr sec.vbs /sc minute /mo 100 /st 17:00 /et 08:00 /k

Pentru programare este folosit /sc pe oră, și din nou / mo Indică frecvența. De exemplu, pentru a rula MyApp la fiecare 5 ore începând cu 1 martie:

Exemplu de program pentru 5 ore: schtasks /create /sc hourly /mo 5 /sd 03/01/2002 /tn MyApp /tr c:\apps\myapp.exe

În programul zilnic (/sc zilnic) poți să folosești / mo pentru a spația execuțiile. De exemplu, rulați MyApp la fiecare 12 zile începând de la o anumită dată:

Exemplu de zi cu zi spațiată: schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc daily /mo 12 /sd 12/31/2002 /st 13:00

Programul săptămânal este definit cu /sc săptămânal, combinând / mo (interval de săptămâni) și /d (Zilele săptămânii: LUN, MAR, MIE, JOI, VIN, SÂM, DUM sau *). De exemplu, pentru a lansa MyApp o dată la două vineri:

Exemplu săptămânal (la fiecare 2 săptămâni): schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc weekly /mo 2 /d FRI

Există mai multe opțiuni pentru programele lunare:

  • Într-o anumită zi a lunii (1-31) cu /sc lunar y /d.
  • Pe săptămână și pe zi (PRIMUL, AL DOILEA, AL TREILEA, AL PATRULEA + /zi) și opțional /m odată cu lunile.
  • Ultima zi a lunii cu /lună ZIUA TRECUTĂ y /m pentru anumite luni sau * pentru toate.

Exemplu lunar (ultima zi a lunilor specifice): schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /mo LASTDAY /m FEB,MAR /st 18:00

Declanșatoare speciale: o singură utilizare, pornire, conectare și inactivitate

Nu vrei întotdeauna o sarcină recurentă.Uneori trebuie să rulezi ceva o singură dată, la o anumită dată și oră. Pentru asta este folosit următorul tip. /sc o datăceea ce necesită o /Sf și, în mod normal, o /sd:

  Cum să tastați caractere speciale cu tasta Alt în Windows

Exemplu de execuție unică: schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc once /sd 01/01/2003 /st 00:00

Tipul ONSTART (/sc onstartAcest lucru face ca sarcina să se execute la fiecare pornire a sistemului, ideală pentru scripturi de întreținere, monitorizare sau servicii personalizate:

Exemplu OnStart: schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc onstart

ONLOGON (/sc onlogonAceasta execută sarcina atunci când un utilizator se conectează. O puteți utiliza pentru a lansa scripturi de mediu, a monta unități de rețea, a porni aplicații interne și multe altele. De exemplu, pe un computer la distanță:

Exemplu de OnLogon la distanță: schtasks /create /tn "Start Web Site" /tr c:\myiis\webstart.bat /sc onlogon /s Server23

ONIDLE (/sc onidle) declanșează sarcina atunci când computerul a fost inactiv pentru o perioadă de timp, pe care o definiți cu /i în minute. De exemplu, pentru a porni MyApp când dispozitivul a fost inactiv timp de 10 minute:

Exemplu OnIdle 10 min: schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc onidle /i 10

Creați sarcini cu privilegii specifice: utilizator alternativ și SYSTEM

O utilizare foarte puternică a schtask-urilor este lansarea de sarcini cu conturi diferite a celui pe care îl utilizați în prezent. De exemplu, puteți programa mentenanța sub un cont de administrator chiar dacă sunteți conectat cu un utilizator limitat sau puteți rula procese cu contul SYSTEM pentru a avea permisiuni sporite.

Pentru a executa o sarcină cu un alt cont de utilizator parametrul este utilizat /ru împreună cu parola din /rpDe exemplu, lansarea MyApp săptămânală, marțea, ca Admin06 pe mașina locală:

Exemplu alternativ pentru /ru: schtasks /create /tn MyApp /tr myapp.exe /sc weekly /d TUE /ru Admin06

Pe sistemele la distanță, /uy și /p controlează cine programează sarcinaÎn timp ce /ru Definiți contul în care va fi executat. Acestea sunt concepte distincte care nu ar trebui combinate:

  • /u: acreditări pentru a rula comanda schtasks și a crea sarcina pe telecomandă.
  • /ru: contul cu care va fi executată sarcina la momentul potrivit.

Exemplu la distanță cu conturi diferite: schtasks /create /tn MyApp /tr myapp.exe /sc daily /mo 4 /s Marketing /u Marketing\Admin01 /ru Reskits\User01

Dacă doriți să utilizați contul SYSTEMcine are privilegii foarte mari, este suficient să specificăm /ru System Fără parolă. De exemplu, pentru a rula MyApp pe data de 15 a fiecărei luni ca SYSTEM:

Exemplu ca SISTEM: schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /d 15 /ru System

Rețineți că procesele care rulează ca SYSTEM Nu sunt interactive: utilizatorul nu vede ferestrele și nici nu poate interacționa cu ele. Sunt ideale pentru servicii, scripturi de întreținere sau sarcini de sistem, dar nu și pentru deschiderea aplicațiilor vizibile utilizatorului.

Gestionarea sarcinilor existente: modificare, rulare, listare și oprire

După ce ați creat sarcinile, schtasks Oferă mai multe subcomenzi pentru a le gestiona fără a deschide consola grafică Task Scheduler.

Pentru a schimba proprietățile a unei sarcini existente este utilizată sarcini / schimbarePuteți modifica programul pe care îl rulează, utilizatorul pe care îl rulează, parola sau îl puteți seta să ruleze doar în sesiuni interactive:

  • /tr: fișier executabil sau script nou.
  • /ru: cont nou de execuție (utilizator sau SYSTEM).
  • /rp: parolă pentru contul din /ru.
  • /Articol: marchează sarcina ca „numai când utilizatorul este autentificat”.

Exemplu de modificare a scriptului: schtasks /change /tn "OpenWebinarsSchedule" /tr C:\Users\OpenWebinars\Documents\Release\nuevo_script.bat

Dacă vrei să lansezi o sarcină chiar acumignorând programarea sa, folosești schtasks /runAceastă execuție nu modifică următoarea dată programată:

Execută imediat: schtasks /run /tn "OpenWebinarsSchedule"

Pentru a enumera sarcinile echipei este folosit schtasks /queryPuteți obține o listă simplă, un tabel sau un format de listă detaliată:

  • schtasks /query → listă de bază.
  • schtasks /query /fo LIST /v → listă detaliată, foarte utilă pentru depanare.

Dacă o sarcină rulează un program pe care doriți să îl opriți, aveți schtasks /endAi nevoie doar de numele sarcinii:

Forțați oprirea sarcinii: schtasks /end /tn "OpenWebinarsSchedule"

Și când nu mai ai nevoie de o sarcinăÎl elimini cu schtasks /deletePuteți șterge o anumită sarcină sau pe toate (cu atenție):

  • schtasks /delete /tn OpenWebinarsSchedule /f → Ștergeți sarcina respectivă fără a cere confirmare.
  • schtasks /delete /tn * /f → Șterge toate sarcinile de sistem programate.

Perseverență în îndeplinirea sarcinilor programate (viziune tehnică și de siguranță)

O utilizare avansată și delicată a schtask-urilor Implică crearea de sarcini ca mecanism de persistență: configurarea unui program sau script pentru a rula periodic sau la pornirea sistemului, chiar dacă nimeni nu se conectează. Acest lucru este util pentru administratorii legitimi, dar și atacatorii îl folosesc, așa că este important să îl înțelegem bine din perspectiva... securitatea cibernetică.

  Cum să convertiți un fișier DMG în ISO pe Windows, Linux și macOS

O sarcină programată în Windows este pur și simplu o comandă Acest lucru permite sistemului să lanseze o comandă, un script sau un fișier executabil la un anumit moment sau cu o anumită frecvență. Dacă această sarcină este definită cu contul SYSTEM și o frecvență foarte scurtă, puteți face ca un fișier binar să ruleze continuu chiar dacă cineva îl închide.

Exemplu de persistență (SYSTEM la fiecare N minute): schtasks /create /ru "SYSTEM" /sc minute /mo <minutos> /tn "<nombre>" /tr "<comando>"

Descifrarea ordinii anterioare:

  1. /ru «SISTEM»: execută sarcina cu contul SYSTEM, adică cu privilegii foarte mari.
  2. /sc minut: tipul de programare în minute.
  3. /lună: interval de repetiție, de exemplu 10 pentru fiecare zece minute.
  4. /tn « »: denumire identificatoare a sarcinii, care poate fi deghizată în ceva inocent dacă cineva vrea să treacă neobservată.
  5. /tr« »: program sau script care va fi executat (cale completă cu argumente).

Există exemple în care schtask-urile sunt combinate cu instrumente de genul plink.exe pentru a stabili conexiuni inverse, tuneluri de port și altele asemenea, configurate să se relanseze periodic. Din punct de vedere defensiv, revizuiți periodic sarcinile programate cu schtasks /query /fo LIST /v iar vizualizatorul de evenimente este obligatoriu pentru a detecta acest tip de utilizare.

De la AT la schtasks: de ce nu ar trebui să mai folosești AT

Timp de ani de zile, Windows a încorporat comanda AT. pentru a programa sarcini. În versiunile moderne, această comandă este oficial depreciată, iar consola însăși vă spune acest lucru atunci când încercați să o utilizați: „Comanda AT este depreciată. Folosiți în schimb schtasks.exe.”

AT a permis programarea comenzilor simple specificând doar ora, data și comanda de executat. De exemplu, pentru a copia documente pe o altă unitate în fiecare miez de noapte:

Exemplu clasic de AT: at 00:00 cmd /c copy C:\Documents\*.* J:\MyDocs

De asemenea, puteți lista și șterge sarcini AT cu variații ale aceleiași comenzi (după ID, pe mașini la distanță etc.). Cu toate acestea, nu s-a apropiat de flexibilitatea, granularitatea permisiunilor sau opțiunile avansate pe care le oferă schtasks.

În Windows 10 și versiuni ulterioare, AT încă există Funcționează doar ca un wrapper de compatibilitate, dar returnează mesaje care indică faptul că solicitarea nu este acceptată. Dacă lucrați cu versiuni mai vechi de Windows unde încă funcționează, este recomandat să migrați automatizările către Schtasks, care este instrumentul acceptat și mult mai puternic.

Interfața grafică Schtasks versus Task Scheduler

Tot ce face schtasks poate fi făcut și el de la Consola grafică a Planificatorului de activități (se deschide) taskschd.msc (din Executare), dar utilizarea liniei de comandă are avantaje clare: puteți automatiza implementările, genera scripturi reutilizabile, aplica modificări în bloc sau lucra împotriva unor echipe la distanță fără a fi nevoit să le interacționați.

O abordare foarte practică în medii mixte Este vorba despre combinarea ambelor lumi: creezi o sarcină de bază din interfața grafică pentru a înțelege toate setările, o exporți în XML și apoi folosești schtask-uri cu parametrul /xml să implementeze copii ajustând doar ceea ce este necesar (utilizator, date etc.).

De asemenea, puteți integra fișiere schtask în scripturi .bat sau .ps1. împreună cu alte sarcini de întreținere: curățenie busteni, repornirea serviciilor, lansarea de copii de rezervă sau notificări, toate declanșate de o singură sarcină programată care apelează un script principal.

Dacă gestionați mai multe mașini sau utilizatori, sarcini principale și programe pentru automatizarea sarcinilor Te va scuti de a te trezi devreme pentru a face copii de rezervă manuale, te va împiedica să uiți lucruri și va reduce riscul de eroare umană prin repetarea constantă a acelorași acțiuni manual. Practic, învață sistemul să facă pentru tine ceea ce îți fură timpul în fiecare zi.

O înțelegere aprofundată a schtask-urilor, a parametrilor lor de programare și a interacțiunii dintre /u, /ru, permisiunile locale și la distanță Vă permite să automatizați aproape orice rutină din Windows cu precizie, siguranță și reproductibilitate, permițând computerului să facă ceea ce știe cel mai bine: să urmeze instrucțiunile întocmai, 24 de ore pe zi.

Planificați și gestionați sarcinile programate cu Schtaks
Articol asociat:
Cum să programezi și să gestionezi activități automate cu schtasks în Windows