Scriptul PowerShell reduce efectuarea manuală a sarcinilor repetitive. Dacă executați frecvent scripturi la momente prestabilite sau la intervale de timp specificate, este posibil să fiți obosit să executați scripturi în mod repetat. Atunci, puteți utiliza Task Scheduler-ul Windows pentru a automatiza executarea scripturilor în locul dumneavoastră. Acesta vă va economisi timpul și efortul de a executa scriptul zilnic/săptămânal. Să vedem cum să programăm scriptul PowerShell prin Task Scheduler.
Se poate face în două moduri.
1.Programarea scriptului PowerShell folosind Task Scheduler GUI
2.Programarea scriptului PowerShell din Task Scheduler folosind PowerShell
- Metoda 1: Programarea scriptului PowerShell folosind Task Scheduler
- Automatizați scriptul PowerShell din Task Scheduler cu parametri
- Metoda 2: Programarea scriptului PowerShell din Task Scheduler utilizând PowerShell
- Define Time for Scheduler:
- Set Actions to be Performed During Execution:
- Salvare Scheduler:
- Cazuri de utilizare:
Metoda 1: Programarea scriptului PowerShell folosind Task Scheduler
Deschideți Task Scheduler (poate fi găsit în „Instrumente administrative” sau apăsând „Windows+R” pentru a deschide run și apoi tastați „taskschd.msc”.)
Pentru a rula un script din Task Scheduler, urmați acești pași.
1.Deschideți Task Scheduler -> Task Scheduler Library -> Create Task
2.În fila General, puteți seta numele planificatorului și o descriere despre sarcină, cum ar fi scopul pentru care a fost creată sarcina.
Opțiunile de securitate disponibile sunt explicate mai jos.
- Specificați utilizatorul în numele căruia va fi executată sarcina.
- Puteți specifica faptul că o sarcină trebuie să ruleze . Aceasta se poate face prin selectarea unui buton radio etichetat „Run Whether the user is logged on not”. Dacă acest buton radio este selectat, sarcina nu va rula interactiv. Pentru a face ca o sarcină să ruleze interactiv, selectați butonul de selectare ’Run only when user is logged on’.
- Când se selectează butonul de selectare ‘Run whether user is logged on or not–, este posibil să vi se ceară să furnizați datele de identificare ale contului, indiferent dacă selectați sau nu caseta de selectare ‘Do not store password– sau nu. În cazul în care contul nu este conectat în timpul executării sarcinii, vor fi utilizate acreditările salvate.
- Dacă sarcina necesită privilegii ridicate, atunci selectați opțiunea ‘Run with highest privileges.™
3.Treceți la fila Trigger și faceți clic pe butonul New. Aici, puteți seta condițiile care declanșează o sarcină.
- Puteți specifica când să porniți sarcina. De exemplu, puteți face ca aceasta să fie executată după un program, la pornire, la conectare sau ori de câte ori apare un anumit eveniment, selectând meniul derulant „Începeți sarcina”.
- Puteți configura dacă doriți să executați această sarcină o dată sau zilnic sau săptămânal sau lunar, în funcție de scenariul dumneavoastră.
- În „Setări avansate”, puteți alege să amânați sarcina, să repetați sarcina, să opriți sarcina dacă se execută mai mult decât perioada de timp specificată și data de expirare.
- Delay task for up to – Aceasta adaugă o întârziere aleatorie, astfel încât sarcina nu se va declanșa la ora exactă a zilei.
- Repeat task every – Aceasta arată numărul de ori de câte ori o sarcină ar trebui să se execute după ce se declanșează un declanșator.
- Repeat task every — Intervalul de timp dintre fiecare repetare a sarcinii
- Pentru o durată de- Cât timp ar trebui să continue să se repete o sarcină
- Stop task if it runs longer than- Dacă sarcina se execută mai mult decât timpul așteptat sau nu se oprește niciodată, sarcina se va opri automat dacă atinge limita de timp menționată.
- Expiră – După perioada de timp specificată, programul nu va mai fi declanșat.
4.Apoi deschideți următoarea filă – Acțiuni – și faceți clic pe butonul „Nou”.
- În lista derulantă Acțiune, „Pornește un program” este setat în mod implicit. Puteți să o modificați dacă este necesar.
- Utilizand Browse, selectați câmpul program/script. Pentru a programa un script, trebuie să selectăm powershell.exe.
Puteți găsi powershell.exe în folderul system32\WindowsPowerShell\v1.0.
- În „Adăugați argumente”, parametrul -File este cel implicit, așa că este suficient să specificați calea scriptului. De exemplu, voi programa un script care să exporte raportul de stare MFA al utilizatorilor Office 365.
PowerShell
1
|
c:\GetMFAStatus.ps1
|
În cazul în care calea conține spații goale, trebuie să fie inclusă între ghilimele.
5.Odată configurată, puteți specifica condiții pentru a determina dacă sarcina trebuie să ruleze sau nu. Sarcina nu va rula dacă orice condiție specificată aici nu este adevărată.
6.În fila Settings (Setări), puteți seta setări avansate suplimentare pentru a controla execuția sarcinii.
În cele din urmă, faceți clic pe Ok pentru a crea un script programat.
Scriptul programat va rula așa cum era de așteptat în conformitate cu programarea dvs. fără nicio problemă. Dacă doriți să verificați execuția scriptului, puteți face clic pe Run (Executare) făcând clic dreapta pe numele sarcinii.
Automatizați scriptul PowerShell din Task Scheduler cu parametri
Dacă doriți să programați scriptul PowerShell cu parametri, utilizați formatul de mai jos.          Â
.
PowerShell
1
|
Calea scriptului -Param 1 Value1 Value1 -Param2 „Value 2”
|
De exemplu, Am de gând să automatizez unul dintre scripturile noastre PowerShell: Export Office 365 Users MFA status report
În timpul programării, puteți trece în mod explicit credențialele ca parametri, așa cum se arată mai jos:
PowerShell
1
|
C:\GetMFAStatus.ps1 -UserName „XXX XX” -Password ****
|
În cazul în care valoarea parametrului are spații libere, valorile trebuie să fie cuprinse între ghilimele.
Dacă doriți să treceți un parametru de comutare, puteți utiliza sintaxa de mai jos.
PowerShell
1
|
 C:\GetMFAStatus.ps1 -EnabledOnly
|
Scriptul de mai sus exportă starea MFA a utilizatorilor Office 365 a căror stare MFA este activată. Aici -EnabledOnly este un parametru de comutare.
Pentru mai multe scripturi PowerShell legate de Office 365, puteți consulta blogul O365Reports.com.
Metoda 2: Programarea scriptului PowerShell din Task Scheduler utilizând PowerShell
În loc de GUI, puteți utiliza cmdlets PowerShell pentru a crea sarcini de programare care automatizează scriptul PowerShell. Aceasta implică următorii pași,
1.Define time for scheduler
2.Set Actions to be performed during execution
3.Save scheduler
Define Time for Scheduler:
New-SchdeuledTaskTrigger creează un obiect de declanșare a unei sarcini programate. Cu ajutorul acestui cmdlet, puteți specifica ora de pornire a unei sarcini sau de pornire a unei sarcini de mai multe ori pe o bază zilnică sau săptămânală.
PowerShell
1
|
$Time=New-ScheduledTaskTrigger -At 4.00PM -Once
|
Codul de mai sus creează un declanșator de sarcină programată care începe la ora 4PM și se execută o singură dată.
PowerShell
1
|
  $Time=New-ScheduledTaskTrigger -At 4.00PM -Daily -DaysInterval 2
|
Codul cmd de mai sus creează un declanșator de sarcină programată care pornește la fiecare 2 zile la ora 4PM
Set Actions to be Performed During Execution:
New-SchdeuledTaskAction reprezintă acțiunile care se execută atunci când Task Scheduler rulează sarcina. O sarcină poate avea o singură acțiune sau un maxim de 32 de acțiuni. Atunci când specificați mai multe acțiuni, Task Scheduler execută o sarcină în mod secvențial.     Â
Această comandă deschide un PowerShell și schimbă directorul în C:/Scripts și apoi invocă scriptul MFAStatus.ps1.
Salvare Scheduler:
Registrare-ScheduledTask salvează sarcina programată pe un computer local.
PowerShell
1
|
Înregistrare-ScheduledTask -TaskName „Schedule MFA Status Report” -Trigger $Time -Action $Action -RunLevel Highest
|
Codul de mai sus salvează o sarcină programată cu numele „Schedule MFA Status Report” în folderul rădăcină. Sarcina salvată utilizează acțiunea pre-creată și valorile de declanșare care sunt specificate de variabilele $Action și $Time.
Cazuri de utilizare:
Utilizând Task Scheduler, puteți programa un script PowerShell pentru a se executa periodic. Astfel încât să nu fie nevoie să rulați manual un script zilnic/săptămânal/lunar. Există mai multe scripturi disponibile pe internet care sunt prietenoase cu planificatorul (acreditările pot fi transmise ca parametru în loc să fie salvate în interiorul scriptului). Am dat câteva exemple aici.
- Registrează istoricul de conectare a utilizatorilor Office 365 – Păstrează jurnalul de audit pentru mai mult de 90 de zile
- Raport periodic al stării MFA a utilizatorilor Office 365
- Programare Raport privind ultima oră de conectare a utilizatorilor Office 365
- Programare Raport privind permisiunile pentru căsuța poștală Office 365
- Programare Raport privind licențele utilizatorilor Office 365
- Programare Script PowerShell privind apartenența la un grup de distribuție
- Programare Script PowerShell privind apartenența dinamică la un grup de distribuție
- Raport periodic privind raportul privind ultima activitate a utilizatorilor Office 365
- Programare Raport PowerShell privind istoricul de conectare a utilizatorilor Office 365
- Raport PowerShell privind exportul periodic al permisiunilor pentru căsuța poștală partajată
- Programare nonowner mailbox access report
Raport de expirare a parolei utilizatorilor Office 365
În acest blog, am văzut cum să automatizăm un script PowerShell folosind Task Scheduler.Care este abordarea dumneavoastră preferată atunci când vine vorba de programare – GUI sau PowerShell? Spuneți-ne în secțiunea de comentarii.