A PowerShell Script javítása nem tölthető be, mert a szkriptek futtatása le van tiltva ennél a rendszerhibánál
Probléma: „Nem lehet betölteni, mert a szkriptek le vannak tiltva ezen a rendszeren” hibaüzenet!
Amikor megpróbáltam futtatni egy PowerShell-szkriptet a PowerShell-konzolról, ezt a hibaüzenetet kaptam: „A C:\temp\GenerateRpt.ps1 fájl nem tölthető be, mert a szkriptek futtatása le van tiltva ezen a rendszeren. További információért tekintse meg az about_Execution_Policies webhelyet a https://go.microsoft.com/fwlink/?LinkID=135170 címen.
Egyes esetekben ez egy „A fájl nincs digitálisan aláírva. Ez a szkript nem futtatható a jelenlegi rendszeren. A szkriptek futtatásával és a végrehajtási szabályzat beállításával kapcsolatos további információkért lásd: about_Execution_Policies. hiba.
Kiadó ok:
Ennek az az oka, hogy a Windows PowerShell végrehajtási házirendje úgy van beállítva, hogy megakadályozza a nem megbízható parancsfájlokat, amelyek hatással lehetnek a Windows ügyfélkörnyezetére. A végrehajtási házirendek olyan biztonsági beállítások, amelyek meghatározzák a PowerShellben futtatott parancsfájlok megbízhatósági szintjét. Az alapértelmezett végrehajtási házirend „szigorú” az ügyfél operációs rendszereken, például a Windows 10-en, megakadályozva a szkriptek futását.
A "nem tölthető be, mert a szkriptek futtatása le van tiltva ezen a rendszeren" megoldása":
Hogyan engedélyezheti a PowerShell-parancsfájlokat, és hogyan oldhatja meg a futó szkriptek letiltását ebben a rendszerhibában? A probléma megoldásához be kell állítanunk a végrehajtási házirendet a Set-ExecutionPolicy parancsmag segítségével, hogy a PowerShell-szkript fusson az adott gépen. Így engedélyezheti a PowerShell-szkript végrehajtását:
-
Nyissa meg a PowerShell-konzolt a „Futtatás rendszergazdaként” kiválasztásával (Vagy kattintson jobb gombbal a Start menüre, és válassza a helyi menü „Windows PowerShell (Rendszergazda)” parancsát), és kérje le a végrehajtási házirendet a következő paranccsal: Get-ExecutionPolicy a jelenlegi szabályzat alkalmazásához, például a „Korlátozott”.
- Állítsa be a végrehajtási házirendet a következő paranccsal: Set-ExecutionPolicy RemoteSigned
- Írja be az „Y”-t, amikor a rendszer kéri a folytatáshoz.
Használhatja a Set-ExecutionPolicy Unrestrictedt is, hogy eltávolítson minden korlátozást a biztonsági szabályzatra vonatkozóan (azonban a RemoteSigned végrehajtási házirend ideális!). Miután módosította a végrehajtási szabályzatot, képesnek kell lennie a szkriptek futtatására anélkül, hogy megjelenik a „A szkriptek futtatása ezen a rendszeren le van tiltva” hibaüzenet.
A RemoteSigned házirend megköveteli, hogy az internetről származó parancsfájlokat és konfigurációs fájlokat egy megbízható kiadónak alá kell írnia. A színfalak mögött beállítja a beállításkulcsot: HKLM\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell. A házirend-paraméter az alábbi értékeket veszi fel:
- Korlátozott - Nem engedélyezett a szkript
- Korlátlan - bármilyen szkriptet futtathat, nincs szükség aláírásra.
- RemoteSigned - teszt, fejlesztői környezetekhez jó. Csak az internetről származó fájlokat kell aláírni. Ez az alapértelmezett beállítás a szervereken.
- AllSigned - helyi vagy távoli szkript - megbízható kiadónak kell aláírnia.
Mi van, ha nem tudja beállítani a végrehajtási házirendet a PowerShell rendszergazdaként való futtatásával?
Az aktuális felhasználói hatókör végrehajtási szabályzatának beállításához használja a következőket:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Az alapértelmezett hatókör a „LocalMachine”, amely beállítja a házirendet az aktuális gép összes felhasználója számára.
A végrehajtási szabályzat ideiglenes megkerülése egy munkamenethez
A végrehajtási szabályzatot csak egyszeri munkamenetre is megkerülheti. A parancssorba írja be: PowerShell -ExecutionPolicy Bypass
A PowerShell ablak bezárása után az aktuális PowerShell-munkamenet véget ér, és a Bypass is bezárul vele. Ez lehetővé teszi egy PowerShell-szkript ideiglenes futtatását, miközben megtartja az ExecutionPolicy beállításait az összes többi PowerShell-munkamenethez. A parancsfájl tartalmát a PowerShell-konzolba is másolhatja és beillesztheti a végrehajtási házirend megkerüléséhez.
Mit szólna a szkript futtatásához a PowerShell ISE-ben?
Megkerülheti a végrehajtási szabályzatot a szkript egy blokkjának kiválasztásával, majd az F8 (kijelölés futtatása) billentyű lenyomásával.
Használja a Csoportházirend-objektumot több számítógép végrehajtási házirendjének beállításához
Ha több számítógépen szeretné módosítani a végrehajtási házirendet, használhatja a csoportházirendet a tartományvezérlőben. Íme, hogyan:
- Nyissa meg a Csoportházirend-szerkesztőt.
- A „Helyi számítógépházirend” alatt lépjen a Számítógép konfigurációja >> Felügyeleti sablonok >> Windows-összetevők >> Windows PowerShell elemre.
Engedélyezze a „Szkriptvégrehajtás bekapcsolása” házirendet, majd válassza ki a kívánt végrehajtási házirendet a legördülő listából, például „Helyi szkriptek és távoli aláírt szkriptek engedélyezése”, amely egyenértékű a Set-ExecutionPolicy segítségével beállított „RemoteSigned” tulajdonsággal. parancs.
Íme a Microsoft hivatkozása: Végrehajtási házirendek konfigurálása
Becsomagolás
A PowerShellben a „futó szkriptek le vannak tiltva ezen a rendszeren” hiba frusztráló lehet, de a végrehajtási házirend megváltoztatásával könnyen javítható. A végrehajtási szabályzatok megértésével és a cikkben ismertetett lépések követésével engedélyezheti a szkriptek végrehajtását, és kihasználhatja a PowerShell hatékony automatizálási képességeit.



