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

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.

Amellett, ha bármilyen fejlesztésre van szüksége, mint például az ütemezett jelentés e-mailben történő megkapása, vagy bármi más, csupa fül vagyunk 🙒

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.