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.