A PowerShell szkript csökkenti az ismétlődő feladatok kézi elvégzését. Ha gyakran hajt végre szkripteket előre meghatározott időpontokban vagy meghatározott időintervallumokban, akkor lehet, hogy belefáradt a szkriptek ismételt végrehajtásába. Ekkor a Windows Feladatütemezőjét használhatja a parancsfájlok végrehajtásának automatizálására. Ez időt és energiát takarít meg a szkriptek napi/heti végrehajtásával. Lássuk, hogyan ütemezhető a PowerShell szkript a Feladatütemező segítségével.
Ez kétféleképpen történhet.
1. A PowerShell szkript ütemezése a Feladatütemező felhasználói felületének használatával
2.PowerShell szkript ütemezése a Feladatütemezőből a PowerShell segítségével
- 1. módszer: PowerShell szkript ütemezése a Feladatütemező használatával
 - Paraméterekkel rendelkező PowerShell szkript ütemezése a Feladatütemezőből
 - 2. módszer: PowerShell szkript ütemezése a feladatütemezőből a PowerShell használatával
 - Define Time for Scheduler:
 - Set Actions to be Performed During Execution:
 - Az ütemező mentése:
 - Használati esetek:
 
1. módszer: PowerShell szkript ütemezése a Feladatütemező használatával
A Feladatütemező megnyitása (megtalálható a “Felügyeleti eszközök”-ben vagy a “Windows+R” billentyűkombináció megnyomásával a Futtatás megnyitásához, majd írja be a “taskschd.msc”-t.)
A szkript futtatásához a Feladatütemezőből kövesse az alábbi lépéseket.
1.Nyissa meg a Feladatütemezőt -> Feladatütemező könyvtár -> Feladat létrehozása

2.Az Általános lapon beállíthatja a feladatütemező nevét és leírását a feladatról, például hogy milyen célból hozta létre a feladatot.

Az alábbiakban ismertetjük a rendelkezésre álló biztonsági beállításokat.
- Megadhatja azt a felhasználót, akinek a nevében a feladat futni fog.
 - Megadhatja, hogy a feladatot . Ezt egy rádiógomb kiválasztásával teheti meg, amelynek felirata a következő: “Futtatás függetlenül attól, hogy a felhasználó nincs bejelentkezve”. Ha ez a rádiógomb be van jelölve, a feladat nem fog interaktívan futni. Ahhoz, hogy egy feladat interaktívan fusson, jelölje be a ™Futtatás csak akkor, ha a felhasználó be van jelentkezve™ rádiógombot.
 - Ha a ™Futtatás függetlenül attól, hogy a felhasználó be van-e jelentkezve vagy sem™ be van jelölve, a fiók hitelesítő adatainak megadását kérheti, függetlenül attól, hogy bejelölte-e a ™Ne tárolja a jelszót™ jelölőnégyzetet vagy sem. Ha a fiók nincs bejelentkezve a feladat végrehajtása során, akkor az elmentett hitelesítő adatok kerülnek felhasználásra.
 - Ha a feladathoz emelt szintű jogosultságok szükségesek, akkor válassza a “Futtatás a legmagasabb jogosultságokkal” lehetőséget.
 
3.Váltson a Trigger fülre, és kattintson az Új gombra. Itt megadhatja a feladatot kiváltó feltételeket.

- Megadhatja, hogy mikor indítsa el a feladatot. Például ütemezés szerint, indításkor, bejelentkezéskor vagy egy adott esemény bekövetkezésekor is elvégezheti a feladatot, ha kiválasztja a “Feladat megkezdése” legördülő menüpontot.
 

- A forgatókönyvnek megfelelően beállíthatja, hogy a feladatot egyszer, naponta, hetente vagy havonta szeretné-e futtatni.
 - A “Speciális beállítások”-ban kiválaszthatja a feladat késleltetését, a feladat megismétlését, a feladat leállítását, ha a megadott időtartamnál hosszabb ideig fut, valamint a lejárati dátumot.
- A feladat késleltetése legfeljebb – Ez egy véletlenszerű késleltetést ad hozzá, így a feladat nem a nap pontos időpontjában fog elindulni.
 - A feladat megismétlése minden – Ez megmutatja, hányszor kell a feladatot lefuttatni a kiváltás után.
- Repeat task every — Az egyes feladatismétlések közötti időintervallum
 - For a duration of- Mennyi ideig ismétlődjön a feladat
 
 - Stop task if it runs longer than- Ha a feladat a vártnál tovább fut, vagy soha nem lép ki, a feladat automatikusan leáll, ha eléri a megadott időtartamot.
 - Lejárat – A megadott időtartam után az ütemezés nem fog elindulni.
 
 

4. Ezután nyissa meg a következő lapot – Műveletek – és kattintson az Új gombra.

- A Művelet legördülő listában alapértelmezés szerint a “Program indítása” van beállítva. Szükség esetén módosíthatja.
 - A Tallózás segítségével válassza ki a program/szkript mezőt. A szkript ütemezéséhez a powershell.exe-t kell kiválasztanunk.
A powershell.exe-t a system32\WindowsPowerShell\v1.0 mappában találja. 
- Az “Érvek hozzáadása”-ban a -File paraméter az alapértelmezett, így egyszerűen adja meg a szkript elérési útvonalát. Például egy olyan szkriptet fogok ütemezni, amely exportálja az Office 365 felhasználók MFA állapotjelentését.
 
PowerShell
| 
 1 
 | 
  c:\GetMFAStatus.ps1  
 | 
Ha az elérési út üres szóközt tartalmaz, akkor azt idézőjelekkel kell körülvenni.
5. A konfigurálás után feltételeket adhat meg annak meghatározására, hogy a feladatot futtassa. A feladat nem fog lefutni, ha bármely itt megadott feltétel nem igaz.

6.A Beállítások lapon további speciális beállításokat adhat meg a feladat végrehajtásának vezérléséhez.

Végül kattintson az Ok gombra az ütemezett parancsfájl létrehozásához.
Az ütemezett parancsfájl az ütemezésnek megfelelően, az elvárásoknak megfelelően, minden probléma nélkül fog futni. Ha ellenőrizni szeretné a szkript végrehajtását, akkor a jobb gombbal a feladat nevére kattintva a Futtatás gombra kattinthat.

Paraméterekkel rendelkező PowerShell szkript ütemezése a Feladatütemezőből
Ha a PowerShell szkriptet paraméterekkel szeretné ütemezni, használja az alábbi formátumot.           Â
PowerShell
| 
 1 
 | 
  Script path -Param 1 Value1 -Param2 “Value 2”  
 | 
Például, Automatizálni fogom az egyik PowerShell szkriptünket: Export Office 365 Users MFA status report
Az ütemezés során a hitelesítő adatokat kifejezetten átadhatjuk paraméterként az alábbiak szerint:
PowerShell
| 
 1 
 | 
  C:\GetMFAStatus.ps1 -UserName “XXX XX” -Password ****  
 | 
Ha a paraméterértékben üres szóköz van, az értékeket idézőjelbe kell tenni.
Ha switch paramétert akar átadni, akkor az alábbi szintaxist használhatja.
PowerShell
| 
 1 
 | 
 Â C:\GetMFAStatus.ps1 -EnabledOnly  
 | 
A fenti szkript exportálja az Office 365 azon felhasználók MFA státuszát, akiknek az MFA státusza engedélyezett. Itt az -EnabledOnly egy kapcsoló paraméter.
Még több Office 365-tel kapcsolatos PowerShell szkriptet talál az O365Reports.com blogon.
2. módszer: PowerShell szkript ütemezése a feladatütemezőből a PowerShell használatával
A felhasználói felület helyett a PowerShell cmdleteket is használhatja a PowerShell szkriptet automatizáló ütemezési feladat létrehozásához. Ez a következő lépéseket foglalja magában,
1.Define time for scheduler
2.Set Actions to be performed during execution
3.Save scheduler
Define Time for Scheduler:
New-SchdeuledTaskTrigger létrehoz egy ütemezett feladatindító objektumot. Ezzel a cmdlet segítségével megadhatja egy feladat indítási idejét vagy egy feladat napi vagy heti többszöri indítását.
PowerShell
| 
 1 
 | 
  $Time=New-ScheduledTaskTrigger -At 4.00PM -Once  
 | 
A fenti cmd létrehoz egy ütemezett feladattriggert, amely délután 4 órakor indul és egyszer fut.
PowerShell
| 
 1 
 | 
 Â Â $Time=New-ScheduledTaskTrigger -At 4.00PM -Daily -DaysInterval 2 
 | 
A fenti cmd létrehoz egy ütemezett feladattriggert, amely minden második nap 16:00-kor indul
Set Actions to be Performed During Execution:
New-SchdeuledTaskAction a Task Scheduler futtatásakor végrehajtandó műveleteket jelenti. Egy feladatnak egyetlen művelete vagy legfeljebb 32 művelete lehet. Ha több műveletet ad meg, a Feladatütemező szekvenciálisan hajtja végre a feladatot.    Â
Ez a parancs megnyitja a PowerShellt, és a könyvtárat C:/Scripts-re változtatja, majd meghívja az MFAStatus.ps1 szkriptet.
Az ütemező mentése:
Regiszter-ScheduledTask az ütemezett feladatot egy helyi számítógépre menti.
PowerShell
| 
 1 
 | 
  Register-ScheduledTask -TaskName “Schedule MFA Status Report” -Trigger $Time -Action $Action -RunLevel Highest  
 | 
A fenti cmd elment egy ütemezett feladatot “Schedule MFA Status Report” névvel a gyökérmappában. A mentett feladat az $Action és $Time változók által megadott, előre létrehozott művelet és kiváltó értékeket használja.
Használati esetek:
A Feladatütemező használatával be lehet ütemezni egy PowerShell szkriptet időszakos futtatására. Így nem kell naponta/héthetente/havonta kézzel futtatnia egy szkriptet. Az interneten több olyan szkript is elérhető, amelyek ütemezőbarátok (a hitelesítő adatok paraméterként átadhatók ahelyett, hogy a szkriptben tárolnánk őket). Itt adtam néhány példát.
- Az Office 365 felhasználók bejelentkezési előzményeinek nyomon követése – Az ellenőrzési napló több mint 90 napig tartása
 - Az Office 365 felhasználók MFA státuszának időszakos jelentése
 - Az Office 365 felhasználók utolsó bejelentkezési idejének jelentése
 - Az Office 365 postafiókok engedélyezési jelentése
 - Az Office 365 felhasználók licencjelentésének jelentése
 - Az Office 365 felhasználók licencjelentésének ütemezése
 - Az Office 365 felhasználók licencjelentésének ütemezése. Elosztói csoporttagság PowerShell szkript
 - Dinamikus elosztói csoporttagság PowerShell szkript
 - Periodikus jelentés az Office 365 felhasználók utolsó tevékenységéről jelentés
 - Elrendezés Office 365 felhasználók bejelentkezési előzményei PowerShell jelentés
 - Elrendezés megosztott postafiók engedélyek jelentés időszakos exportálása
 - Elrendezés nem-tulajdonos postafiók hozzáférési jelentés
 - Office 365 felhasználók jelszavának lejárati jelentése
 
Ebben a blogban, láttuk, hogyan automatizálhatunk egy PowerShell szkriptet a Feladatütemező segítségével.Ön melyik megközelítést részesíti előnyben, ha ütemezésről van szó – GUI vagy PowerShell? Ossza meg velünk a hozzászólások között.