PowerShell ExecutionPolicy magyarázata
Böngésszen a bejegyzések témái között
- Mi az a PowerShell ExecutionPolicy?
- Rendelkezésre álló végrehajtási szabályzatok
- A végrehajtási politika hatálya és elsőbbsége
- A jelenlegi PowerShell végrehajtási szabályzat beszerzése
- A PowerShell ExecutionPolicy beállítása
- Következtetés
- Egyéb hasznos útmutatók
- További források és referenciák
Mi az a PowerShell ExecutionPolicy?
Az ExecutionPolicy a PowerShellben egy biztonsági funkció, amely szabályozza, hogy a PowerShell hogyan töltse be a konfigurációs fájlokat és futtassa a parancsfájlokat. Az ExecutionPolicy szolgáltatásai segítenek megakadályozni, hogy a PowerShell rosszindulatú parancsfájlokat futtasson.
Beállíthatja a végrehajtási házirendet számítógéphez, felhasználóhoz vagy munkamenethez. A Set-ExecutionPolicy A parancsmag használható az ExecutionPolicy beállítására. A PowerShell.exe parancsnak van egy ExecutionPolicy paramétere is, amellyel beállíthatja a Powershell ExecutionPolicy-t.
Ebben az útmutatóban megismerheti a PowerShell végrehajtási szabályzatok különböző típusait. Azt is megtanulja, hogyan kell használni a Set-ExecutionPolicy és a PowerShell.exe -ExecutionPolicy parancsokat.
Rendelkezésre álló végrehajtási szabályzatok
Ez a szakasz ismerteti a PowerShellben beállítható különféle végrehajtási politikákat, és azt, hogy mindegyik mit tesz lehetővé.
Korlátozott
- Ez az alapértelmezett végrehajtási házirend a Windows 8, Server 2012 és újabb rendszerekben.
- Megakadályozza a PowerShell konfigurációs fájlok (.ps1xml), a modul szkriptfájlok (.psm1) és a Windows PowerShell-profilok (.ps1) végrehajtását
- Engedélyezi az egyes PowerShell-parancsokat, de letiltja a parancsfájlokat
AllSigned
Az AllSigned ExecutionPolicy beállításakor a PowerShell:
- Minden szkriptet futtat
- Megköveteli, hogy a szkript futtatásának engedélyezése előtt alá kell írnia egy megbízható kiadónak. Ez magában foglalja a helyi számítógépen írt szkripteket is
- Megerősítést kér egy olyan kiadótól származó szkript futtatása előtt, amelyet nem erősített meg, hogy megbízható-e
- Aláírt, de rosszindulatú kódokat futtathat
Távoli aláírt
Távoli aláírt végrehajtási szabályzat:
- Lehetővé teszi a szkriptek futtatását
- Megköveteli, hogy az internetről letöltött összes szkriptet digitálisan alá kell írnia egy megbízhatóként megadott kiadónak. Ez magában foglalja az e-mailben és azonnali üzenetküldő platformokon kapott szkripteket.
- Nem szükséges a helyi számítógépen írt szkriptek digitális aláírása
- Lehetővé teheti más forrásokból származó rosszindulatú szkriptek futtatását
Korlátlan
- Lehetővé teszi a hozzá nem rendelt szkriptek végrehajtását
- Figyelmeztet, mielőtt végrehajt egy szkriptet az internetről
- Kártékony kódok vagy szkriptek futtatásának kockázata
Kitérő
Az Execution Policy megkerülésével:
- Nincs letiltott szkript. Nem ad figyelmeztetést is.
Meghatározatlan
- Azt jelenti, hogy nincs ExecutionPolicy meghatározva
- A hatályos végrehajtási politika korlátozott (alapértelmezett)
A végrehajtási politika hatálya és elsőbbsége
A PowerShell végrehajtási szabályzatot a következőkre alkalmazhatja:
LocalMcachine : Csak az aktuális felhasználókat érinti. Ennek van a legkevesebb elsőbbsége
Jelenlegi felhasználó : A végrehajtási házirend csak az aktuális felhasználót érinti. Elsőbbséget élvez LocalMcachine de alacsonyabb prioritása van Folyamat .
Folyamat : Csak az aktuális munkamenetre vonatkozik. A legmagasabb elsőbbséget élvezi.
A jelenlegi PowerShell végrehajtási szabályzat beszerzése
A jelenlegi PowerShell ExecutionPolicy megtekintéséhez futtassa az alábbi parancsot:
|_+_|
Az összes hatókör ExecutionPolicy-készletének megtekintéséhez használja ezt a parancsot:
pattogatott kukorica idő nézése a chromecaston|_+_|
A végrehajtási szabályzatot is beszerezheti a hatókör alapján. Íme néhány példa parancs:
|_+_|A PowerShell ExecutionPolicy beállítása
Ahogy a bevezetőben említettem, az ExecutionPolicy-t a Set-ExecutionPolicy parancsmaggal állíthatja be. Használhatja a PowerShell.exe -ExecutionPolicy parancsot is.
Végrehajtási házirend beállítása a Set-ExecutionPolicy segítségével
A Set-ExecutionPolicy parancsmag szintaxisa a következő:
|_+_|Példaként a Végrehajtási szabályzat beállításához Távoli aláírt használja az alábbi parancsot:
|_+_|Íme a parancs eredménye.
fallout 4 fov beállítás
A parancs nem sikerült, mert nem nyitottam meg a PowerShellt rendszergazdaként.Itt van a rendszergazdaként végrehajtott parancs:
Amint a képen látható, az új Végrehajtási Szabályzat most Távoli aláírt .
Az utolsó 2 parancsból a parancs megerősítésére kértek. A felszólítás megkerüléséhez adja meg a -Kényszerítés paraméter.
A parancs most megerősítés kérése nélkül végrehajtódik.
A -Kényszerítés paraméter különösen hasznos a szkriptelésnél. E paraméter nélkül a szkript leállhat.Alapértelmezés szerint ez a parancs végrehajtási szabályzatot állít be a következőhöz LocalMachine hatálya. Ennek megerősítéséhez futtassa az alábbi parancsot:
|_+_|
Ha be szeretné állítani, hogy a végrehajtási szabályzat egy másik hatókörre vonatkozzon, használja a - Hatály paraméter.
Az alábbi parancs a végrehajtási szabályzatot állítja be Jelenlegi felhasználó :
|_+_|
Amint az eredményből látható, Jelenlegi felhasználó politika már nem Meghatározatlan . Most van Kitérő , az utolsó paranccsal beállított házirend.
Az ExecutionPolicy beállítása a PowerShell.exe -ExecutionPolicy segítségével
Ha meg kívánja kerülni a végrehajtási házirendet a bejelentkezett munkamenethez, beállíthatja a végrehajtási házirendet az aktuális parancssorban. Ez a PowerShell.exe paranccsal érhető el.
Mielőtt példákat mondanék, íme a jelenlegi végrehajtási szabályzat:
A jelenlegi végrehajtási politika az Korlátozott . Ez azért van, mert a Folyamat hatálya élvez elsőbbséget. A megerősítéshez tekintse meg az alábbi eredményt:
Ha eszedbe jut, Korlátozott szabályzat NEM engedi meg a szkriptek futtatását.
Ez azt jelenti, hogy ha megpróbálok futtatni egy szkriptet, megtagadják a hozzáférést. Az alábbi kép egy sor parancsot és azok eredményeit mutatja. Lásd a magyarázatomat a kép alatt.
avast az összes lemezt használva
A képen látható első parancs a következő:
|_+_|Megpróbáltam futtatni egy PowerShell-szkriptet. Aztán az alábbi hibaüzenetet kaptam:
A C:PSschedule powershell exampleCreate-folders-from-text-file.ps1 fájl nem tölthető be, mert a szkriptek futtatása le van tiltva ezen a rendszeren.
Ennek az az oka, hogy a jelenlegi végrehajtási politika az Korlátozott . Nem engedi meg semmilyen szkript futtatását.
Vissza a referencia képhez. A következő sorban a következő parancsot futtattam:
|_+_|Hatékonyan ideiglenes végrehajtási szabályzatot tudok beállítani a parancssorhoz a thepowershell.exe parancs -ExecutionPolicy paraméterével. De ugyanazt a hibaüzenetet kaptam. Ennek az az oka, hogy be kell állítanom a végrehajtási szabályzatot, mielőtt meghívnám a szkriptet.
Aztán a következő sorban végrehajtottam ezt a parancsot:
|_+_|Ez beállítja az aktuális bejelentkezett munkamenet végrehajtási szabályzatát Korlátlan . Tehát amikor most futtatom a PowerShell-szkriptemet, sikeresen lefutott! Lásd a fenti referenciaképet.
A legutolsó elemzésből ez a következő: A Powershell ExecutionPolicy-t beállíthatja az aktuális munkamenethez a Powershell.exe -ExecutionPolicy segítségével. De a parancsfájl meghívása előtt először le kell futtatnia a parancsot.Annak megerősítésére, hogy a Powershell.exe csak az aktuális munkamenethez állít be házirendet, az alábbi parancsot futtatom az aktuális munkamenetből:
|_+_|Az eredmény az Korlátlan a Jelenlegi felhasználó hatálya. Ha kijelentkezem az aktuális munkamenetemből és újra bejelentkezek. Visszaáll a Set-ExecutionPolicy paranccsal beállított házirendhez.
Következtetés
Remélem, sikerült leegyszerűsítenem a PowerShell végrehajtási szabályzatok beszerzését és beállítását. Ha bármilyen kérdése vagy észrevétele van, használja a Válaszoljon űrlapot az oldal végén.
Egyéb hasznos útmutatók
- PowerShell Not Equal Operator: Alkalmazások, példák
- Powershell for Loop magyarázata: Szintaxis és példák


