Így hozhatja ki a legtöbbet a Windows PowerShellből a parancsfájl-végrehajtási házirend engedélyezésével.
Az iPowerShell alapértelmezés szerint lehetővé teszi a parancsok (parancsmagok) futtatását a konzolon keresztül. Egy szkript végrehajtásához létrehozhat egy jegyzettömbfájlt a szkriptkóddal, elmentheti .ps1 fájlkiterjesztéssel, és végrehajthatja a PowerShell-konzolon keresztül. A szkriptet közvetlenül a konzolra is beillesztheti végrehajtás céljából.
Ha azonban először hajt végre egy szkriptet a PowerShell segítségével, akkor a „futó szkript le van tiltva” hibaüzenetet fog kapni. Alapértelmezés szerint a parancsfájl-végrehajtás a PowerShellben le van tiltva biztonsági intézkedésként, amely megakadályozza a rosszindulatú szkriptek futtatását a rendszeren. Itt bemutatjuk a szkript végrehajtási szabályzatának engedélyezésének két módját a Windows PowerShell rendszeren.
Meglévő végrehajtási szabályzat ellenőrzése
Használhat PowerShell-parancsmagot az aktuális végrehajtási házirend lekéréséhez. A jelenlegi végrehajtási szabályzat ismerete szükséges ahhoz, hogy megtudja, szüksége van-e az irányelv módosítására vagy sem.
Az aktuális felhasználóhoz tartozó jelenlegi végrehajtási szabályzat lekérése:
- Nyissa meg a Windows PowerShellt rendszergazdaként.
- Írja be a következő parancsot a PowerShell-konzolba, és nyomja meg az Enter billentyűt:
kap-végrehajtási politika
- Mivel hibát észlelt a szkript végrehajtásakor, a visszatérés valószínűleg megjelenik Korlátozott mint a jelenlegi végrehajtási szabályzata.
- Ha meg kell tekintenie az összes támogatott hatókör végrehajtási szabályzatát:
kap-végrehajtási politika -lista
Módosítania kell a végrehajtási házirendet RemoteSigned-re, hogy a helyi szkriptek hiba nélkül futhassanak. A végrehajtási házirendet a Beállítások alkalmazásban és a PowerShellben módosíthatja.
A PowerShell végrehajtási házirend engedélyezése a Beállítások alkalmazás segítségével
Módosíthatja és beállíthatja a PowerShell végrehajtási házirendjét Távoli aláírt értékre a Beállítások alkalmazás segítségével. Mindössze annyit kell tennie, hogy módosítsa a PowerShell-beállításokat a fejlesztők részben, hogy módosítsa a végrehajtási házirendet, hogy engedélyezze a PowerShell-szkript végrehajtását.
A végrehajtási szabályzat módosítása a Beállítások segítségével:
- nyomja meg Win + I megnyitni Settings.
- Nyissa meg a Adatvédelem és biztonság fület a bal oldali ablaktáblában.
- Ezután kattintson a gombra A fejlesztőknek.
- Kattintson a kibontásához PowerShell szakasz.
- Kapcsolja a kapcsolót állásba módosítsa a végrehajtási házirendet, hogy lehetővé tegye a helyi PowerShell-szkriptek aláírás nélküli futtatását - Aláírás megkövetelése távoli szkriptekhez.
- Ha kész, nyissa meg a PowerShellt, és írja be a get végrehajtási politika, és nyomja meg Belép. Az aktuális felhasználó végrehajtási házirendje most a következőre van állítva Távoli aláírt.
- Ha le kell tiltania a végrehajtási házirendet, kapcsolja át a PowerShell kapcsolót, és állítsa állásba Ki.
A szkriptek futtatásának engedélyezése a PowerShellben a PowerShell használatával
Használhatja a PowerShell-parancsmag hogy a végrehajtási házirendet RemoteSigned értékre állítsa. A parancssori felület megkönnyíti a végrehajtási szabályzat gyors megváltoztatását a Beállítások alkalmazás használata nélkül.
Ezenkívül a Beállítások alkalmazás csak a RemoteSigned végrehajtási házirendet tudja engedélyezni vagy letiltani. Míg a PowerShell lehetővé teszi más házirendek és hatókörök beállítását is.
A végrehajtási szabályzat PowerShell használatával történő módosítása:
- Nyissa meg a PowerShellt rendszergazdaként.
- A PowerShell ablakban írja be a következő parancsot, és nyomja meg a gombot Belép:
Készlet-ExecutionPolicy RemoteSigned
- Ha a rendszer kéri, nyomja meg a gombot A a művelet megerősítéséhez. Ez beállítja a Távoli aláírt végrehajtási szabályzat minden felhasználó számára. Ha be szeretné állítani a végrehajtási szabályzatot a Jelenlegi felhasználó csak használja a Scope paramétert, majd a felhasználónevet.
- Például a Távoli aláírt végrehajtási szabályzata Jelenlegi felhasználó, használja a következő parancsot:
Készlet-ExecutionPolicy RemoteSgined -Hatály Jelenlegi felhasználó
- Cserélje ki Jelenlegi felhasználó a fenti parancsban más felhasználókkal (Scope) az Ön igényei szerint.
A parancsfájl-végrehajtási házirend eltávolítása a PowerShell használatával
Ha le szeretné tiltani a parancsfájl végrehajtását, állítsa a végrehajtási házirendet értékre Határozatlan segítségével the Set_ExecutionPolicy cmdlet. Ez egy alapértelmezett állapot, és megakadályozza, hogy a PowerShell szkripteket hajtson végre.
A szkript végrehajtásának letiltása PowerShell használatával:
- Nyissa meg a PowerShellt emelt szintű engedéllyel.
- Ezután írja be a következő parancsot, és nyomja meg az Enter billentyűt a szkript végrehajtásának letiltásához az összes felhasználó számára:
Készlet- Végrehajtási politika határozatlan
- A fenti parancs beállítja az alapértelmezett végrehajtási házirendet (undefined) az összes felhasználó számára. Ha egy adott hatókörhöz szeretné letiltani a szkript végrehajtását, használja a következő parancsot:
Készlet- Végrehajtási politika határozatlan -Scope CurrentUser
- A fenti parancs letiltja a szkript végrehajtását Jelenlegi felhasználó.
A végrehajtási politikák és alkalmazási körök megértése
Egyszerűen fogalmazva, a PowerShell végrehajtási szabályzata egy olyan házirend, amely szabályozza, hogy a PowerShell hogyan hajtsa végre a konfigurációs fájlokat és szkripteket. A cél az, hogy megakadályozzák a felhasználókat abban, hogy véletlenül rosszindulatú szkripteket futtassanak. A hét PowerShell végrehajtási szabályzat az Alapértelmezett, Korlátozott, Távoli aláírt, AllSigned, Korlátlan, Áthidalás és Undefined.
Az alábbi táblázat röviden ismerteti az összes PowerShell végrehajtási szabályzatot:
Végrehajtási politika |
Végrehajtás |
Alapértelmezett |
Beállítja az alapértelmezett végrehajtási házirendet Korlátozottra Windows Client és RemoteSigned Windows Server rendszeren. |
AllSigned |
Lehetővé teszi a kiadó által aláírt szkriptek végrehajtását. |
Kitérő |
Szkriptek korlátlan végrehajtása nagyobb alkalmazásokhoz. |
Távoli aláírt |
Lehetővé teszi a helyileg írt szkript végrehajtását. Az internetről letöltött szkriptekhez digitális aláírásra van szükség. |
Korlátozott |
Nem engedélyezi a parancsfájl végrehajtását, csak az egyes PowerShell-parancsokat. |
Határozatlan |
Beállítja a végrehajtási házirendet Korlátozott Windows-kliensekre és Távoli aláírt értékre Windows Server esetén. |
Korlátlan |
Az internetről letöltött szkriptek aláírás nélküli végrehajtásának engedélyezése figyelmeztetéssel. |
Végrehajtási politika hatálya
Beállíthat végrehajtási házirendet egy adott hatókörhöz a PowerShellben. Az öt végrehajtási irányelv hatóköre az MachinePolicy, UserPolicy, Process, CurrentUser, és LocalMachine.
Az alábbi táblázat röviden ismerteti az összes végrehajtási irányelv hatókörét:
Végrehajtási politika hatálya |
Végrehajtás |
UserPolicy |
Csoportházirend konfigurálva az aktuális felhasználó számára. |
Machine Policy |
Csoportházirend konfigurálva minden felhasználó számára. |
CurrenUser |
Az aktuális felhasználó számára konfigurálva és a HKEY_CURRENT_MACHINE beállításkulcsban tárolva. |
LocalMachine |
Minden felhasználó számára konfigurálva, és a HKEY_CURRENT_MACHINE beállításkulcsban tárolva. |
Folyamat |
Az aktuális PowerShell-munkamenetet érinti, és a munkamenet bezárásakor automatikusan törlődik. |
PowerShell Script végrehajtási házirend hozzáadása vagy eltávolítása Windows rendszeren
A PowerShell parancsfájl-végrehajtása alapértelmezés szerint le van tiltva a Windows-klienseknél, és a Windows-kiszolgálóhoz RemoteSigned-re van állítva. A hatékony felhasználók azonban módosíthatják a végrehajtási házirendeket, hogy helyi, aláírt és aláíratlan PowerShell-parancsfájlokat fussanak.
Alternatív megoldásként megkerülheti a PowerShell-végrehajtási házirendet úgy, hogy beilleszti a szkriptet egy PowerShell-konzolba, vagy ECHO-t küld a szkriptnek a PowerShell szabványos bemenetére. Ez akkor hasznos, ha a végrehajtási házirend megváltoztatása nélkül szeretne parancsfájlokat végrehajtani.