Weboldal keresés

Az automatizálás elsajátítása: PowerShell-szkript futtatása a Feladatütemezőből, mint egy profi


5 lépés a PowerShell-szkript futtatásának elsajátításához a Feladatütemezőből

Képzelje el ezt: Egy késő este egy fontos projekten dolgozik, amely automatizálást igényel. Ön PowerShell-szkripteket használt különböző feladatok automatizálására, és most szüksége van egy módra, amellyel biztosíthatja, hogy ezek a szkriptek előre meghatározott ütemezés szerint fussanak. A szoftverfejlesztés szakértőjeként tudja, hogy a Windows Feladatütemező pontosan ezen a problémán segíthet. Beindítja kedvenc keresőmotorját, és beírja a következőt: hogyan kell futtatni egy PowerShell-szkriptet a Feladatütemezőből. Kíváncsisága felkelt, és készen áll, hogy belemerüljön az ütemezett automatizálás világába.

Ebben a cikkben a PowerShell-szkriptek Feladatütemezőből történő futtatásának lépésről lépésre történő folyamatát tárjuk fel. Mindenre kiterjedünk, a szkript előkészítésétől a feladat létrehozásáig és konfigurálásáig - mindezt azzal a szándékkal, hogy segítsünk elsajátítani ezt a hatékony eszközt.

1. lépés: Készítse elő a PowerShell-szkriptet

Mielőtt elkezdené ütemezni a PowerShell-szkriptet, rendelkeznie kell vele. Ha már létrehozott egy szkriptet, mindenképpen mentse el .ps1 fájlként. Ez lehetővé teszi a Task Scheduler számára, hogy PowerShell-szkriptként ismerje fel.

_Tipp: Ha a szkript rendszergazdai jogosultságokat igényel, adja hozzá a következő sort a szkript elejéhez:_

#Requires -RunAsAdministrator

Ez arra kéri a felhasználót, hogy erősítse meg a szkript rendszergazdaként való futtatását, amikor manuálisan hajtja végre. A Task Scheduler azonban figyelmen kívül hagyja ezt az utasítást, és a parancsfájlt a feladatbeállításokban megadott engedélyekkel futtatja (erről később).

2. lépés: Állítsa be a PowerShell végrehajtási házirendjét

Alapértelmezés szerint a Windows biztonsági okokból korlátozza a PowerShell-parancsfájlok végrehajtását. A szkriptnek a Feladatütemezőből való futtatásához be kell állítania a megfelelő végrehajtási házirendet. Az aktuális házirendet a következő paranccsal ellenőrizheti:

Get-ExecutionPolicy

A végrehajtási házirend megváltoztatásához nyisson meg egy emelt szintű PowerShell-munkamenetet, és használja a következő parancsot:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Ez a házirend lehetővé teszi helyileg létrehozott szkriptek vagy megbízható megjelenítőktől származó aláírt szkriptek futtatását. A végrehajtási szabályzatokkal kapcsolatos további információkért tekintse meg a hivatalos [Microsoft-dokumentációt] (https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy).

3. lépés: Hozzon létre egy új ütemezett feladatot

Most, hogy a szkript és a rendszer készen áll, ideje új feladatot létrehozni a Feladatütemezőben.

1. Nyissa meg a Feladatütemezőt: Nyomja meg a Win + R billentyűket, írja be a taskschd.msc billentyűt, és nyomja le az Enter billentyűt.
2. A jobb oldali ablaktáblában kattintson a Feladat létrehozása lehetőségre.

4. lépés: Konfigurálja az ütemezett feladatot

A Feladat létrehozása ablakban a következőképpen kell konfigurálnia a feladat beállításait:

1. Általános lap: Adjon leíró nevet a feladatnak, és adjon hozzá egy opcionális leírást. Jelölje be a Futtatás a legmagasabb jogosultságokkal lehetőséget, ha a szkript rendszergazdai hozzáférést igényel.
2. Triggerek lap: Kattintson az Új elemre, és állítsa be, hogy mikor és milyen gyakran szeretné futtatni a szkriptet (pl. naponta, hetente vagy esemény alapján). . Szükség esetén több triggert is hozzáadhat.
3. Műveletek lap: Kattintson az Új gombra, és állítsa be a következő paramétereket:
- Művelet: Program indítása
- Program/script: powershell. exe
- Argumentumok hozzáadása (opcionális): -Fájl C:PathToYourScript.ps1 -ExecutionPolicy Bypass
- Indítás (nem kötelező) : C:PathToYourScriptDirectory
4. Feltételek lap: Módosítsa azokat a feltételeket, amelyek mellett a feladatnak futnia kell vagy nem (pl. csak akkor, ha AC táp van csatlakoztatva).
5. Beállítások lap: Adja meg a további beállításokat, például a feladat korábbi példányának leállítását vagy a feladat újraindítását, ha az sikertelen.

Kattintson az OK gombra a feladat mentéséhez.

5. lépés: Tesztelje ütemezett feladatát

Az újonnan létrehozott ütemezett feladat tesztelése elengedhetetlen. Ehhez keresse meg a feladatot a Feladatütemező könyvtárban, kattintson rá jobb gombbal, és válassza a Futtatás parancsot. A feladatnak végre kell hajtania a PowerShell-szkriptet a megadott beállításoknak megfelelően. Ha a szkript nem a várt módon fut, ellenőrizze a feladat konfigurációját és a szkriptfájlt, hogy nincs-e benne probléma vagy hiba.

Ezzel az öt lépéssel Ön a PowerShell-szkriptek Feladatütemezőből való futtatásának mestere. A szoftverfejlesztés szakértőjeként ez az újonnan megszerzett tudás kétségtelenül jól fogja szolgálni Önt minden jövőbeni automatizálási projektjében. Tehát folytassa magabiztosan a késő esti projektet, tudva, hogy a PowerShell és a Feladatütemező áll a háta mögött.

Python-szkriptek végrehajtásának ütemezése cron használatával

Speciális feladatütemező Windows 10

Hogyan hajthatok végre egy PowerShell-szkriptet a Feladatütemezővel?

Ha PowerShell-szkriptet szeretne végrehajtani a Feladatütemezővel, kövesse az alábbi lépéseket:

1. Hozzon létre egy PowerShell-szkriptet: Mentse el a szkriptet .ps1 fájlkiterjesztéssel, például MyScript.ps1.

2. Feladatütemező megnyitása: Nyomja meg a Win + R billentyűkombinációt a Futtatás párbeszédpanel megnyitásához, írja be a taskschd.msc kifejezést (idézőjelek nélkül), és nyomja meg az Enter billentyűt.

3. Új feladat létrehozása: A Feladatütemező ablakban kattintson a Feladat létrehozása lehetőségre a jobb oldali Műveletek panelen.

4. Általános lap: Adja meg a feladat nevét és leírását. Ha szükséges, ellenőrizze a Futtatás, hogy a felhasználó be van-e jelentkezve és a Futtatás legmagasabb jogosultságokkal opciókat.

5. Triggerek lap: Kattintson az Új lehetőségre, és állítsa be a kívánt ütemezést a szkripthez, például napi, heti vagy havi ütemezést.

6. Műveletek lap: Kattintson az Új lehetőségre, és válassza ki a következő beállításokat:

- Művelet: Indítson el egy programot
- Program/script: Powershell.exe
- Argumentumok hozzáadása (opcionális): -ExecutionPolicy Bypass -Fájl „C:pathtoyourMyScript.ps1 ″ (cserélje ki az elérési utat a .ps1 szkript tényleges elérési útjára)

Az Argumentumok hozzáadása mezőben az -ExecutionPolicy Bypass paraméter lehetővé teszi a szkript korlátozások nélküli futtatását, a -File pedig a szkript elérési útját adja meg. .

7. Feltételek és Beállítások lapok: Konfigurálja a feladathoz szükséges további beállításokat vagy feltételeket.

8. Kattintson az OK gombra a feladat mentéséhez. Előfordulhat, hogy a rendszer felkéri a Windows felhasználói fiók hitelesítő adatainak megadására.

A PowerShell-szkript most automatikusan végrehajtásra kerül a Feladatütemezőben megadott ütemezés szerint.

Hogyan futtathatok PowerShell-szkriptet rendszergazdaként a Feladatütemező használatával?

PowerShell-szkript futtatásához rendszergazdaként a Feladatütemező használatával, kövesse az alábbi lépéseket:

1. Nyomja meg a Windows + S billentyűt, és írja be a Feladatütemező kifejezést a keresősávba. Nyissa meg a Feladatütemező alkalmazást.

2. A Feladatütemezőben kattintson a Művelet menüre, és válassza a Feladat létrehozása parancsot.

3. A Feladat létrehozása ablak Általános lapján:
- Adjon nevet és leírást a feladatnak.
- Jelölje be a Futtatás a legmagasabb jogosultságokkal lehetőséget. hogy a feladat rendszergazdaként fusson.

4. Lépjen a Triggerek lapra, és kattintson az Új lehetőségre. Állítsa be a kívánt eseményindítót a feladathoz, például Bejelentkezéskor vagy Ütemezés szerint, és konfigurálja a trigger speciális beállításait. Kattintson az OK gombra a trigger mentéséhez.

5. A Műveletek lapon kattintson az Új elemre. Válassza ki a műveletet Program indításaként. A Program/script mezőbe írja be a powershell.exe.

6. Az argumentumok hozzáadása (nem kötelező) mezőbe írja be a következő parancsot:
"`
-ExecutionPolicy Bypass -File C:PathToYourScript.ps1
"`
Ügyeljen arra, hogy a C:PathToYourScript.ps1 helyére cserélje ki a PowerShell-szkript tényleges fájlútvonalát.

7. Kattintson az OK gombra a művelet mentéséhez.

8. Konfigurálja a többi kívánt beállítást a Feltételek és a Beállítások lapokon.

9. Kattintson az OK gombra a feladat létrehozásához. Előfordulhat, hogy a feladat mentéséhez meg kell adnia rendszergazdai hitelesítő adatait.

Most a PowerShell-szkriptnek rendszergazdaként kell futnia a Feladatütemezőben beállított triggerek alapján.

Hogyan futtathatok automatikusan egy PowerShell-szkriptet?

A PowerShell-szkript automatikus végrehajtásához a következő módszereket használhatja:

1. Windows Feladatütemező: Létrehozhat egy ütemezett feladatot a PowerShell-szkript adott időpontokban, időközönként vagy eseményekben történő futtatásához. Győződjön meg arról, hogy a szkriptet .ps1 fájlként menti.

2. Kötegelt fájl: Létrehozhat egy kötegfájlt (.bat), amely elindítja a PowerShellt, és végrehajtja a szkriptet. A kötegfájlba írja be a következő parancssort:

PowerShell.exe -ExecutionPolicy Bypass -File “C:PathToYourScript.ps1”

Cserélje le a C:PathToYourScript.ps1 elemet a szkript tényleges elérési útjával.

3. Indítási mappa: Ha azt szeretné, hogy a szkript fusson bejelentkezéskor, mentse el .ps1 fájlként, hozzon létre egy parancsikont a fájlhoz, és helyezze el a parancsikont az Indítás< mappába. mappát. Az Indítási mappa eléréséhez nyomja meg a Win + R billentyűkombinációt, írja be a shell:startup parancsot, és nyomja meg az Enter billentyűt.

4. Windows szolgáltatás: Létrehozhat egy Windows szolgáltatást a PowerShell-szkript folyamatos futtatásához a háttérben. Ennek megvalósításához szüksége lehet harmadik féltől származó eszközökre, például az NSSM-re (Non-Sucking Service Manager).

5. Csoportházirend: Ha Active Directory környezetben dolgozik, a csoportházirend segítségével telepítheti és futtathatja PowerShell-szkriptjét több számítógépen. Hozzon létre egy új csoportházirend-objektumot (GPO), és módosítsa a beállításait úgy, hogy a szkript szerepeljen a Számítógép konfigurációja > Házirendek > Windows-beállítások > Szkriptek (Indítás/leállítás) vagy a Felhasználói konfiguráció > Házirendek > Windows-beállítások részben. > Szkriptek (Bejelentkezés/Kijelentkezés).

Ne felejtse el mindig alaposan tesztelni a szkripteket, mielőtt automatikusan telepíti őket, különösen olyan érzékeny környezetekben, mint az Active Directory tartományok.

Hogyan futtathatom a PowerShellt a Feladatkezelőből?

A PowerShell végrehajtásához a Feladatkezelőből a PowerShell parancssori környezetében, kövesse az alábbi lépéseket:

1. Nyomja meg a Ctrl + Shift + Esc billentyűket a Feladatkezelő megnyitásához.
2. Kattintson a Fájl menüre, és válassza az Új feladat futtatása lehetőséget. >.
3. Az Új feladat létrehozása ablakban írja be a powershell szót a Megnyitás mezőbe.
4. Jelölje be. a Feladat létrehozása rendszergazdai jogosultságokkal melletti négyzetet, ha magasabb szintű engedélyekre van szüksége a PowerShell-munkamenethez.
5. Kattintson az OK gombra, vagy nyomja meg az Enter< billentyűt..

A PowerShell új példánya elindul, és megkezdheti a PowerShell parancssori szkriptek és parancsok végrehajtását.

Hogyan konfigurálhatom a Feladatütemezőt úgy, hogy a parancssor használatával automatikusan futtasson egy PowerShell-szkriptet egy adott időpontban vagy aktivált eseményben?

A schtasks.exe segédprogram segítségével úgy konfigurálhatja a Feladatütemezőt, hogy egy PowerShell-szkriptet automatikusan futtasson egy adott időpontban vagy aktivált eseményben a parancssor használatával. A feladat konfigurálása előtt győződjön meg arról, hogy a PowerShell-szkriptet .ps1-fájlként mentette.

Kövesse az alábbi lépéseket ütemezett feladat létrehozásához:

1. Nyisson meg egy adminisztrátori jogosultságokkal rendelkező parancssort. Ehhez kattintson a jobb gombbal a Parancssor ikonra, és válassza a Futtatás rendszergazdaként lehetőséget.

2. Használja a következő sablont ütemezett feladat létrehozásához a schtasks.exe segédprogrammal:

schtasks /create /tn “TaskName” /tr “powershell.exe -NoProfile -ExecutionPolicy Bypass -File FullScriptPath” /sc ScheduleType /st StartTime /sd StartDate /ed EndDate

Cserélje ki a helyőrzőket a kívánt értékekkel:

- TaskName: A feladat egyedi neve.
- FullScriptPath: A teljes elérési út PowerShell-szkriptfájl (.ps1).
- ScheduleType: A feladat ütemezési típusa. Néhány példa: PERC, ÓRA, NAPI, HETI vagy EGYSZER.
- Kezdési idő: A feladat indításának időpontja (ÓÓ:mm formátum).
- Kezdődátum: Az a dátum, amikor a feladatnak el kell kezdődnie (MM/nn/yyyy formátum).
- EndDate<: A dátum, amikor a feladatnak le kell állnia (hh/nn/éééé formátum). Távolítsa el ezt a beállítást, ha a feladatnak nincs befejezési dátuma.

Példa:

schtasks /create /tn “MyPowerShellTask” /tr “powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:ScriptsMyScript.ps1” /sc DAILY /st 12:30 /sd 02/01/2023 /ed 03/01/2023

Ez a parancs létrehoz egy MyPowerShellTask nevű ütemezett feladatot, amely a C:ScriptsMyScript.ps1 fájlt naponta 12:30-kor futtatja, 2023. február 1-től márciusig. 2023. 1.

3. Nyomja meg az Enter billentyűt a parancs végrehajtásához. Egy üzenetnek kell megjelennie, amely jelzi, hogy a feladat sikeresen létrejött.

Ne feledje, hogy a rendszergazdai jogosultságokkal létrehozott feladatokhoz a feladatot futtató felhasználónak rendelkeznie kell a szükséges jogosultságokkal.

Az ütemezett feladatok ellenőrzéséhez vagy kezeléséhez használja a schtasks segédprogramot különböző beállításokkal, például /query, /delete és /change . . Ha további információra van szüksége ezen beállítások használatáról, írja be a schtasks /? parancsot a parancssorba.

Melyek a szükséges lépések vagy bevált gyakorlatok a PowerShell-parancsfájlok zökkenőmentes végrehajtásához a Task Schedulerből a parancssori környezetben?

A Task Scheduler PowerShell-parancsfájlok zökkenőmentes végrehajtásának biztosításához parancssori környezetben kövesse az alábbi bevált módszereket:

1. Tiszta és hatékony kód írása: Győződjön meg arról, hogy PowerShell-szkriptje jól strukturált, karbantartható és teljesítményre optimalizált. Optimalizálja kódját a szükségtelen hurkok eltávolításával, a folyamatok használatának csökkentésével, és ahol lehetséges, párhuzamos feldolgozást alkalmaz.

2. Végrehajtási házirend beállítása: Előfordulhat, hogy a PowerShell alapértelmezés szerint nem engedélyezi a szkriptek végrehajtását. Használja a Set-ExecutionPolicy parancsmagot a végrehajtási házirend módosításához, hogy lehetővé tegye a szkript futtatását. Beállíthatja például RemoteSigned vagy Unrestricted értékre, a biztonsági követelményektől függően.

Set-ExecutionPolicy RemoteSigned

3. Feladatütemező feladat létrehozása: Hozzon létre egy új feladatot a Feladatütemezőben az Alapfeladat létrehozása vagy a Feladat létrehozása kiválasztásával. Adjon meg egy nevet és leírást. , triggerek és műveletek a feladathoz szükség szerint.

4. Művelet konfigurálása a PowerShell-szkript futtatásához: Az új feladat Műveletek lapján válassza a Program indítása lehetőséget, és adja meg a következő adatokat:

- Program/script: Írja be a powershell.exe fájlt vagy a PowerShell végrehajtható fájl teljes elérési útját.

- Argumentumok hozzáadása (opcionális): Írja be: -ExecutionPolicy Bypass -Fájl „Pathtoyourscript.ps1″. Ez megkerüli az adott parancsfájl végrehajtási szabályzatát, és végrehajtja a megadott útvonalon található parancsfájlt.

5. Futtatás a legmagasabb jogosultságokkal: Az Általános lapon jelölje be a Futtatás legmagasabb jogosultságokkal négyzetet, ha a szkript rendszergazdai jogosultságokat igényel.

6. Hibakezelés és naplózás: Valósítsa meg a megfelelő hibakezelést a szkriptben, a kivételek kezelésére try-catch blokkokkal. Ezenkívül használja a Write-Verbose és Write-Debug parancsmagot, hogy részletes információkat biztosítson a szkript végrehajtása során. A könnyebb hibaelhárítás érdekében irányítsa át a kimenetet a naplófájlokba.

.script.ps1 -Verbose *>&1 | Out-File -FilePath “Pathtologfile.log”

7. Tesztelje le a szkriptet: A szkript ütemezése előtt győződjön meg arról, hogy a PowerShell és a Parancssor környezetből is sikeresen fut. Tesztelje különböző felhasználói fiókokkal és biztonsági környezetekkel, hogy megbizonyosodjon arról, hogy az elvárásoknak megfelelően működik.

Ha követi ezeket a bevált módszereket, biztosíthatja, hogy a PowerShell-parancsfájlok zökkenőmentesen fussanak, amikor a Feladatütemezőből futtatják őket parancssori környezetben.

Hogyan háríthatom el a gyakori problémákat, például a helytelen fájlútvonalakat, engedélyeket vagy parancsfájl-végrehajtási házirendeket, amikor PowerShell-szkriptet futtatok a Feladatütemezőből a parancssorban?

A PowerShell-szkriptnek a Task Schedulerből a parancssoron keresztüli futtatása során felmerülő gyakori problémák elhárítása magában foglalja a helytelen fájl elérési utak, engedélyek és parancsfájl-végrehajtási házirendek ellenőrzését és kijavítását. Íme néhány lépés a problémák azonosításához és megoldásához:

1. Helytelen fájl útvonalak: Győződjön meg arról, hogy a PowerShell-szkript fájl elérési útja helyes. Ellenőrizze még egyszer az elérési utat, és használjon idézőjeleket, ha az elérési út szóközt tartalmaz. Például:

powershell.exe -File “C:Path To Your ScriptYourScript.ps1”

2. Engedélyek: Győződjön meg arról, hogy a szkriptet végrehajtó fiók rendelkezik a szükséges engedélyekkel a szkripthez és minden más fájlhoz vagy erőforráshoz, amelyre szüksége van.

- Az engedélyek ellenőrzéséhez kattintson a jobb gombbal a fájlra vagy mappára, válassza a „Tulajdonságok” lehetőséget, majd kattintson a „Biztonság” fülre.
- Ha a szkriptet futtató fiók nem rendelkezik megfelelő jogosultságokkal, vagy adja meg a szükséges engedélyeket. engedélyeket, vagy módosítsa a Feladatütemezőben használt fiókot.

3. Parancsfájl-végrehajtási házirend: Előfordulhat, hogy a PowerShell alapértelmezés szerint nem engedélyezi a szkriptek végrehajtását. Módosíthatja a végrehajtási szabályzatot, hogy engedélyezze a szkript futását.

- Az aktuális végrehajtási házirend ellenőrzéséhez nyisson meg egy PowerShell-ablakot, és írja be:

Get-ExecutionPolicy

- Ha a házirend beállítása „Korlátozott”, a következő paranccsal módosíthatja (adminisztrátori jogosultságokkal):

Set-ExecutionPolicy RemoteSigned

4. A szkript futtatása a „-NoProfile” kapcsolóval: Ez megakadályozza a felhasználói profilok betöltését, ami ütközéseket vagy hibákat okozhat. Adja hozzá a „-NoProfile” kapcsolót a parancssorba az alábbiak szerint:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File “C:Path To Your ScriptYourScript.ps1”

5. Tesztelje le a szkriptet és a feladatot: Futtassa manuálisan a PowerShell-szkriptet és a feladatot a Feladatütemezőben, hogy ellenőrizze, a várt módon működnek-e. Ez segít azonosítani a tényleges szkript vagy feladat beállításával kapcsolatos hibákat vagy problémákat.

Ha követte a fenti lépéseket, és továbbra is problémákba ütközik, fontolja meg a Feladatütemező naplóiban, hogy keressen konkrét hibaüzeneteket, vagy kérjen segítséget a PowerShell-szkriptekkel foglalkozó online fórumoktól vagy közösségektől.

Kapcsolódó cikkek